我对加班的一些想法与态度

写在“加班”前的话

近来要为自己的APP添加功能或者修改Bug的时候,常常觉得自己的项目不够简洁。各个类与方法非常混乱,而且Activity是个God Class,让人感觉代码不够简洁不够优雅。今天看到MVP架构,从头到尾理解,但是并没有理解透彻,准备写完简单Demo来实践该架构,再来说明一下自己的理解。

回归正题

这几年工作过的项目,往往在项目前期或者上线的时候有过大幅度加班。而项目趋于稳定或者没什么项目可做的时候,就没有加过班。下面的话全是自己的经历与理解,并没有大量的数据进行验证。如有问题,也仅是自己的个人观点,欢迎讨论。

在加班的时间里大概有两种情况。

一种是对于一门技术的不了解,工作的时候总有许多内容需要一边学习一边实验的,导致需要一些额外的时间才能够完成工作。这个在我看来是正常的,往往这个时候也没觉得自己是在加班。也就是说专注解决问题的时候,没有意识到这是属于额外的工作,反而在解决完问题的时候,有一定的成就感。

另外一种情况是项目工期特别紧,需要加班加点的完成工作。到最后也许依然不能够完成工作,或者勉强完成工作,只是工作质量就有待考察。对于这种加班我觉得是低效的,如果最后发现项目没有签合同时,就感觉之前努力没有什么意思(不过当时那种充实的感觉还是不错的)。

现在不说没有签合同的项目,就单纯的说说项目工期紧张,然后需要天天加班的事情为什么是低效的。因为在我印象中,那种高频的加班(印象中一个月就休息一天),确实每天都在很长时间的工作,只是我不确定一天是否真的有工作十几个小时。我不知道其他人在这种情况下是如何工作的,但我知道我自己并没有一天长时间的工作,总会有开小差的时候,浏览下网页,看一下微博,或者是和朋友聊聊天,然后回归工作。后来看了些书或者一些牛人高效工作的方法,发现我这种开小差的方式明显是影响工作效率的。

以现在的视角来看,工作每天确保高效的工作几个小时可能胜于十几个小时。不仅工作能够完成,还有更多时间去做自己的事情,如读书、锻炼或者学习。而这些事情,在某个层面又会帮助我们提高工作效率。我想我们不应该一门意思的敲代码,偶尔的看看天,是能够帮助我们提高效率的,即使你没有工作那么长时间。

理想状态下,在工期明显有问题的时候,我觉得不应该鼓励大家天天加班,而是应该引导提高工作效率。毕竟加班也只是为了解决效率问题。而解决效率问题方法应该不只一种,还有其他方式,我认为最有效的方式是提高整个团队的编程能力,这个需要团队抽出点时间进行培训,使得项目组的新成员也能够写出漂亮的代码。还有一种就是引导成员自己去学习,而不是一味的写代码。最后,项目如果依然无法限期完成,我觉得需要调整计划,不能一直执行一个不可完成的计划,这个真的会打击整个团队的气势与激情的(关于这个,我也有点想法,可以参考这个这个网址)。

做个总结:

对于加班我的看法是不能够为了加班而加班的,如果这样加班,加班就失去了意义。在适当的时候,加班是没有关系的,例如学习新技术的时候,或者产品上线的一段时间等。这些时候的加班才是有效的,有意义的,能够看到其作用的。最后,我想之所以不能够长期加班,是因为会影响整个团队的士气,无法做到高效的工作,就需要一些休息与调整。自然,如果能够让整个团队天天激情高昂的去做事情,加班与不加班的说法也许就不存在。