极限编程理论认为程序员应该每天工作8小时,每周工作40小时,并且称之为“8小时激情燃烧”。这是因为,程序员工作的时候需要高度集中,以至于连续工作的时间无法超过8个小时。
这一理论可能基于以下认知:
高度集中可以提高效率
更少的工作时间可以有更高的效率,这是被人广泛接受的。所以在敏捷开发的Scrum方法论中有“冲刺”,所以有番茄工作法。
工作时间过长容易犯错
如果工作时间过长,人就容易疲惫,这时候人的思维通常会变得没有效率,创造力和工作质量就会明显降低,而且也容易犯下愚蠢的错误。很有可能你所犯下的错误都修复时间远远超过你加班的时间。
有限的资源更加珍贵
当资源紧张的时候,我们通常都会说“把钱用在刀刃上”。安排时间也是一样。当工作时间非常充裕的时候,人们通常都会有所懈怠,工作的时间价值就会降低。当时间价值下降后,就需要更多的时间工作。
这就是帕金森定律(任务的时间会随着可用时间的增加而扩大)。
开发工作随时都可以进行
程序员是脑力工作者,而作为脑力工作者,即使我们不坐在电脑前或是办公室里,也可以工作。人在放松的时候,处于有别于办公室的环境,可能会触发不同的灵感,反而更容易解决工作中的问题。
总之,一味地增加程序员的工作时间,强迫他们加班,并不能提高开发效率。更重要的是,让他们喜欢自己的工作,有一个愉快的工作范围,让他们能够积极主动地投入到工作当中。
这正是:
编程勿需超时忙,八时专注效最高
加班难增产出力,四十周工正逍遥
参考书目:我编程,我快乐:程序员职业规划之道,作者:(美)Chad Fowler,译者:于梦瑄,出版社:人民邮电出版社