【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

专访 Kohsuke Kawaguchi:如何依靠开源项目养活自己

  • 2017-11-23
  • 本文字数:2416 字

    阅读完需:约 8 分钟

时至如今,开源软件已成为互联网的基石,过去曾敌视开源的公司如今比任何人都更急切的拥抱开源。

虽然开源项目很多,在 Github 上的开源项目数量已经超过 100 万,但很多个人项目无人维护,也没有人敢用,由公司创建的开源项目正在主导开源。部分发展较好的个人开源项目转向社区,如鼎鼎大名的 Linus 创建的 Linux 成立了基金会,依靠捐助和付费会员来维持开支,但也有另外一些项目走上了另一条路,就是基于开源项目创立公司。Jekins 和它的创建者 Konsuke Kawaguchi(川口耕介)就是其中的典型代表。

Jekins 和 Konsuke 的过去

11 月 18 日,由开源社主办的中国开源年会 COSCon17 在上海召开。Kohsuke Kawaguchi 在大会上做了《黑客觅食记——围绕开源项目创建一家公司》的分享,在演讲后,我对他做了一个简短的采访,了解了更多细节。

Konsuke 长的非常高大,简直不像个亚洲人,但稍微接触一下,你就会发现他行为举止十分彬彬有礼,十分照顾他人感受,正是典型的日本人做派。

平时,他喜欢称自己为 Hacker,意为充满激情,乐于探索未知的那群人。据他自述,Konsuke 从初中就开始接触编程,在读书期间就已经开发出一系列的共享软件。正是看上了他这份才能,Sun Microsystems 邀请他加入公司。Konsuke 接受了邀请,从此开始了在美国的生活。

在 Sun Microsystems 期间,Konsuke 开发出了 Hudson,也就是 Jenkins 的前身,后来正式创立了个人开源项目 Jenkins。随后 Sun Microsystems 被 Oracle 收购,在工作了一段时间之后,Konsuke 选择离开,并创建了自己的公司 InfraDNA,再后来 InfraDNA 与 CloudBees 合并,现在,他是这家公司的 CTO,提供基于 Jenkins 的企业级持续交付服务。

今天,Jenkins 已经是持续交付领域最知名的工具之一,在全球范围内超过 50 万台机器上运行,影响超过 100 万开发者,帮助他们进行持续集成和持续交付。今年 4 月份,Jenkins 发布新版本,带来新的用户界面 Blue Ocean,大大改进了用户体验。

基于开源软件创建公司

开源软件是很多开发者的兴趣和激情所在,像 Linus 一样为开源软件全职工作,可能是很多开发者的梦想。

Linus 创建了 Linux 和 Git,两个都是当今互联网的支柱。在 Linux 基金会成立后,Linus 开始全职在家开发和维护 Linux 内核。

Konsuke 在演讲中说,他相信开源是大势所趋,但现在存在一个问题,开源作者虽然花费巨量的时间精力贡献开源代码,为很多公司创造了价值,但他们本身很难从中获取合理回报。基于开源项目创建公司的想法由此而来。

在开源项目基础上做公司并非异想天开,之前红帽公司早已做出了很好的示范。红帽早些年通过维护 Linux 企业级发行版以及其它开源软件,向企业提供支持服务,目前已经是市值数十亿的大公司。

Konsuke 十分推崇红帽模式,并认为与红帽相比,开源作者亲自参与公司运作会在掌控开源项目发展方向、与社区协作等方面更有优势。同时在商业模式上更灵活。

Konsuke 总结了基于开源项目公司的商业模式:

  • 专业技术支持。由于开发者亲自开发项目,对项目了如指掌,因此可以很轻松的胜任此开源项目的技术支持。缺点就是个人精力有限,无法同时服务很多人。
  • 企业级产品。与技术支持相比,如果开发者提供企业级产品,他可以售卖给很多人从而获利。但是,面向企业售卖软件需要在营销、销售等地方投入很多精力。
  • SaaS 产品。通过付费订购的方式向用户每月收取一些费用。这种模式理论上可以服务无限多的人,随着云计算的发展,SaaS 模式也被越来越多的人认可。不过,这种模式也有一些不利的地方。仍然有很多人不理解 SaaS 的意义,认为自己通过开源项目也能搭建出同样的服务。另外就是 SaaS 提供商会不断的面临各种个性化的功能请求,你需要不断的拒绝他们。这并不容易,因为他们是付钱给你的客户。

Konsuke 最终选择了第三种,即他现在所在的 CloudBees 公司,向外提供基于 Jenkins 的 SaaS 服务。

开源商业化需要注意的一些问题

从项目招募开发者

运行一个公司并不容易,其它公司遇到的问题,Konsuke 的公司同样会遇到,而有些问题更为独特。比如人才——

由于你需要基于开源项目去开发和提供服务,你需要对这个项目十分了解的人。Konsuke 就提到,他们从 Jenkins 的社区招募了不少的开发者。这样的开发者可以保证他们是合格并且动力十足的,通过雇佣他们让他们在喜欢的项目上工作,可以更快的做出突破性的进展。并且,Konsuke 还发现这些开发者来自各行各业,他们背后的企业通常会对项目有需求,因此经常会带来一些销售线索,算是意外之喜。

但从项目招募开发者的前提是,这个项目需要一个运转良好的社区,有大量的开发者可供选择。因此想依靠开源项目做公司,需要有意识的去培养社区。

另外,如果从项目招募了过多的开发者,也有一些风险,开发者会分不清到底是为项目工作还是为公司工作,一旦产生在方向上产生分歧,开发者受到的伤害会更大。另外,人们可能会认为公司正在操纵这个项目。另外开源项目中的开发者都跑去开发商业项目,开源项目的社区会有一些问题。

公司与开源项目的关系

Konsuke 指出,一旦开源项目创始人或重要人物基于项目创建公司,有时会很难把握公司与开源项目之间的边界。

比如,公司员工应该以何种程度参与社区?在为开源项目布道时要不要宣传自己家的商业产品?公司和社区在开源项目发展方向上产生分歧怎么办?这些都是需要仔细思考并妥善处理的问题。

这其中一个较好的策略是尽量回源(work upstream),和开源项目使用同一份代码库,特性在内部开发完成之后合并回开源项目主分支。在开源项目发展方向上,尽早定下路线图,然后按路线图进行开发,避免冲突。

品牌和商标等

一般开发者可能对于商标等法律术语不太了解,但如果要建立公司,这些是非常重要的,最好在开源项目时就考虑好这些事情。

另外对于公司来说,开源作者的个人品牌对于招募人才、推销产品也是非常有帮助的。

结语

开源项目是有价值的,但开发者的时间也应该是有价值的,Hackers gotta eat,如何靠开源项目养活自己,这就是 Konsuke 和 Jenkins 的思考和给出的答案。

2017-11-23 23:572462
用户头像

发布了 164 篇内容, 共 103.4 次阅读, 收获喜欢 391 次。

关注

评论

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

Homework-食堂就餐卡系统设计

River Tree

架构设计 Homework

【总结】架构师要做什么

孙野

架构师训练营-Week 01 命题作业

华乐彬

极客大学架构师训练营 架构文档 作业

食堂就餐卡系统设计

olderwei

架构师训练营第一周学习总结

a晖

week1-学习总结

张健

食堂就餐卡系统设计

呱呱

极客大学架构师训练营 作业

架构师训练营 - 学习总结 - 第一周

桔子

学习总结-架构师训练营-第一周

走过路过飞过

week1作业

数字

架构师训练营第1周作业

无名氏

week1-食堂就餐卡系统

张健

食堂就餐卡

第二课 以图服人

Geek_bobo

食堂就餐卡系统设计

史慧君

【架构训练营】第一期

云064

关于架构设计的学习记录

imicode

第一周总结

王志祥

极客大学架构师训练营

食堂就餐卡系统设计

架构师-第一课总结

free[啤酒]

week1《作业二:根据当周学习情况,完成一篇学习总结》

任鑫

架构师训练营-Week 01 学习总结

华乐彬

学习 架构 架构师 极客大学架构师训练营

架构师第一周总结

suke

极客大学架构师训练营

架构师训练营第一周心得

努力努力再努力m

极客大学架构师训练营

食堂就餐卡系统设计

小遵

食堂就餐系统架构设计(训练营第一课)

看山是山

极客大学架构师训练营 UML 食堂就餐系统

架构师学习第一周作业

云峰

食堂就餐卡系统设计

chinsun1

架构文档

食堂就餐卡系统设计

泛岁月的涟漪

架构师0期 | 食堂就餐卡系统架构设计文档

刁架构

极客大学架构师训练营

第一周作业

Jeremy

如何开始成为一名架构师

Ph0rse

极客大学架构师训练营

专访Kohsuke Kawaguchi:如何依靠开源项目养活自己_语言 & 开发_徐川_InfoQ精选文章