黑马程序员技术交流社区

标题: 为什么“加班”成了程序员理所应当的事? [打印本页]

作者: renhua    时间: 2020-10-16 14:13
标题: 为什么“加班”成了程序员理所应当的事?
为什么“加班”成了程序员理所应当的事甚至成了行业文化,这正常吗?

#哪些因素在导致程序员加班?

编程这个工作,本身就会出现一些不可预料的加班。

说一个笑话:
[color=rgba(0, 0, 0, 0.498)]电脑:“你的代码中目前有1个bug”
[color=rgba(0, 0, 0, 0.498)]程序员:“终于改好了,提交!”

[color=rgba(0, 0, 0, 0.498)]电脑:“你的代码中目前有127个bug”
[color=rgba(0, 0, 0, 0.498)]程序员:“......”

代码里有漏洞和缺陷是不可避免的,这个时候程序员压力也很大,他们需要花好几个小时去定位到底是哪里出现错误。

也就是说:无论什么时候,只要出现了bug,程序员就必须解决。当工作时间和个人时间的边界被模糊之后,不是在加班中,就是在待命加班。

而团队协作也是一部分原因。

程序员认为加班做需求得怪项目经理不能正确预估工作量,项目经理则认为他只是传达了客户和领导的意见而已。

当项目经理面对时间、预算、人力、需求的时候,就像一个人同时遛着4只成年的哈士奇,无力掌控项目中的所有关键因素,更无法预知内界、外界的条件变化。

比如历史遗留问题、领导的意愿、团队协作不配合、客户需求更改、项目预估失误等等...
软件和程序的复杂度导致了各种不可控状况,免不了又是一顿开会、讨论,争取用最短的时间做出最实用的效果。现在你知道为什么这么多会议要开了吧,只要项目的一小部分出现了状况,就没有人能逃过加班的命运。

#目前看来,这些加班仿佛都在正常范围内,但是程序员为何如此排斥加班?

因为给程序员伤害最大的加班原因,并不是那些数不清的bug,而是那些奇葩的企业文化和职场陋习。

如果你的领导是技术类的,那你的处境还能好一些,如果你的管理者是非技术类的,他们往往很难理解程序员们的工作,无法正确了解程序员的贡献度。

可能你50行代码就能敲出来的效果,别人120行才能敲出来,但是提交工作报告的时候,在管理者眼里你可能就是偷懒的一方,就因为别人的代码写得比你多。

“加班就加班吧,如果能挣多一点也不是不可以...”请停止你的痴心妄想,领导只会觉得:“你写出来的bug,难道不应该你自己加班来解决吗?”

当“自愿加班”的现象越来越多的时候,整个市场就已经默认了这种病态,超时工作成为了程序员的标准。

你一定遇到过这种情况:项目组都在加班,同事们还在埋头苦干,都没有要下班的意思。

“别人都在这里辛苦的加班,我一下班就走,以后会不会被同事排斥?”

更可怕的是,高薪吸引了源源不断的年轻程序员,你不想熬夜,不想通宵,总有人可以顶替你的位置。

久而久之,很多程序员都接受了这种行业标准,当初怀着的希望和理想也一点点被浇灭,“当初说好的改变世界的快乐和成就感呢?”

#让我们看看加班是否能解决问题?

写代码是依靠脑力生产结果,而编程效率、编程水平、工作时长、代码质量、运行效率、生产力......这些复杂的因素决定了最后项目的质量。

正如上文所说,有的大牛只用50%的代码量就解决了初级程序员需要100%的代码才能解决的问题。

所以,用“产出的代码行数”、“每日上班敲代码的时间”...这种指标来衡量生产力,是不科学的。

研究表明:青少年的注意力集中时间只有10-30分钟,成人注意力集中时间只有30-40分钟,最长不超过1个小时。

当一个人工作了一天,注意力本来就已经长时间保持在高度集中的状态了,这个时候再继续保持4、5个小时的工作,很难再保持一个好的工作状态。

并不是因为你懒,是你的大脑和你的身体都扛不住了,更何况是在不情愿的状态下去加班,效率更加大打折扣。

一味追求工作时长很可能会适得其反,在疲劳状态下写的代码容易产生质量问题,更别提有长远性、全局性的代码了。

#我应该接受加班吗?

当加班变成了个别人甚至群体的作秀,我们有必要为了所谓的团队精神而跟风吗?

额,这是一个很难的问题。但是妥协肯定不是你唯一的选择,千万不要连自己都认为加班是理所当然的事,那就真的没得救了。

如果你实在无法接受没有意义的加班,有必要如实告诉你的领导。

但你需要把工作完成进度整理出来:你做到项目的哪个阶段了?现在这个进度正常吗?你接下来的安排是什么?

而不是情绪激动地去顶撞领导,即使你用大嗓门赢了对方,但你也输了,得不偿失。

这里需要注意的是:千万不要找借口避免加班,今天你说要接机,明天你说有饭局,要知道说一个谎言就要用无数的谎言来圆谎。

本来你按时下班是没有错的,但是每天找各种借口下班,不管是领导和同事都会觉得你这个人不靠谱。

#那什么时候该加班,什么时候不该加?

1.如果是临时性地出现了bug,项目也确实着急,那么这种加班情况是无可避免了,建议你全身心地投入工作,抱怨解决不了任何问题,把事情做好,突显自己的价值,也是表现自己价值的机会。

2.有的企业崇尚加班文化,觉得加班是热爱工作的体现,如果你不能接受,或者说你付出的和你所得到的相距甚远,那千万别勉强自己,就算暂时勉强自己做下去,但你最后还是要离开的。
你必须明白:每个人都应该有自己的私人空间,你的人生是你自己的。

#最后给出四点建议

1. 跟对领导很重要,一个好的团队管理者和一个好的企业文化可以在很大程度上避免不必要的加班。

2. 不要以为你的公司整天加班,所有的公司都整天加班。我认识好些人,每天朝九晚五,团队融洽,丝毫不耽误他们月入过万。

公司和求职者的选择都是双向的,如果你所在的公司,仅仅是为了节省人力成本而要你每天加班,那么你需要考虑是不是应该离开了。

3. 每个人的任务量和完成进度不一样,你的同事可能真的在忙,但你完全没必要被捆绑加班。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2