曾几何时,原本属于家庭的爱好者,已经成为一个越来越具有商业化的现象。
我们差不多会喜欢那些神秘的业余开发者,没有人愿意免费的从事编码工作。这样说可能不太准确,但是,根据Dirk Riehle博士最近的学术报告,开发人员在工作时间从事开源,至少有一半是要付费的。如果依照Linux基金的指标,那么,随着时间的推移,工作日进行开源项目的开发,这种现象的比例只会逐渐增多。
有偿交付代码
Riehle博士和他的学生指出,开源项目的代码,差不多有50%的贡献是在工作时间,具体的时间是在早上9点到晚上5点。事实上,很多开发者开始的时间晚,结束的时间也很晚,这种比例差不多处于一种上升的趋势,我们稍后将加上这种情况。
下面是Linux的代码贡献图例(图A):
图A
Linux代码贡献的图例
这是60万开源项目和300多万的贡献者的分析图例(图B):
图B
其他开源项目的代码贡献图例
看这些图表,很明显,开源项目在正常工作日的开发进度差不多是工作日的2倍。不仅如此,越来越多的开发人员除了午饭和晚饭之外,大部分工作日的时间都用于开源项目。
总之,当谈及工作习惯时,开源项目的开发人员与其他不同行业的人员一样,差不多比例处于平衡的比例。
越来越多的开源倾向于商业化
如果你关注开源项目的发展,那很好。从Hadoop到Android到MySQL到Puppet,目前为止,在构建和管理我们的应用时所用到的软件中,开源项目占到了很大的比例。鉴于开源的价值,越来越多的公司想要投资,就像你在开源项目中使用编码投资的方式一样。
在开源项目中,付费开发或者赞助开发将占很大的比例。就像Evangelia Berdou几年前在他的博士论文中描述的一样,“付费的开发人员更容易维护代码库中的关键部分”,因为“付费开发人员全职的去做项目,有能力去提升他们的技能,并且更好的理解他们的代码库,这种作用,是其他的志愿者无法比拟的,因为志愿者常常只在他们空闲的时间来贡献。
业余的开发者,换句话开说,很难保证及时提交项目代码,或者很精通项目。付费的开发者,能够专注于该项目,并且也能够在项目中承担更多的责任。
更有趣的现象是,研究人员发现“从2007年到2010年,腾出来的大量时间都用在了Linux内核上。从2010年开始,这种增长趋于稳定“。也就是说,连续4年里,越来越多的Linux内核开发是在正常的工作日进行的,这种趋势,在2010年达到了最高。
对于一般的开源项目的开发,然而并没有遵循这样的趋势。反正很不凑巧。虽然研究人员没有列出不同的项目,我认为成功的开源项目,有着和Linux一样的模式:更多商业性的介入,以及赞助商的商业参与开源项目的开发,这往往会在正常的工作时间内发生。
谁将掌控着开源的未来?
向付费的开源项目的发展是很好的,但是,会带有一定的风险。我发现大多数的开源项目的开发人员都很独立,总是存在风险的,所以企业通过雇佣主要的贡献者来管理他们的项目。
以OpenStack为例:
在另一篇报道里,研究人员发现OpenStack的贡献方式。他们发现,几乎所有的开源项目,都是很少的人员做着大量的工作。
“OpenStack,就像其他的FOSS项目一样,有一个不均匀的贡献模式,那是因为很少的一部分开发人员,做了工程中相当多的部分。据统计,80%的代码提交来自略小于8%的作者,90%的提交大约来自所有作者中的17%----,据OpenStack的基金会统计,该项目中大约有250名开发者进行专业的工作。
这意味着,当然,有效地控制一个项目,并不需要很多员工。即使对于像Linux内核这样的大型项目,也仅仅是一小部分贡献者做着大量的工作,并不是和OpenStack里描述的贡献方式一致。
据Linux基金所说,“依然有很少一部分的人员在做着大量的工作。在任何给定的开发周期中,大约有三分之一的开发者的贡献只有一个补丁。自2.6.11版本中,前10名的开发人员贡献了30420次的修改,占总量的8.4%。前30名的开发人员贡献了刚刚超过总量的18%。
即便如此,Linux的数据应该给我们更多的希望。毕竟,一个比较成功的项目,越多的人员(有偿/无偿)参与,一些特定的公司是很难这样做的,因为他们只需聘请一些开发人员就能控制代码。这可能成为一个正在的开源项目的标志:它有大量的开发者,使开源项目壮大,并且不容易失败(这得益于所有的个人贡献者)。