导语
近年来,国内IT公司的加班现象屡屡被媒体曝光。前有程序员在开发者平台GitHub上发起“996ICU”项目抵制996工作制,后有快手宣布全员“大小周”。“996”、“007”成了IT打工人们的新流行词,加班文化似乎是国内IT公司的潜规则。为了广泛了解国内外各个IT公司的工作时间模式和加班情况,最近的一项研究通过使用GitHub项目提交代码时间来分析IT公司的工作时间,发现许多有趣的模式。该论文在线发表于IEEE Software。
集智俱乐部「社会计算」系列读书会已经启动招募,多位专家牵头,从计算科学与复杂科学等跨学科视角,探讨社会、经济等领域的问题。读书会为期10-12周,每周四晚举办,5月27日正式开始。详情见文末。
陈阳| 作者
邓一雪| 编辑
论文题目:
Understanding the Working Time of Developers in IT Companies in China and the United States
论文地址:
https://user.informatik.uni-goettingen.de/~ychen/papers/GitHub-Software21.pdf
1. 从Github看公司工作时间模式
在软件开发过程中,程序员通常会使用版本控制系统Git来跟踪记录代码的添加和删改。通过“commit”操作,一次代码提交日志会被记录在本地电脑,其中包含作者信息、提交时间和代码改动。如果项目被上传至代码托管平台,比如GitHub,那么项目的历史代码提交日志也能从GitHub上被检索到。国内外的许多公司,比如阿里、谷歌、亚马逊,都在GitHub上有官方的代码仓库,分享他们的开源代码。我们通过GitHubAPI获取了86家公司在GitHub上的开源项目数据。
图1. 三家公司的工作时间分布热力图。x轴代表24个小时,y轴代表一周7天。颜色越深说明公司的程序员在这个时间段内提交代码的频率越高。其中,T公司是中国互联网巨头,X公司是国内一家初创互联网企业,L公司是美国互联网巨头。
上图展示了3家公司的代码提交时间分布,它们分别代表了3种不同的工作时间模式:
T公司的程序员通常会在工作日的晚上加班。
X公司的程序员不仅在工作日晚上加班,还会在周末加班。
L公司的工作时间符合朝九晚五工作制。
2. 公司大小和加班文化
上述的例子展示了不同的加班情况,那么这种不同是因为什么引起的呢?这里,我们讨论了其中一个可能因素:公司大小。为了研究这个问题,我们首先按照8小时工作时间制度,确定了每家公司在工作日提交代码最多的连续8小时作为正常工作时间,其余时间为正常下班时间。在正常工作时间以外提交的代码越多,说明公司的加班情况越严重。我们计算了每家公司在正常工作时间以外的代码提交数量占总提交的比率。我们发现,在中国IT公司中,大公司(员工数量超过1万名)比小公司的加班强度更高。
3. 节假日对工作时间的影响
我们也比较了春节前一周、节假期间、节后一周和平常日期,四种时间段内的中国公司程序员的加班情况。对于每个时间段,我们只考虑在该时间段内至少有一次提交的公司。我们发现,在春节期间,如果程序员需要工作,他们会比平时更多地在下班时间工作。这可能是因为在春节期间,大家在白天有走亲访友等活动,只有在晚上回家后才能继续工作。
4. Deadline是第一生产力
除了使用GitHub数据进行定量分析,我们还对92名国内外程序员的加班情况展开了问卷调查,询问他们的加班情况、原因,以及对加班的看法。
图2.受访程序员对加班理由的回应。我们列举了9个常见的加班理由并请受访者选择所有符合自身情况的选项。图中右侧的数字显示了选择各个加班原因的受访者所占比例。
上图展示了受访者对加班理由的回应。最常见的加班原因是deadline将近和处理突发状况,而公司提供激励措施(比如好的工作环境、固定时间段内打车费用报销、奖金)并不是使程序员加班的主要动力。
5. 加班多=生产力高?
我们还询问了受访者周末加班频率,以及他们对加班是否能提高生产力的看法。下图展示了对这两个问题交叉检验的结果。我们发现,对于有加班经历的程序员来说,周末加班越少的人更倾向于认为加班能提高产出。原因可能在于,周末的休息有助于提高工作日的工作表现。周末工作太多可能会导致疲劳,反而降低了工作效率。
图3. 周末加班频率(左)和加班能否提高生产力(右)的回应。对于周末加班频率,受访者可以选择:从不、偶尔、每周周六或周日、每周周六和周日、或其他。对于加班能否提高生产力,受访者可以回复同意、不同意、或中立。图中标签旁边的数字和百分比分别代表选择该项的人数和比例。
6. 小结
在这篇文章中,我们提出了一种使用GitHub项目的提交代码日志分析公司工作时间模式的方法,并对程序员进行了加班情况问卷调查。当然,我们的研究存在一定的局限性。其一,由于我们只能获取开源项目的数据,研究结果只针对于开源项目,为了得到更全面的分析,还需要闭源项目数据的支持。其二,我们的问卷调研仅覆盖了部分公司的程序员。但我们的研究为分析程序员工作时间提供了一种方法,希望能启发大家来了解这些公司。