深入分析2019年7月1日至2020年6月30日Drupal是如何发展的。
在过去的几年里,我调查了Drupal.org的贡献数据,以了解Drupal项目是如何工作的。谁开发了Drupal?Drupal社区有多多样化?Drupal的维护和创新得到了多少资助?赞助来自哪里?
即使你不使用Drupal,这份报告也可能会让你感兴趣。它提供了对一个世界上最大的开源项目的内部工作原理的深入的刨析。
今年的报告显示:
- 记录在案的贡献数目逐年增加。
- 受到赞助的贡献越来越多,但志愿者的贡献对Drupal的成功仍然很重要。
- Drupal的维护和创新主要依赖于小型Drupal机构和Acquia。我们没有看到来自控股公司、多平台数字机构、系统集成商或最终用户的过多贡献。
- Drupal的贡献者变得更加多样化,但仍然不够。
你可以查看2016年报告、2017年报告、2018年报告和2019年报告。
方法论
我们分析了什么数据?
我们查看了从2019年7月1日到2020年6月30日这12个月标记为“closed”或“fixed”的所有Drupal.org issues。覆盖Drupal核心和所有贡献的项目,涵盖Drupal的所有主要版本。
Drupal.org issues是什么?
每一个“Drupal.org issue”跟踪一个想法,功能请求,Bug 报告,任务等等。这类似于GitHub中的“issues”或Jira中的“tickets”。所有issues的列表,请参阅https://www.drupal.org/project/issues。
Drupal.org credits是什么?
2015年春天,我提出了一些关于如何给Drupal贡献者credits的想法。一年之后,Drupal.org增加了贡献者将他们的工作归功于某个组织或客户赞助商的能力,或者将其标记为志愿者努力的结果。
在Drupal.org上的一个issue评论的屏幕截图。你可以看到jamadar是作为一名志愿者开发这个补丁的,但同时也是他日常工作的一部分,他为TATA Consultancy Services,代表他们的客户,Pfizer。
Drupal.org的credit系统在开源社区中是独特的、开创性的。它为大型开源项目的内部工作提供了前所未有的洞察力。这种方法有一些限制,我们将在本文的最后讨论这些限制。
Drupal社区在做什么?
2019年7月1日至2020年6月30日的12个月期间,有31,153个issues被标记为“closed”或“fixed”,较2018-2019年的27,522个issues 增长13%。平均每天有85个issues被标记为“closed”或“fixed”,2018-2019年每天75个。
总的来说,Drupal社区今年完成了4,195个Drupal.org项目。相比之下,2017-2018年完成了3,474个项目,同比增长了20%。我认为Drupal 9的发布带来了高于正常水平的增长。
大部分credits是对捐献模块工作的结果:
与前一时期相比,所有项目类型的贡献credits都有所增加:
很高兴看到“non-product credits”的增长。社区中越来越多的成员跟踪non-product贡献的credits。这些包括组织Drupal活动、在Drupal活动上发言、推广Drupal、指导等等。虽然其中一些增加反映新的贡献,但其他是新报告的现有贡献。credits系统在识别更多类型的开源贡献方面变得越来越准确,这一事实既重要又积极。
谁在Drupal上工作?
在本报告所述期间,Drupal.org的credits系统收到了来自8,303个不同个人和1,216个不同组织的贡献。个人贡献者减少了2.5%,但组织贡献者增加了7%。
与前几年一致的是,大约50%的个人贡献者获得了一个credit。同时,前30位贡献者(前0.4%)占总credits的20%。换句话说,一小部分人做了大部分的工作。
从去年开始,我根据项目的采用情况对每个credit进行了加权。例如,Drupal核心的每个贡献credit的权重为10,因为Drupal核心有大约100万个活跃安装。Webform模块有超过47万次安装,权重为4.7。Drupal的Commerce项目获得0.6分,因为它已经安装在大约6万个网站上。
其思想是,这些权重捕获了每个贡献的最终用户影响,而且还充当了提交变更所需工作的代理。让Drupal核心接受一项更改比让一个小得多的贡献项目接受一项更改更困难,也更有影响力。
这种加权还远远不够完美,但未加权的观点也是如此。对于代码贡献,被加权的图可能比纯粹的不加权方法更准确。我包含了两个图表:
无论你如何看待这些数据,所有这些人都为Drupal投入了难以置信的时间和精力。
重要的是要认识到大多数顶级贡献者都是由某个组织赞助的。我们珍视那些赞助这些杰出人士的组织。没有他们的支持,贡献可能会更具挑战性。
有多少工作是被赞助的?
当人们对Drupal做出贡献时,他们可以将其贡献标记为“志愿者贡献”或“赞助贡献”。贡献可以同时被标记为志愿者和赞助商(显示在jamadar的截图,靠近这篇文章的顶部)。当贡献者除了利用无报酬的时间添加额外的功能或优化外,还为客户做有偿工作时,可能会出现这种情况。
在那些有归属细节的credits 中,15%是“纯粹志愿者”(8,429 credits)。这与“纯粹赞助”的69%(37,399 credits)形成了鲜明对比。简单地说,大约三分之二的捐款是“纯粹赞助的”。
这是Drupal历史上第一次“纯志愿”贡献年复一年保持不变。这可能与COVID-19有关,编码冲刺很难组织,人们可能失去了收入,父母忙于在家教育孩子,人们有变焦疲劳,时间通常都很紧张。相比之下,我们确实看到“纯赞助”捐款有了非常大的增加。
志愿者的贡献对Drupal仍然非常重要。志愿者在项目的各个领域都做出了贡献。志愿者的大量时间和精力都花在了与产品无关的贡献上,比如活动组织、指导等等。
谁正在赞助这个工作?
既然我们已经确定了大部分贡献都是受赞助的,那么让我们研究一下哪些组织为Drupal提供了贡献。有1,216个组织为Drupal提供了捐助,其中50%获得了4个credits或更少的credits 。排名前30的组织(大约排名前2.5%)约占总credits的30%。这意味着前30家公司对Drupal项目的健康发展起着至关重要的作用。
与个人贡献者类似,我也按照“未加权贡献”和“加权贡献”对组织进行了排名。非加权credits仅以贡献的数量为依据,而加权credits也试图将每个贡献的努力和影响都考虑进去。
如果你是一个正在寻找合作公司的终端用户,这些是你优先考虑合作的公司。他们不仅很了解Drupal,还能帮助你提高对Drupal的投资。如果你是一个正在找工作的Drupal开发人员,这些是你首先会申请的一些公司。
各种不同类型的公司活跃在Drupal的生态系统中:
一些观察:
- 排名前30位的赞助商大多是雇员少于50人的传统Drupal企业。除了Acquia, Drupal的维护和创新很大程度上依赖于这些小型Drupal业务。
- 大型的、多平台的数字营销机构对Drupal几乎没有贡献。只有一家数字营销代理公司出现在前30名中:Intracto。几乎没有任何组织出现在整个贡献组织名单上。我很沮丧,因为我们还没有找到正确的方式来传达对这些公司的贡献的价值。我们需要激励这些公司做出贡献,就像我们从传统Drupal业务中看到的那样。
- 前30名中唯一的系统集成商是CI&T。CI&T是一家规模较小的系统集成商,拥有大约2,500名员工。排名前30的系统集成商还有很多,包括EPAM Systems, Globant, Capgemini, Publicis Sapient, Accenture和TATA Consultancy Services。Accenture 和Wipro尽管为Drupal做了不少工作,却没有得到任何credits。
- 各种托管服务公司通过Drupal赚了很多钱,但只有Acquia以1,823 credits进入前30名。Acquia和其他托管公司之间的贡献差距仍然很大。很高兴看到Pantheon的贡献从43增加到122。与上一学期的22个学分相比,Platform.sh获得了23 credits。一般来说,托管公司不回馈贡献是一个持续存在的问题。
- 今年我们只看到两家终端用户排名在前30位:Thunder (815 credits)和Pfizer(201 credits)。也有其他终端用户做出了贡献:European Commission (290 credits),bio.logis(219 credits),Google (144 credits),University of Waterloo(111 credits),Johnson & Johnson(93 credits),University of British Columbia(91 credits),University of Texas at Austin(74 credits),NBCUniversal (48 credits),Workday (38 credits),PayPal(17 credits)等等。
我经常建议终端用户要求他们的合作伙伴做出贡献。例如,Pfizer只与对Drupal做出贡献的机构合作。Georgia州也开始这样做;他们将开源贡献作为供应商选择标准。如果有更多的终端用户采取这种立场,可能会对Drupal产生很大的影响。我们将看到更多的数字机构、托管公司和系统集成商为Drupal做出贡献。
虽然我们应该鼓励更多的组织赞助Drupal贡献,但我们也应该理解和尊重一些组织能够比其他组织付出更多,而一些组织可能根本无法回馈。我们的目标不是培养一种要求别人应该回馈什么和如何回馈的环境。相反,我们需要帮助培育一个值得贡献的环境。Drupal的价值观和原则清楚地阐述了这一点。
Drupal有多多样化?
支持多样性和包容性对Drupal的健康发展和成功至关重要。Drupal的工作者应该反映了Web用户的多样性。
我查看了Drupal.org贡献者的性别和地理多样性。
性别多样性
在记录在案的贡献中,只有10-11%的贡献是非男性捐助的。与去年相比,这是非常小的改善。Drupal中的性别不平衡非常严重。我们需要继续促进社会的多样性和包容性。
两年前,我写了一篇关于开放源码中空闲时间特权的文章。它证明了开源不是精英管理。不是每个人都有同等数量的空闲时间来贡献。例如,研究表明,女性花在家务或照顾孩子等无报酬家务上的时间仍是男性的两倍以上。这使得女性在无偿、自愿的基础上为开源做出贡献变得更加困难。有能力回馈的组织应该考虑资助那些代表不足的团体为开源做出贡献的个人。
与男性相比,女性更多的被赞助工作,而志愿者工作更少。我们认为这是因为男性享有更多自由时间的特权。
空闲时间是一种特权,这只是开源项目缺乏多样性的原因之一。其他原因包括敌对环境和无意识偏见。我们应该考虑收集关于性别之外的其他系统性问题的数据。Drupal协会目前正在更新在DrupalCon收集的人口统计数据,目的是更好地了解我们的社区。更多地了解这些趋势可以帮助我们缩小现有的差距。
地理多样性
我们看到了来自六大洲117个国家的个人捐助者。排在之前的国家:
贡献来源的前20个国家。这些数据是由每个issue的所有独立贡献者的国家汇总而成的。请注意,贡献者的地理位置并不总是与他们的赞助来源相对应。例如,Wim Leers在比利时工作,但他的贡献来自Acquia,该公司的大部分客户都在北美。Wim Leers的贡献计入比利时,因为比利时是他的居住国。
欧洲的绝对和相对贡献都超过北美。
人均贡献的credits ,计算方式为每个大陆的贡献总额除以每个大陆的人口。0.001%意味着每10万人中就有一人向Drupal贡献。去年在北美,每10万人中就有4人为Drupal贡献。
亚洲、南美和非洲仍然是Drupal的巨大机遇;这些国家的总人口占世界75亿人口中的63亿。
Credit 制的局限性
值得注意的是,Drupal.org credit 系统目前的一些限制:
- Credit 系统没有捕获所有代码贡献。Drupal的部分内容是在GitHub上开发的,而不是在Drupal.org上。在GitHub上的贡献通常不会在Drupal.org上记入。例如,Drush是在GitHub上维护的,而不是在Drupal.org上,像Pantheon这样的公司在这项工作上得不到赞誉。
- 并不是每个人都在使用credit 制。还有许多为Drupal做贡献的方法还没有被credit系统捕获。从技术上讲,这些工作是可以捕获的。但是因为使用credit系统是可选的,许多贡献者不这么做。例如,并不是所有的活动组织者和演讲者都把他们的工作记录在credit系统中。因此,贡献经常有不完整或没有贡献credits。在可能的情况下,我们应该自动获取credits。例如,https://localize.drupal.org上的翻译工作目前没有记录在credits系统中,但是可以自动进行。
- Credit 体系并没有准确地评估复杂性和质量。一个人可能工作了几个星期才得到一个credit,而另一个人可能工作了10分钟就得到credit。每年我们都能看到一些个人和组织试图在credit体系中耍花招。在这篇文章中,我使用了一个基于项目采纳度的基本权重系统。在未来,我们应该考虑通过关注问题优先级、补丁大小、评论数量等来改进这一点。这有助于激励人们致力于更大和更重要的问题,并省掉较小的issues,如为新的贡献者改进编码标准。
由于这些限制,实际的贡献和贡献者的数量可能比我们报告的要高得多。
就像Drupal本身一样,Drupal.org的Credit系统需要继续发展。从今年开始,Drupal协会将在新成立的Contribution Recognition Committee的指导下,开始以新的方式发展和利用Credit系统。
总结
我们的数据证实Drupal是一个充满活力的社区,充满了不断发展和改进软件的贡献者。令人惊讶的是,仅在去年,Drupal就迎来了8,000多名个人贡献者和1,200多名企业贡献者。很高兴看到贡献逐年增加。
为了Drupal的发展和维持,我们应该支持那些为Drupal做出贡献的人,并找到方法让那些没有贡献的人参与到我们的社区中来。提高Drupal内部的多样性至关重要,我们应该欢迎任何更广泛的个人和组织参与的建议。
— Dries Buytaert