BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 曹知渊 关注 1 他的粉丝 发布于 2015年6月5日. 估计阅读时间: 7 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

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

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

开源社区通常不是由一个人控制的,基于开源社区创立的公司会面临各种冲突。有时候对于同一个功能,社区的实现思路和公司不一样;有时候公司规划了一个商业功能,结果社区提前做出来了;最糟糕的情况可能是,公司想要把某个产品商业化,结果却连它的品牌所有权都没有。对此,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好读者)。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT