写点什么

专访 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:572648
用户头像

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

关注

评论

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

跨平台应用开发进阶(十) :uni-app 实现数据存储、获取和删除

No Silver Bullet

uni-app 数据存储 5月月更 全局

区块链技术已站上真正意义的风口,如何把握?

CECBC

【LeetCode】在长度 2N 的数组中找出重复 N 次的元素Java题解

Albert

LeetCode 5月月更

深入剖析 | snowflake算法

九叔(高翔龙)

算法 雪花算法 uuid 全局唯一ID snowflake

滑动窗口

工程师日月

算法 5月月更

Docker下Java文件上传服务三部曲之三

程序员欣宸

Java Docker 5月月更

Tech Talk 活动回顾|化“被动”为“主动”,如何构建安全合规的智能产品

亚马逊云科技 (Amazon Web Services)

产品 安全 解决方案

实现compact table command

Asha

程序员如何保证自己开发的正确性——测试开发有感

Bruce Talk

技术 敏捷 TDD Agile

后端开发【一大波干货知识】Redis中的IO多线程(线程池)

C++后台开发

redis 多线程 线程池 后端开发 C++后台开发

零基础学Java第四节(字符串相关类)

编程攻略

java编程

模块六:作业

本人法海

「架构实战营」

Kitex 源码解析活动发布!

baiyutang

Go 字节跳动 微服务 5月月更

设计者模式之装饰者模式

乌龟哥哥

5月月更

Amazon MSK Serverless 现已正式推出,无需再为托管式 Kafka 集群进行容量规划

亚马逊云科技 (Amazon Web Services)

kafka Serverless

百尺竿头更进一步丨拓展 Amazon Aurora 的读写能力之 Gaea 篇

亚马逊云科技 (Amazon Web Services)

Amazon 环境搭建

大模型走向产业的一小步,AI走向普惠的一大步

脑极体

Kubectl-ice 插件展示集群容器配置信息更强大、更便捷

Marionxue

kubectl插件 kubectl-ice 容器配置

单片机上常用-GB2312、GBK汉字取模与字库偏移地址的计算与汉字描点

DS小龙哥

5月月更

druid 源码阅读 10—— 过一下流程图中的getConnectionDirect

张大彪

druid 源码阅读(十一)maxWait 参数

爱晒太阳的大白

5月月更

druid源码学习十

Nick

Apache Druid

Amazon Personalize 个性化效果评估,从准确性到多样性、新颖性和偶然性

亚马逊云科技 (Amazon Web Services)

Amazon 模型

跨平台应用开发进阶(九) :uni-app 实现Android原生APP-本地打包集成极光推送(JG-JPUSH)详细教程

No Silver Bullet

uni-app Andriod 极光推送 5月月更 本地打包

【中国信通院 x ShardingSphere 金融用户社区】成立,多家知名金融机构正式入驻

SphereEx

Apache 数据库 开源 ShardingSphere SphereEx

如何在你的 wordpress 网站中添加搜索框?

海拥(haiyong.site)

WordPress 5月月更

SAP UI5 OData V4 模型的构造方式

汪子熙

JavaScript 前端 SAP ui5 5月月更

【Meetup 预告】OpenMLDB x DolphinScheduler 链接特征工程与调度环节,打造端到端 MLOps 工作流

第四范式开发者社区

人工智能 机器学习 数据库 调度 特征工程

【刷题第15天】剑指 Offer 09. 用两个栈实现队列

白日梦

5月月更

Linux环境编译多个C程序文件

Loken

音视频 5月月更

Druid 连接池源码阅读 10

石小天

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