开源项目就是一个朝九晚五的工作?

jopen 10年前

        我们差不多会喜欢那些神秘的业余开发者,没有人愿意免费的从事编码工作。这样说可能不太准确,但是,根据 Dirk Riehle 博士最近的学术报告,开发人员在工作时间从事开源,至少有一半是要付费的。如果依照 Linux 基金的指标,那么,随着时间的推移,工作日进行开源项目的开发,这种现象的比例只会逐渐增多。

开源项目就是一个朝九晚五的工作?

        有偿交付代码

        Riehle 博士和他的学生指出,开源项目的代码,差不多有 50% 的贡献是在工作时间,具体的时间是在早上 9 点到晚上 5 点。事实上,很多开发者开始的时间晚,结束的时间也很晚,这种比例差不多处于一种上升的趋势,我们稍后将加上这种情况。

        下面是 Linux 的代码贡献图例:

开源项目就是一个朝九晚五的工作?

Linux 代码贡献的图例

        这是 60 万开源项目和 300 多万的贡献者的分析图例:

开源项目就是一个朝九晚五的工作?

其他开源项目的代码贡献图例

        看这些图表,很明显,开源项目在正常工作日的开发进度差不多是工作日的 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 的数据应该给我们更多的希望。毕竟,一个比较成功的项目,越多的人员(有偿/无偿)参与,一些特定的公司是很难这样做的,因为他们只需聘请一些开发人员就 能控制代码。这可能成为一个正在的开源项目的标志:它有大量的开发者,使开源项目壮大,并且不容易失败。