提供有关GitHub上开发人员活动的趋势和见解的报告

2020-05-07 03:35:21

这篇文章是继2019年10月报告之后的特别报道,提供了关于冠状病毒早期GitHub上的开发者活动的趋势和见解。分析由GitHub数据科学团队为您带来。

注:本报告最好在大屏幕上查看。包含的图表和图形未针对移动查看进行优化。

冠状病毒给人们带来了一种突如其来的、全球性的呆在家里的需求。这迫使许多组织尽可能支持远程工作,在短短几天内改变了数百万人的日常生活和环境。这种转变意味着开发人员和其他技术专业人员正在过渡到远程优先的世界,许多人在照顾孩子或其他家庭成员的同时,找到了新的工作节奏,并重新定义了平衡(或仅仅维持)工作和生活的意义。

这种转变对我们作为开发人员的工作有何影响?本报告围绕三个可随时获得数据的主题展开:工作效率和活动、工作节奏和协作。在我们的发现中,我们为软件开发人员和公司领导人提供了见解,并对领导新分布的团队通过不确定性提出了建议。

作为全球最大的开发者平台,GitHub在看到开发者活动的模式和变化方面处于独特的地位。我们进行此分析并共享此报告的目的是帮助社区了解开发人员活动中正在发生的事情,以便我们更好地做好准备并能够适应未来的业务中断。我们计划在今年晚些时候的“十月份状况”年度报告中继续并扩展这些分析。这将让我们看到我们看到的趋势可能随着时间的推移发生了怎样的变化,所以请继续关注。

当我们将2020年前三个月与2019年同期进行比较时:

与去年相比,开发者的活动基本保持一致或有所增加。开发者的活动--包括推送、拉取请求、审阅的拉取请求和每个用户评论的问题--显示出每年的活跃度略有增加。这表明,开发商在面对不确定性时继续做出贡献,并表现出韧性。

GitHub问题中的流量可能反映了向分布式工作和本地病毒响应的转变。我们的分析表明,企业存储库中的GitHub问题围绕冠状病毒爆发和就地避难订单起伏不定。问题中出现的变化很可能是由于转向分布式工作,这打乱了企业软件开发的仪式、结构和协调。在GitHub上,这种协调通常是通过问题来完成的,团队在那里跟踪增强功能、任务和错误。

工作的节奏已经改变了。无论是在工作日还是周末,开发人员的工作日每天都增加了高达一个小时。更长的工作时间也可能是非工作中断(比如家庭或照看孩子)的结果,因为现在很多人都在家里工作。

开发人员的活动模式会导致工作倦怠。在向新工作例程的过渡过程中,持续的开发人员活动可能会通过花更多的时间在线来实现。如果额外的工作是以牺牲个人时间和休息来补充、思考和保持健康的分离为代价的,我们警告这种权衡可能在长期内是不可持续的。

人们正在进行更多的合作,特别是在开源项目上。有几个开源项目的活跃度激增,与去年相比,合并开源项目的拉式请求的时间有所减少。这些迹象表明,社区在一起在开源项目上花费了更多的时间。

通过灵活性加强组织。我们的分析表明,人们对变化是有弹性的:即使在这场危机中,开发人员的活动也是一致的或上升的。能够调整他们的流程和程序,并像他们的团队一样迅速接受新的工作方式的组织也将具有弹性和成功。为此做好准备包括引入灵活的工具和流程来计划和跟踪工作,如增强功能、任务、功能和错误,这将有助于在任何地方支持开发人员的工作效率。

拥抱协作和开源。人们正转向他们的开源社区,将其作为学习、成长和参与的一种方式。就个人而言,我们可以认识到这是一种创造力和学习的出口-想方设法在精神上“离开”我们的工作,然后“进入”我们的创意或学习项目-即使它们可能都发生在同一个电脑屏幕上。组织应检查有关外部工作和技术的政策,以确保它们有时间参与学习计划,并确保兼职政策允许外部项目。认识到开源不仅仅是一个用于工作的平台,这对员工的福祉很重要。

