有时候,在软件项目的巨大压力下,
我们会不由自主的做出,违反自然规律的事情。
短期来看,确实受益了,
然而,长期看来,无异于揠苗助长,
流毒无穷。
人们以为,
软件行业中,加班是家常便饭,
但实际上,这是管理上缺陷。
处于底层的程序员们,无力涉足管理,
但也可以认真想一想,如何高效的加班。
我们先从几个角度来看看加班这件事吧。
从收支上看加班
长期加班并不是一件好事,
因为,它增加了投入。
这还不好吗?
其实不然。
因为一件事情的代价,
在很大程度上,影响了我们的决策。
如果在计划阶段,
认为不加班可以做完,
最后结果是加班做完的。
这只能说明我们低估了成本,
那么做这件事情就可能不是那么值得了。
因此,加班会影响我们去评判某一选择的正确性,
还会让我们继续做出错误的决定。
从工作性质上看加班
短期加班,是很有效果的,
但是,人不能不休息,
软件工程师也不能不重新思考自己的设计。
加班会迫使人们把工作赶出来,
那么任何有创造力的事情都将被错过。
而且,代码质量会变差,
添加新功能的成本也会越来也大。
经常发生的事情是,
本来很简单的一个功能,因为有历史原因,
才不得不使用复杂的实现方案。
加班会让这件事更频繁的发生。
从工作总量上看加班
短期内,工作总量是会增加的,
因为前几天人们都不累,
延长了工作时间,代码总量肯定是会增加的。
然而,长期加班会导致人们效率下降,
在明知道要加班的情况下,
会更有意识的降低自己的工作效率,
反正要加班嘛。
因此,工作总量不增反降。
另外,人是不可能违背自然规律的,
没有必要用第二天一整天的无精打采,
来换取今天几个小时的加班。
只是改变了生物钟,
没有什么意义呀。
而且,代码多一定不是好事,
错的越多,要改的就越多。
从软件工程来看加班
如果去饭店吃饭,
厨师说做一个鱼香肉丝要10分钟,
我们再急,也不会要求厨师5分钟把它做出来,
让他加班也没用。
一个女人,必须经过10月怀胎,
才能生下小孩,
肯定不会有人强迫她5个月就生下来,
让她加班,给她加人手也没用。
经验表明,
有些事情经历的时间是不可压缩的。
因此可以说,
当工期足够短的情况下,
加再多的人也是徒劳的。
这时候,我们应该努力反思了,
为什么我们要做那么多的事,
却还剩下了这么少的时间?
工程师的价值
以上的分析不少了,
我相信如果有领导看到这里,
还是想让你加班,那就是故意的了。
在不可抗拒的情况下,
底层程序员们,实际上应该考虑,
高效加班的办法。
因为,只有我们明白软件,
知道它的生命周期,
了解它的特性,
更知道怎么做好它。
我们在工期紧的情况下,
最应该做的事情就是,
管理好自己的时间,调节好工作状态。
用正确的姿势走好每一步。
保持节奏
无论外界有多么大的压力,
我们都要保持自己的节奏。
这不但是对自己负责,
也是从专业的角度对项目负责。
我们只有保持节奏的产出,
才能帮助项目成功。
不能为了速度一味的牺牲质量,
也不能因为洁癖,减缓前进的步伐。
其实,更多情况下,我们是自乱阵脚。
别人不了解软件,让我们精疲力尽,让项目走向失败,
如果就听之任之的话,那就只能怪我们自己了。
身为一名软件工程师,
没有努力把项目调整到正确的轨道,
而是选择傻傻的加班。
我觉得,这才是团队的悲哀。
结语
再多的加班,
也比不上想人们在主观上想把它做好。
可惜,可惜。
欲将心事付瑶筝,
知音少,弦断有谁听?
——《小重山》岳飞