程序员加班的意义
扫描二维码
随时随地手机看文章
在互联网行业工作过的,肯定都听过“加班汪”这个词。而对于一个开发人员来说,加班的概率比普通工作要更多,加班是互联网行业永远的痛,项目节点定下来后,为保证项目节奏,程序员们基本上陷入天昏地暗永无止境地加班中。首先,假设这个程序员是一位职场新手甲。他刚大学毕业,没有工作经验。来自产品的需求,他要理解很久才能做。然后开发的过程中会遇到各种问题,如果经验不足以支撑他快速完成任务,那么只能求助于网络,书籍,熟人。如果这些都帮助不了他。他需要求助于同事。但是次数频繁,同事会厌倦于帮他解答;他也会羞于咨询。这时,他一天下来,基本都会卡在一个很简单的问题上。下班了,他还没有完成任务。没错,他需要加班了,因为他的编程能力非常差。大概没有人会知道他是因为需要处理一个并非高科技的问题。不懂技术的上司以为他是个勤奋的员工,非常看重他。可是,这什么进度还是会这么慢呢?创业的公司可等不起。这一切,如果招到一个有经验的开发人员,这一切的加班似乎都不需要。好吧,公司开除了这名程序员或者他因“个人原因”辞职了或者公司再招到一个相对有经验的程序员乙。当然,有经验的代价就是公司要付双倍的薪水。所有之前的需求在他这边都没有遇到过加班的情况。他是一名非常有经验的程序员,他在过去的二年时间一直在处理相关的开发工作。到这边来,所有的问题都是小意思。他的优秀表现让公司惊喜和意外,公司觉得即使再招十个之前的员工也比不过他一个人。所以,双倍的薪水又有什么呢?一段时间后,公司开始提各种各样的需求,他终于开始加班了。加班不是因为某段时间需求的总量多了。而是因为随着公司的快速发展,需求也越来越多样化。他的知识储备不足以令他总能轻松应付。他变得和第一个程序员一样,也加班了。只不过加班的原因不一样,第一个程序员是因为一些代码的调试的原因,而这位有经验的程序员是因为一些从没听说过的技术。他的加班让公司同样对他很重视,甚至认为是一位好伙伴。与此同时,公司在招他的时候也招进来了一名优秀的毕业生。他同样是一名没有经验的程序员,但是他有很好的学习能力。开发进度缓慢让产品人员和运营人员都难以接受。但是他总能在最后关头交付代码,尽管上线后需要修修补补。他经常加班来学习以便攻克技术难点,公司对加班的员工表示欢迎,因为没有人让他们加班,也不需要给他们加班费或者调休。公司为所有加班的人员提供良好的晚餐。他可以接大大小小的各种需求,只是,开发时间要比较长。但是他不会遇到那种代码调试不通过的简单的问题。相比程序员乙,程序员丙由于经常拖慢进度经常被产品和运营建议开除或者调岗。可是后来,公司对他欣赏有加。原因有二:一是他终于可以用和程序员乙接近的时间来做任务;二是在程序员乙那里看似不可能的任务,程序员丙总能在最近关头给出解决方案和代码,只是时间比较长。产品和运营的观点发生了改变,向公司建议开除程序员乙。程序员丙是一个学习型的员工,时间让他有经验后,他成长成为一名更优秀的员工。公司有过教训后,终于不惜花重金去请各种优秀的程序员。因为只要有一名这样的程序员,就可以少请许多败坏项目的程序员。于是,公司有了程序员丁。他在过去的一段时间里有着不错的工作经历,帮助过所在的公司完成了各种重大的项目解决了相当多的行业技术难点。他的到来为公司带来了很好的活力,所有之前遇到的问题都不复存在。他成为了所有程序员的主管。后来,他还是加班了。因为公司的良好发展,于是聘请了更多的产品和运营。开发团队忙不过来了,他作为主管要求大家一起加班。为了缓解这种局面,他向公司申请增加程序员。公司答应了并再招了二各分别类似乙和丙的程序员,没错,公司不会再招聘类似甲的程序员。团队不需要加班了。好景持续不长久,一段时间后,加班的情况再次出现了,因为竞争对手的努力,让产品和运营提出更多的需求。他发现产品和运营的需求源源不断地输入。可是有些需求可能用户永远用不到或者三天后就变化了。为了解决这种局面,他找来领导和各部门的负责人来商讨解决的办法。有人提出走敏捷开发。公司决定新成立一个小团队来做测试。于是公司每一个敏捷开发团队成立了。时间证明了,这个新团队终于可以不加班了。而对需求的完成总体让产品和运营满意。乐观的局面总不能持续很久,因为线上出了一个令用户急剧下降的bug。他们需要加班通宵,或者回退代码,或者修复这个bug。没有使用很好的版本回退办法,只能是一场恶梦。持续集成和自动发布加入到他们的团队。没错,程序员丁开始在团队里实施非常好的项目管理的方案。起码发新版后,非工作时间在线上出bug,任何有权限的人员都可以轻松地一键回退。剩下的,上班再说。这就是我要讲的程序员为什么要加班的几个故事,欢迎各位补充。以后我也会补充更多的故事。其实所有的后面都不重要,我只希望各位创业者,在招聘程序员时,避免遇到程序员甲,争取找到程序员丁。作为开发人员的我们,也要努力成为程序员丁,保证自己的职场竞争力。还是那句话,软件开发不是高科技的东西,这世上并没有软件科学家一说。我们能做的是让开发更像一门艺术。程序员在整个行业里面,加班是出了名的多。网上很多人都在传,互联网公司程序员的上班时间是996工作方式,也就是一天的上班时间是早上的9点,下班时间是晚上的9点,每周至少工作六天。所以听说很多的一些互联网公司都爆出了很多加班的文化。经常在赶项目的时候,干到晚上十一二点也不在话下。可是我从行业里面了解到。一般公司的程序员加班,都没有额外的加班费,即使在没有加班费的前提下,还有这么多公司的程序员,在加班赶项目,奋斗在自己的工作岗位上,这也许很多人就比较奇怪了。但是在我们程序员行业内,感觉这是比较正常的事情。大致的原因有以下几点,看看大家是不是也是这样的情况。这就说到很多人说的一种加班文化,以前在自己刚工作的时候,可能自己负责的工作比较少,做的工作也不是很深入。所以下班的时候。就不太想加班,并且不知道加班的时候干什么事情。可是当时项目组里面的情况是。下班以后基本都没有人,动起来,准备下班。每个人还在埋头苦干。都没有要下班的意思。自己刚开始的时候还不是很理解。所以当时自己手上确实没有什么紧急的事情。但是还是留下来加班了。为什么呢?只是心里是这样想的,别人都在这里辛苦的加班。我一个人一下班就走,是不是影响不太好呢?所以纠结了一下,还是选择留下来加班。虽然工作上的事情比较少。但我可以用来学习技术知识,提高自己的技术水平。那一段时间里面,都一直跟着项目组里面的同事一起加班。当然,我们的加班是没有加班费的。从公司的角度来说,我们都是自愿加班的。大家有没有试过在下班的时候,到大家都在加班然后自己就不好意思一下班就走了呢?程序员加班很多,确实是因为,项目比较多,项目计划非常紧,这跟整个互联网行业的节奏有关系的。基本上效率就是金钱。很多项目需求比较多,而人手却比较少。为了赶上我们项目的进度。所以就需要经常加班加点在加快工作的进度。也有一个现象就是,白天上班的时候,经常有各种各样的会议,需求的沟通。这些会议的沟通是很占时间的。当我们花了时间去开会议,或者是把一些需求沟通清楚以后。我们的活还没干完,所以就晚上加班咯。你不加班把这些活干完,那些,我还会一直留在这里。也许明天还会有各种的会议和沟通。那这个活怎么完成呢。这个时候感觉加班就变得理所当然了。所以,这也是程序员苦的一个原因。很多程序员,因为平时大多数时间都在跟电脑和机器打交道。并且需要花大量的时间来,学习新的技术,和提升自己。占用了自己的大量时间。所以有些程序员的社交圈子就比较小了。这样的人虽然不多,但肯定是有的。如果为什么工作上的事情?让他们一大早下班,他们都不知道去干嘛。还不如加加班,在公司完善一下项目。特别是一些单身的年轻程序员。以前就听一个同事说。自己下班以后都没什么事情可以干。加加班学习一下,还感觉到比较踏实。这样的人在很多项目比较忙的公司里面是非常受欢迎的。许多公司还需要一些激励措施才能让员工自愿的加班。像这样的员工,他们就会主动的加班。很多公司项目特别忙。虽然不会提倡加班。但是不少公司都会把加班列为一项考核参考。如果加班比较多的话,绩效也就相对比较高一些。加班比较少的话,那么绩效也会相对少一些。在很多公司里面,这个绩效直接影响到我们程序员的项目奖金,或者是年终奖。这个年终奖相信大家都喜欢吧。多加班,多干活就有更多的更多的奖金。那么大家的加班就有了动力。即使平时加班的时候没有加班费。但最终会在奖金上体现出来。所以这一部分人为了奖金在加班,就解释得清楚了。很多程序员都会计划好每天的工作内容。并且你的每一个工作计划都会影响到项目的进度。因为一个项目组可能是很多人在工作,做程序项目是多个人的协作过程。往往因为一个人的进度延迟,有可能就会影响到整个项目的进度。所以很多人如果在今天的工作计划没有完成,是会有压力的。因为有可能怕自己的进度拖了整个项目组的后腿,你内心是会不舒服的。所以,如果自己的计划没有完成,就会主动的加加班把他完成了,尽量做到今日事,今日毕。我相信上面这些原因或多或少是我们程序员的一些对加班的看法。虽然没有加班费,我们也会经常加班。但是对于加班这件事情,我认为不应该一味地加班来解决,而是要让加班更合理,并且要加强注重工作的效率。如果工作效率不高,加班又有什么用呢?我们应当尽量避免一些效率地下的工作方式,在工作之余,多注意自己的身体健康,多锻炼身体。好的身体素质对于我们工作效率的提升也是很有作用的。