小心精疲力竭。更长的工作日,更多的工作,更多的家庭责任意味着更有可能产生倦怠。休息一下,试着创造一个可持续的工作量(对你自己和你的团队来说),创建一个支持性的工作社区,其中包括明确的工作和个人时间界限。

本报告中每个主题的分析都是在不同的数据集上进行的,选择这些数据集是为了回答该部分提出的研究问题。您将在这样的框中看到数据的描述。主题#3包括两个描述。在本报告的最后,我们描述了我们分析的总体背景(GitHub用户数据)、我们的研究设计决策和限制,以及即将进行的研究。

许多像视频会议这样的技术平台都报告说,自从冠状病毒(如Zoom和微软团队)以来,活跃度有所增加。虽然这些统计数据是我们如何与同事和客户沟通和会面的有趣一瞥,但这可能只是人们将会议从面对面转移到在线空间的证据。

如果我们想了解人们的工作--或者在这种情况下,在冠状病毒爆发期间人们工作发生的变化--我们可以直接问他们(在采访或调查中),或者查看他们在工作时创建的工件(例如笔记本、源代码或系统日志)。为了调查开发人员的生产力和活动,我们分析了GitHub开发人员的活动。

像生产力这样的复杂结构不能用简单的或单一的度量(如代码行或关闭的问题)来捕获。这些衡量标准没有考虑到工作任务的影响、复杂性或结果的重要性。最近的研究发现,开发人员的生产力是几件事情的组合,包括花在代码上的时间、完成代码和审查代码(Meyer等人。2014年)。我们的分析采用了类似的方法:通过包括开发人员活动的几个度量,我们提出了开发人员生产力的综合度量,并反映了开发人员自己的看法(Meyer等人)。2014年)。

GitHub上的开发活动是对转换工作例程相当健壮的活动的一个很好的代理。虽然看板之类的一些东西可能已经从白板转移到了在线工具,但无论我们是在办公室还是在家里做这些工作,都可以通过相同的推送、拉取请求和问题来观察发展。这意味着我们的同比比较是可靠的。

相比之下,当人们不能面对面会面时,即使会议数量保持不变,视频会议的使用也会增加。这使得对以前不在家工作的人来说,每年的比较是不可靠的。

该报告这一部分的数据来自于对所有GitHub平台活动-公共(包括开源)和私人活动-的年度分析。对比时间分别为2019年1月1日-2019年3月31日与2020年1月1日-2020年3月31日,分析中包含的活跃用户地域分布同比变化如下。

图:主题#1分析中包含的地理位置:活跃用户分布2019年1月至2020年3月。

为了便于进行同比比较,除非另有说明,否则我们将在本报告中使用每个用户的数据来规范我们的分析。

对于开发人员生产力的综合测量,我们调查了每个用户的拉请求、推请求、审查拉请求和评论问题。总体而言,与去年相比,我们看到这些措施的活动保持一致或有所增加。

我们首先显示每个用户每天的拉取请求。正如图表中所指出的,活动量的定期下降与周末相对应。

如果我们去掉周末,我们的图表会更平滑,可读性也会更好。这是每个用户每天创建的拉流请求,不包括周末:

接下来,我们将显示带有此标准化活动(每个用户)和平滑(没有周末)的图表,以简化可读性,除非另有说明。

我们的调查还包括审查的拉取请求和评论问题,模式相似:高于去年,并在2020年前三个月保持一致。为简明起见,我们没有包括已审核的拉式请求或评论问题图表。

乍一看,这表明开发人员的活动在大流行的最初浪潮中保持一致或略有增加,并转向在家工作。然而,对主题#2的进一步研究揭示了工作的时间安排和节奏,并为开发人员如何实现这些活动级别提供了更多的洞察力。

我们还通过查看每个用户的GitHub问题来衡量开发人员的活动。与2019年相比,在2020年的大部分时间里,GitHub上每个用户每天创建的问题低于或等于这个数字,2月份下降。正如图表中的箭头所示,这种情况在3月中旬开始转变,并持续到整个月。同样,图表显示没有周末。

我们对这一转变进行了额外的调查,发现所有存储库的问题创建率都在上升,其中免费用户和付费团队账户拥有的存储库的增幅最大。下表显示了存储库计划与去年(同样不含周末)相比创建的问题数量:

查看对比图时,企业云账户所拥有的存储库在今年前三个月的活动给了我们一些有趣的见解。请注意,问题创建量中有两个有趣的模式:第一,截至2月中旬,问题创作量明显减少(由图表中标记为A的箭头表示)。这与亚洲和欧洲遭受冠状病毒袭击的时期相对应,北美西海岸开始转向在家工作。2月底和3月初显示活动恢复到去年的水平,周末企业存储库的活跃度继续下降。这些周末活动的减少并没有反映在免费用户和付费团队帐户拥有的存储库中,这可能是意料之中的,因为这些存储库更有可能包含开放源码和项目工作。然后,我们看到问题超过了去年的活跃度水平,尽管没有免费用户和付费团队帐户拥有的存储库中看到的峰值那么高(用图表中标有B的箭头标出)。在调整到远程工作之后,这可能标志着恢复企业软件开发中涉及的活动。

为什么企业的问题创造会有这样的波动?了解GitHub问题是如何使用的,有助于深入了解可能发生的情况:问题用于沟通和规划。它们是跟踪任务、增强功能、功能和错误的用户数量。在我们的个人或爱好发展中,我们可能不会不厌其烦地做计划(或者至少不把它记录在一期杂志上-我们可能只会把它贴在便条上)。但是,企业开发通常更加结构化和协调,规划更大、更复杂的项目和功能,并且需要跨团队进行沟通。问题将推动这项工作,并可能对围绕我们工作的仪式的变化或中断更加敏感。

我们在问题中看到的波动可以归因于围绕软件开发的现有计划过程的中断,以及转移到远程工作和新的“被迫”的分布式团队。一种可能的说明性方案可能是:

随着团队争先恐后地在家工作,创建更多工作(记录问题)的会议变慢或停止。问题保持不变。

当开发人员转向远程工作时,他们继续解决已经记录的问题。问题慢慢减少。

团队学会了在分布式环境中重新创建仪式,比如临时会议、分布式看板或站立。问题保持稳定或缓慢增加。

当团队调整到远程工作或没有可处理的问题时,他们通过将即将到来的任务放入问题中来快速恢复跟踪和规划开发,接受让问题再次概述即将到来的工作的结构和可预测性。问题激增。

我们很高兴看到这种相对较快的复苏,这可能是我们在2月份看到的强劲下跌的初步反弹。鉴于转移和适应新工作的要求和要求所需的复杂性,再加上普遍的经济不确定性和延长的就地避难所订单,我们预计波动将持续并在整个夏季稳定下来。

查看工作活动的模式并不能让我们完整地了解开发人员的一天。为了更好地了解冠状病毒是如何影响开发人员的,我们还调查了工作可能发生的变化。

通常在家工作的人倾向于工作更长的时间--每周多工作一到两天,每天工作8小时(Hill等人。2010)。这很可能是因为我们的工作开始延伸到我们的生活中,工作和家庭之间的界限变得模糊了。随着向远程工作的突然转移,我们想知道我们是否也会看到任何增加开发工作的模式。

报告此部分的数据来自对符合以下标准的付费组织帐户的分析:

我们的分析包括40,000多家组织,其中北美(40%)、欧洲(35%)和亚洲(17%)的代表性最强,如下图所示:

图:主题#2分析中包括的地理位置:2019年1月至2020年3月活跃付费账户的分布。

工作日被捕获为第一次和最后一次git推送到存储库默认分支之间的时间差。这是一天工作时间的粗略近似值,为我们提供了一种思考工作日开始和结束时间的方法。

对于此分析,我们将调查范围缩小到美国的两个时区(太平洋和东部),并同时考虑了工作日和工作量。我们之所以选择这两个时区,是因为每个海岸都发布了相当协调的就地避难所订单,而中西部则没有-这意味着任何影响都更有可能出现在数据中-而且我们的样本量足够大,不会受到少数几个组织的过度影响。

我们通过观察美国太平洋时区的发展活动节奏开始了我们的调查。在这项分析中,我们看到工作日与去年相比有不同的长度,然后从3月中旬开始显著增加(通常每天30-60分钟)。工作日时间的增加很大程度上是在周末。

图表:第一次和最后一次推送之间的同比变化,平均值(包括周末)。太平洋时区

为了加强这一分析,我们调查了开发人员在同一时间段内所做的工作量。这帮助我们理解了开发人员的工作日是否会在做同样数量的工作时变得更长。也就是说,也许开发人员每天工作的班次较少,以适应家庭或照看孩子,但做的工作量与以前大致相同。(例如,在我们的代理测量中,3个3小时的区块分布在12小时内,相当于12小时的工作日,但相当于传统的9小时工作日,即8小时的工作加上1小时的午餐,当不必适应紧张的时间表时)。因此,我们还调查了他们在该时间范围内推送代码的频率,以此作为完成工作量的粗略代理。我们称之为工作量。

我们看到太平洋时区的用户与去年相比,他们的工作量一直在增加。这一分析表明,对于这些用户来说,他们工作的时间更长,做的开发工作也更多,特别是在3月份。这可能会受到那些通常通勤上班的人的影响,因为现在他们在家工作,所以“恢复”了这段时间。虽然这段时间可以分为家庭任务和工作活动,但开发人员可能会感受到更频繁地推动的压力,从而在数据中显示出这种增加的工作量,这是由于以下几个因素:经济不确定性和做好工作并保持就业的愿望,将工作作为消遣来对抗困在家里的无聊情绪,来自管理层将产品推向市场的压力,或者经常推动以保持快速稳定的软件交付节奏的团队规范。

图表:推送量同比变化,平均(包括周末)。太平洋时区。

接下来,我们将分析转移到美国东海岸,并观察到这里的用户在2020年的大部分时间里工作日都缩短了,然后从3月中旬开始增加到与太平洋时区相似的工作日(虽然缩短了15-30分钟)。同样,这种工作日长度的增加很大程度上是在周末观察到的。

图表:第一次推送与最后一次推送之间的同比变化,平均值(包括周末)。东部时区。

当观察这些工作日的工作量时,我们看到东海岸时区的用户推送量有所增加,2月份之后开始下降。这一分析表明,这些用户正在进行更多的工作分配,特别是在这些趋势与就地避难所订单相关的情况下。

图表:推送量同比变化,平均(包括周末)。东部时区。

我们的分析表明,开发人员正在继续进行持续的甚至增加的开发量,一些人可能会为此欢呼,因为这证明了在面临不确定性的情况下,生产力仍在继续。然而,结合我们的工作节奏分析,我们警告开发人员、领导者和组织应该采取积极的步骤来防止倦怠,并在他们的团队和同事中保持警惕。

世界卫生组织(World Health Organization)已将职业倦怠视为“一种由于长期工作场所压力而导致的职业现象,没有得到成功的管理。”虽然职业倦怠专门指的是工作场所的压力,但当我们的工作侵犯了我们的个人空间时,现在可能很难管理。

无论是在工作中还是在个人生活中,应对倦怠对我们的精神健康都很重要。支持灵活和可持续的工作时间表并关注倦怠的团队和领导者将拥有更快乐、更有生产力的同事和团队。记住,我们都是同舟共济的。

有关工作倦怠的更多信息以及你可以做些什么来解决它,我们建议你参考工作倦怠专家克里斯蒂娜·马斯拉赫(Christina Maslach)博士的文章《了解工作倦怠》。如果您愿意,您可以收看或收听她在拉斯维加斯2018年DevOps企业峰会上的会议演讲。

编写软件本质上是一项合作的工作,尽管流行文化中对开发人员的许多描述都显示这是一项单独的活动。不要误会我们的意思:自己解决问题可能很有趣,也很令人满意,但与团队或社区合作,共同创造一些东西,这是一种特殊的魔力。

转向远程工作已经使我们的工作方式发生了很大变化:沟通和协调仪式不同,人工制品可能已经从面对面的白板和便签改变了。

..