一份针对GitHub数据的***研究表明,成功的开源项目往往存在几大共性。
本周,Facebook、谷歌以及其它多家大型技术企业共同启动了TODO(即开放交流、开放开发)项目,希望借此鼓励企业及开发人员彼此共享与开源项目使用及实施相关的知识及经验、进而推动各种规模的企业用户以更为积极的姿态拥抱开源方案。作为参与组织之一,GitHub在一篇博文中谈到了推进此次项目的目标之一,即“确保开源项目继续保持健康与积极的发展态势。”除了一点点运气因素之外,一份新的研究报告昭示了开源项目获得的成功的部分必要因素——而这很可能有效帮助TODO在未来的前进道路上越走越顺。
来自日本的研究人员Yuya Yosikawa、Tomoharu Iwata以及Hirosh Sawada共同发表了一篇题为《在社交媒体上协作:社交编码成功项目分析》的论文。他们希望弄清楚,到底是哪些因素决定了像GitHub这样的“社交编程站点”上各种开发项目的最终命运。为了完成这一目标,他们从2011年2月到2013年5月之间坚持不懈地从GitHub归档资料中收集数据——具体对象为其中非fork且评论数量超过30条的代码库。这些数据所涵盖的总评论数量接近4200万条,涉及开发人员140万名、相关项目则为31万7千个。
为了衡量开源项目的成功程度,研究人员们采用三条评判指标:活跃程度(每天新增的代码提交数量)、热门程度(每天所获得的星评总数)以及“社交性”(即每天的请求推送数量)。
他们认为三大因素决定了上述成功标准的实际表现,分别为:团队结构(即项目团队规模有多大、各团队成员如何实现内部交流)、外部开发人员交互效果(即请求推送所获得的响应)以及所开发项目的具体类型(例如Web应用程序等)。
在探讨这几大核心要素之前,我们先来看看这几位研究人员发现的其它一些有趣结论,例如:
- 大多数项目不涉及来自外部开发人员的贡献。具体来讲,研究数据显示有七成项目没有发出过任何请求推送。
- 大多数项目往往会在短时间内快速完成。只须约一成的项目能在较长周期内拥有相对统一的代码提交速率。其余九成的绝大多数提交代码集中在一段或者数段相对较短的阶段之内,而且在整个周期内经常出现连续几个月没有代码提交的状况。此外,在六成项目中90%的提交代码是在开始后的三个月内出现的。
在审视影响到开源项目成功的因素时,我们还发现了一些有趣的现象。根据在阅读这份论文中的体会,我发现以下三项内容可谓算是决定开源成功的核心条件:
- 团队规模越大,项目取得成功的机率也就越高。内部团队的规模越大(即提交代码的参与者越多),上述三项成功指标的数值就越高。
- 如果团队成员曾经在其它项目中进行过合作,那么当前项目会更容易获得成功。对于各个项目的内部团队而言,研究人员整理出一套“合作关系网络”。从本质上讲,这套关系网络描述了当前项目的参与者是否在其它项目中同样保持合作。符合这种情况的参与者越多,这三项成功指标的数值也会随之增加。
- 对请求推送的响应能够鼓励代码贡献者。研究人员们发现,项目获得的星评及请求推送数量越多,内部团队的成员就越容易受到鼓舞——换句话来说,针对请求推送的响应与合并能够有效激励参与者的工作热情。有趣的是,请求推送的响应时长并不会影响项目的成功可能性; 总之,只要有所响应、对于项目就是一种积极推动。
这就是我们得出的结论。如果大家希望自己的开源项目能够迈向成功,首先需要尽可能扩展内部团队的人员规模、其次是确保参与者在其它项目中同样保持合作关系,***是定期对请求推送作出响应。其实并不困难,对吧?