写点什么

运营开源公司的三个经验教训

  • 2015 年 6 月 04 日
  • 本文字数:2209 字

    阅读完需:约 7 分钟

从表面上看起来,运营一家开源软件公司似乎很简单:把代码放到 GitHub 上,或者发起一个 Apache 软件基金会的项目,然后建立一个社区,把有相同想法的人聚拢来,接下来就是开公司,拉投资,最后可能上市,也可能不上市。一切看起来都水到渠成。而在 Grant Ingersoll 看来,运营一家开源软件公司意味着独有的机遇和挑战。Ingersoll 是 LucidWorks 的联合创始人兼 CTO,有丰富的创业经验,日前他在 opensource.com 上分享了他从自己的经历中学到的三个教训。

Lucidworks 公司的目标是利用搜索、机器学习、自然语言处理等技术,使信息访问变得更容易,他们的主要项目是围绕 Apache Lucene Solr 来构建的。所以他们面临的第一个问题就是:哪些功能应该贡献给社区,哪些功能应该当作商业卖点?

开源社区通常不是由一个人控制的,基于开源社区创立的公司会面临各种冲突。有时候对于同一个功能,社区的实现思路和公司不一样;有时候公司规划了一个商业功能,结果社区提前做出来了;最糟糕的情况可能是,公司想要把某个产品商业化,结果却连它的品牌所有权都没有。对此,Grant 给出的建议是,必须坦然面对,利用沟通解决问题。当公司想为社区贡献某个功能的时候,及早地公布计划,以免别人做重复的工作;如果已经有人在做类似的功能,更要跟他们好好沟通,争取让他们把公司的诉求也考虑进去;此外,可以经常搞点社区聚会,把社区团结起来。

除了沟通,Grant 认为更重要的一点就是,必须贡献对内容。公司应该寻求贡献底层的、通用的组件,这些组件可以用来构建更高层的功能。而这些高层功能,很适合作为公司的商业卖点。Lucidworks 也是反复尝试才走对了路。他们给社区贡献了核心的分析功能,而他们产品中的推荐功能,就是基于此构建的。Grant 给出了 Lucidworks 处理此问题的三条原则:

  1. 保持专职的工程师团队,他们不做其他事情,只为开源社区贡献代码。而这些开源项目,则会成为公司商业产品的基石。
  2. 将中间件、第三方集成和 UI 作为商业化产品。
  3. 提供开箱即用的各种常用数据分析技术的实现。
    这三条原则使得 Lucidworks 在给社区作出贡献的同时,不对社区产生不利的影响。

Grant 遇到的第二个棘手的问题是,如何定位开源软件公司的商业模式。在 Lucidworks 初创时期,主要产品就是“知识”。虽然他们也有过商业化产品,但是最核心的价值还是那些熟知开源代码的工程师的知识。用户在部署开源软件遇到问题时,就会向他们求助,他们就依靠提供咨询服务来赚钱。Lucidworks 逐渐意识到这不是长久之计,因为问题一旦解决,用户就不再需要他们。而且那时用户和他们签的支持合同也只有一年,因为 Solr 通常拿来就能用,所以用户也不大需要强有力的技术保障。

Lucidworks 还是慢慢地从用户身上得到了一些启发。他们发现虽然 Solr 开箱即用,但是用户会不断地来问一些越来越深入的问题,比如,基本的搜索功能可以工作后,用户就想知道如何把自然语言处理工具集成进去。用户经常会把他们最关注的一些问题反馈给 Lucidworks 的产品管理团队。据此,Lucidworks 逐渐把自己的模式演化为一种他们称之为“客户成功”的模式。这个模式最大的不同在于,以前工程师们坐在办公室里等电话响,做的都是一锤子买卖;而现在,对于提出问题的客户,他们会不断跟踪,帮助他们成功地部署、使用这些开源软件。另一方面收集这些用户的诉求,不断地反馈给产品团队,做出用户真正需要的、愿意为之付钱的功能。这样,用户的距离拉近了,产品也越来越出色。

Grantz 最后谈到的问题是人的问题。这有几个方面,首先要找到合适的人,这对于一个基于开源项目开发收费产品的公司来说,并不是一件很容易的事。公司招募的工程师既要熟悉开源软件的运作模式,也要认同基于此来开发收费软件的做法。通常,这是难以两全的,做惯了闭源软件的人,很可能搞不清楚开源社区的模式、流程、文化等,当然反之也一样,而且认同开源软件的人还有个问题,他们经常不愿意为收费软件贡献力量。第二个难题是,Lucidworks 从开源社区招募的工程师,通常都分布在各个地方,他们只能远程办公。开发开源软件的工程师习惯于松散的沟通方式,这种习惯跟一个商业公司的流程是格格不入的。Grantz 认为解决这个问题的办法就是多交流以及规范文档。他认为现在有不少出色的工具可以帮助不同地点的人协同工作,减少摩擦,应该尽可能利用这些工具。另外,公司应该留出预算,定期把这些分布在各地人聚拢来,拉近距离,促进交流。

