InnerSource 介绍

开源软件的成功,足以让传统的软件工程方法羡慕不已,那么在无法接受开放式创新的传统企业,但是认同开源的效率和质量的话,在内部采用开源的方法论也是不错的选择。当然,这样也有一个名称,那就是:InnerSource。

“no matter who you are, most of the smartest people work for someone else,” —— Bill Joy 太阳微系统公司联合创始人

引子

开源是如此的成功,以至于现在用一句时髦的话来形容:“开源软件正在吞噬世界”,一点都不为过。这从侧面反映出,开源的开发方法是有效的,而且可以开发出Linux 内核这样既能在超级运算中应用也能在智能手机上运行的卓越的项目。开源项目的工作流程解释了为何来自世界各地的志愿者们可以如此高效的完成如此巨大的项目。这样就给那些大型的跨国公司带来许多的灵感,和成功的开源项目的社区一样,大型公司的软件工程师们亦是分布在全球各地,而且不在同一个部门,他们并不能够频繁的见面,报告的老板也不一样。为了在企业内部能够增强合作,一些公司开始采用开源项目的工作流程。Tim O’Reilly 首次使用了术语“InnerSource”这个词汇,我们翻译它为”内部开源”。(华为的同仁称之为内源,我以为损失了一些意义,四个字就四个字吧,大家更容易理解一些。)

开源界著名的程序员、Hacker——Eric Raymond,在对比了开源项目和传统软件的开发方法和流程之后,写了经典的著作《大教堂与集市》,将自顶向下的过去的开发方法称之为“大教堂”,将开源的扁平式的、分布式的开发称之为“集市”。那么我们今天谈到的InnerSource,可以概括为“大教堂”下的“集市”。也就是在企业内部实行开源软件的开发方法。

开源项目的开发特点举例

开源的方法论,至今并没有像学术界那样有软件工程这样的周密严谨的理论著作出现,几乎每个项目的形式都不相同,(Linux、apache Httpd、perl、Debian各有千秋)但是,还是可以总结出一些共同的因素的:

  • 项目对所有人都是开放的,包括代码、文档,任何都可以去提交贡献。
  • 在开发者社区,代码的审核者的身份都非常的关键。(比如Linux、Apache、FreeBSD等都有相应的晋级规则,尽管各有千秋,但有一点是相同的,那就是以实力说话。)
  • 沟通工具是邮件列表和IRC,(Apache尤其重视邮件列表,所有的决策必须在邮件列表决定,否则无效。)
  • 任务都是自己认领的,没有分配这一说法。
  • 尽早发布、尽早反馈。

采用 InnerSource 的益处

若是企业内部采用这些方法,至少能获得如下一些好处:

  • 大大加强软件组件的重用。(这方面最著名的例子就是互联网巨头Google了,内部只有一个代码仓库,将重用利用到极点。)
  • 改进软件的最终质量——即Linus法则:“足够多的眼球,Bug就无处藏身。”
  • 加速开发流程,这在加速发展的现在显得尤其重要。
  • 开放式的创新,目前为止证明是颇为有效的。能够吸纳来自世界各地的人的意见和建议,甚至是代码、设计和创意。
  • 避免人才的单一化。

InnerSource 适合哪些团队?

好处是如此的显而易见,但是对于企业来讲,尤其是有历史包袱的企业,想采用InnerSource还会遇到一些挑战,是的,对于已经实施了多年,而且还蛮有效的开发方法,要改变的话,还是有很多挑战和困难的。更何况InnerSource也不是适合所有的企业和团队的。笔者经整理目前的研究成功,总结出适合InnerSource的企业的特征:

  • 跨地域的团队(这点在国内现在蛮高的,如为降低日渐增长的开发成本,逃离北上广,在二线城市建立研发中心。)
  • 部门多,涉及到的重用的组件、模块。重复开发造成极大的浪费。
  • 大型团队,超过200人。
  • 自顶向下瓶颈过于明显,尤其是基础设施软件,自顶向下的方式过于缓慢。
  • 沟通困难

InnerSource 的案例

从InnerSource这个概念提出,发展到现在,已经走过了15个年头,其中各大企业采用的先例有很多,比如传统的大企业Alcatel- Lucent、Philips Healthcare、 IBM、以及 SAP,也有新兴的互联网公司如Google。但是重新提起来,注入新的活力,还是来自PayPal发起的InnerSource Common 社区,随着开源的成功,开源已经成为企业中不可或缺的部分,甚至是占有极高的使用率。InnerSource的意义也被扩展了,那就是本地和社区的关系处理,InnerSource 的同时,也要借鉴外部上游开源社区的代码和项目,也是颇具挑战的工作,在这方面沃尔玛的基础设施团队有着很不错的经验分享,(注:沃尔玛的IT技术主管Jeremy King是PayPal跳槽过去的。)比如对OpenStack的贡献和自己开源项目OneOps。并在巴塞罗那OpenStack峰会上有过干货十足的分享。

结语

开源是如此的重要,对于任何一家依托软件做业务的企业来说,已经是房间里的大象,无法忽视!面对如此强大的力量,对抗是没有用的,唯有创新性的利用起来,为自己的用户创造价值。但是也不可忽视已有的文化和积淀。所以 InnerSource 是最佳选择,笔者会在2017年陆续为大家介绍InnerSource的现有研究成果和业界分享。