当然,不是什么人都适合远程工作的。在 Lucidworks,服务器软件团队的很多人是远程的,而产品管理和 UI 团队通常是在办公室一起工作的。有时候这些员工需要对同伴说,“赶紧来看看这个设计”,只有大家在一间房间里工作才能办到。而开发服务器的工程师,他们则希望不被人打扰,潜心钻研。

一个开源软件创业公司在找到可复制、可规模化的商业模式之前,总是要经过各种起起伏伏,Lucidworks 在成长过程中,也无时无刻不在与上面几个问题做斗争,所以 Grantz 希望把他们学到的经验教训分享出来,帮助更多的公司战胜困难。如果要让 Grantz 用一句话来总结他十多年的开源软件创业生涯学到的经验,那就是:“你永远不知道下一个创意在哪里,所以敞开心扉,随时准备拥抱它。”


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者)。

2015 年 6 月 04 日 09:532669
用户头像

发布了 77 篇内容, 共 32.8 次阅读, 收获喜欢 22 次。

关注

评论

发布
暂无评论
发现更多内容

阿里P8手把手教你!万字Android技术类校招面试题汇总,附赠课程+题库

欢喜学安卓

android 程序员 面试 移动开发

轻量级的接口自动化冒烟框架

小小娃爱吃甜食

自动化 测试 框架 自动化部署

ZooKeeper 的选举机制,你了解多少?

架构 分布式

大作业

胡益

阿里P8亲自教你!2021Android大厂面试知识分享,实战篇

欢喜学安卓

android 程序员 面试 移动开发

HashData外部表的实现与应用

HashData

全国大学生智能汽车竞赛-百度线下赛题发布!封狼居胥,等你来战!

百度大脑

人工智能 百度 比赛 飞桨 AI Studio

1500道算法面试题:Github上标星86.7K!直接火遍全网

比伯

Java 编程 程序员 架构 面试

万字长文,肝了一下午的线程池详解!

JavaFish

Java 多线程 线程池 线程池工作原理

助我拿到37KOffer,这份阿里巴巴890页Redis笔记可谓功不可没

Java架构追梦

Java redis 阿里巴巴 架构 面试

江苏交通控股打造IT架构云转型下的智慧交通

HashData

快了何止300%?阿里巴巴Java优化:设计+程序+并行+JVM+工具

Java架构追梦

Java 阿里巴巴 架构 面试 性能优化

一周信创舆情观察(3.1~3.7)

统小信uos

最新蚂蚁五面、拼多多三面、字节四面(已入职拼多多),个人面经分享

Java架构之路

Java 程序员 架构 面试 编程语言

终于学完国内算法第一人10年经验总结的数据结构与算法详解文档

Java架构之路

Java 程序员 架构 面试 编程语言

我用一个小小的开放设计题,干掉了40%的面试候选人

架构精进之路

Web 安全 软件设计 3月日更

数字经济时代,区块链能否担当产业数字化转型核心赋能者?

旺链科技

区块链数字经济 区块链发展

Flink SQL CDC 实践以及一致性分析

Apache Flink

flink

寻找被遗忘的勇气(十一)

Changing Lin

3月日更

2021年4款好用的音乐编曲软件推荐

奈奈的杂社

2021年爆锤39K月薪Offer!阿里巴巴Java面试(知识点)整理

Java架构之路

Java 程序员 架构 面试 编程语言

如何用一个月的时间啃完英语词典?

wbliu85

带你全面认识CMMI V2.0(一)

渠成CMMI

项目管理 CMMI

《精通比特币》学习笔记(第七章)

棉花糖

区块链 学习 3月日更

【2021 ECUG Con】聚势而来,与你相约花开时

小剑客

区块链 云计算 大数据 开源 Go 语言

Elasticsearch Inverted Index

escray

elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 3月日更

Weblogic11g安装部署-winserver篇

xiezhr

中间件 Windows Server 3月日更 weblogic

HashData与HDFS的高效数据交换

HashData

HashData多集群共享统一存储架构

HashData

音乐信息检索:理性解构音乐

阿里云视频云

阿里云 算法 音频

COPU助力北大研究生开源公选课丨开源PostgreSQL研发课程成功进入北京大学

PostgreSQLChina

数据库 postgresql 开源 开源社区

运营开源公司的三个经验教训_语言 & 开发_曹知渊_InfoQ精选文章