程序员为什么总是加班 ?

2024-05-15

1. 程序员为什么总是加班 ?

                                                            程序员为什么要加班
                                                      
    首先,假设这个程序员是一位职场新手甲。他刚大学毕业,没有工作经验。来自产品的需求,他要理解很久才能做。然后开发的过程中会遇到各种问题,如果经验不足以支撑他快速完成任务,那么只能求助于网络,书籍,熟人。如果这些都帮助不了他。他需要求助于同事。但是次数频繁,同事会厌倦于帮他解答;他也会羞于咨询。这时,他一天下来,基本都会卡在一个很简单的问题上。下班了,他还没有完成任务。没错,他需要加班了,因为他的编程能力非常差。
 
大概没有人会知道他是因为需要处理一个并非高科技的问题。不懂技术的上司以为他是个勤奋的员工,非常看重他。可是,这什么进度还是会这么慢呢?创业的公司可等不起。这一切,如果招到一个有经验的开发人员,这一切的加班似乎都不需要。
    
好吧,公司开除了这名程序员或者他因“个人原因”辞职了或者公司再招到一个相对有经验的程序员乙。当然,有经验的代价就是公司要付双倍的薪水。所有之前的需求在他这边都没有遇到过加班的情况。他是一名非常有经验的程序员,他在过去的二年时间一直在处理相关的开发工作。到这边来,所有的问题都是小意思。他的优秀表现让公司惊喜和意外,公司觉得即使再招十个之前的员工也比不过他一个人。所以,双倍的薪水又有什么呢?
    
一段时间后,公司开始提各种各样的需求,他终于开始加班了。加班不是因为某段时间需求的总量多了。而是因为随着公司的快速发展,需求也越来越多样化。他的知识储备不足以令他总能轻松应付。他变得和第一个程序员一样,也加班了。只不过加班的原因不一样,第一个程序员是因为一些代码的调试的原因,而这位有经验的程序员是因为一些从没听说过的技术。他的加班让公司同样对他很重视,甚至认为是一位好伙伴。
    与此同时,公司在招他的时候也招进来了一名优秀的毕业生。他同样是一名没有经验的程序员,但是他有很好的学习能力。开发进度缓慢让产品人员和运营人员都难以接受。但是他总能在最后关头交付代码,尽管上线后需要修修补补。他经常加班来学习以便攻克技术难点,公司对加班的员工表示欢迎,因为没有人让他们加班,也不需要给他们加班费或者调休。公司为所有加班的人员提供良好的晚餐。他可以接大大小小的各种需求,只是,开发时间要比较长。但是他不会遇到那种代码调试不通过的简单的问题。相比程序员乙,程序员丙由于经常拖慢进度经常被产品和运营建议开除或者调岗。
   可是后来,公司对他欣赏有加。原因有二:一是他终于可以用和程序员乙接近的时间来做任务;二是在程序员乙那里看似不可能的任务,程序员丙总能在最近关头给出解决方案和代码,只是时间比较长。产品和运营的观点发生了改变,向公司建议开除程序员乙。程序员丙是一个学习型的员工,时间让他有经验后,他成长成为一名更优秀的员工。
公司有过教训后,终于不惜花重金去请各种优秀的程序员。因为只要有一名这样的程序员,就可以少请许多败坏项目的程序员。于是,公司有了程序员丁。他在过去的一段时间里有着不错的工作经历,帮助过所在的公司完成了各种重大的项目解决了相当多的行业技术难点。他的到来为公司带来了很好的活力,所有之前遇到的问题都不复存在。他成为了所有程序员的主管。后来,他还是加班了。因为公司的良好发展,于是聘请了更多的产品和运营。开发团队忙不过来了,他作为主管要求大家一起加班。
 
为了缓解这种局面,他向公司申请增加程序员。公司答应了并再招了二各分别类似乙和丙的程序员,没错,公司不会再招聘类似甲的程序员。团队不需要加班了。    好景持续不长久,一段时间后,加班的情况再次出现了,因为竞争对手的努力,让产品和运营提出更多的需求。他发现产品和运营的需求源源不断地输入。可是有些需求可能用户永远用不到或者三天后就变化了。为了解决这种局面,他找来领导和各部门的负责人来商讨解决的办法。有人提出走敏捷开发。公司决定新成立一个小团队来做测试。于是公司每一个敏捷开发团队成立了。时间证明了,这个新团队终于可以不加班了。而对需求的完成总体让产品和运营满意。    乐观的局面总不能持续很久,因为线上出了一个令用户急剧下降的bug。他们需要加班通宵,或者回退代码,或者修复这个bug。没有使用很好的版本回退办法,只能是一场恶梦。持续集成和自动发布加入到他们的团队。没错,程序员丁开始在团队里实施非常好的项目管理的方案。起码发新版后,非工作时间在线上出bug,任何有权限的人员都可以轻松地一键回退。剩下的,上班再说。    ... ...    这就是我要讲的程序员为什么要加班的几个故事,欢迎各位补充。以后我也会补充更多的故事。其实所有的后面都不重要,我只希望各位创业者,在招聘程序员时,避免遇到程序员甲,争取找到程序员丁。作为开发人员的我们,也要努力成为程序员丁,保证自己的职场竞争力。还是那句话,软件开发不是高科技的东西,这世上并没有软件科学家一说。我们能做的是让开发更像一门艺术。

PS:不过高质量了,供大家看吧。

程序员为什么总是加班 ?

2. 为什么程序员每天都要加班?

我就是学游戏编程的,程序猿吧,很奇怪的一个职业,自由度低,精力低,时间低的一个职业。

在我的学习生涯中,就是学编程,学代码,每天与各种学问打交道,程序开发是很费时间的一个东西,你学的东西很多,你用的东西很精,所以你必须对你学习的东西很了解才行。
加班的问题应该在于代码上,可能别人给你分派了任务,恩,你按照了自己的想法写了,哦,一运行,99+错误,当时吃电脑的心都有了,为什么这么多错误,啊,原来是一个标点符号写错了,找吧,恩一个,一个,改,在意运行1个错误,哇,更费劲。

好,代码写完了,你交上去了,别人一看,什么东西,你写的怎么这么复杂,这么多需要这么多运行内存,这么卡,回去重写!你的心会跌落低估,谁让自己学的时候不好好学呢,只能用自己的笨方法在努力。

所以奉劝没有耐心的人就不要学编程了,你承受不了总是改正就不要学编程了,你承受不了日夜加班就不要学编程了,你承受不了英年脱发就不要学编程了。

3. 程序员加班多吗

这个肯定不是一概而论的,具体也要看行业和单位吧,一般私企、合资、外企加班可能会比较多吧,事业单位和国企还是比较规范的,但也不排除有例外,所以就得具体问题具体分析了。如果你不想加班,并且很坚定的话,面试就可以提出来,不接受加班,如果同意就行,如果谈不好就再找。我面试的时候就是这样的,都会提前把话说明白,省得以后麻烦。因为我的态度是很坚决的,绝不妥协,所以就说出来,但如果是那种耳根子软的,心里摇摆的,禁不住领导的软硬兼施的,那就另当别论了。
加班永远都不是常态。无论有偿加班还是无偿加班都不是常态。在软件公司,经常加班的人什么精神状态,除了想腾讯阿里那种一年给上百万或者是几百万的,靠着钱在打鸡血支撑着,有多少人都是拖着疲惫的身心在考点。永远都不排除极个别人,有着明确儿崇高的理想,为了改变世界而加班。永远都不排除少部分人,有着正义感和责任感,为了拯救世界而加班。永远都不排除相当一部分人,为了金钱而加班。剩下的,加班既不改变世界,也不拯救世界,更不会为自己和家庭带来经济上的改变。仅仅是盲目的加班,因为老板让加班,不敢反驳,因为别人加班,不敢不从众。反复的做重复的劳动,也并不会给自己提升多大的价值。所以加班肯定不是常态,而是变态。


程序员加班多吗

4. 程序员为什么加班这么严重

互联网行业,加班的比率可能会大一些。这些公司加班的原因主要是互联网产品迭代速度快,线上项目发现Bug也必须在第一时间修复,并且需要不断地优化,已应对不断增长的系统压力。
另外一些是因为业务节点,比如双11,618这种日子,一些公司真的是全民皆兵,甚至都是要住在公司了,这种情况必须加班。
一般的互联网公司工作都是弹性制,很多程序员都是晚来早走。程序员是互联网行业的主力军,中流砥柱,我认为程序员加班与本身的工作性质有关系,有的Bug一出现影响线上的全局,必须加班搞定。

5. 为什么程序员每天工作都要加班呢?


为什么程序员每天工作都要加班呢?

6. 程序员为什么加班多,是什么原因导致的?

 导致程序员加班的原因很多,主要由以下几方面吧:
   1.需求不清晰。需求人员或者项目经理、产品经理没有吧需求梳理分析清楚,等开发到一半甚至开发完了,才意识到需求错了,需要重新做,眼看项目或产品都快交付了,只能让程序员加班了。
   2.管理问题。企业文化,就是加班,本来没啥活,但领导就觉得员工加班他心里踏实,所以那不管你是不是程序员,一律加班。
   3.自身问题。效率低,解决问题能力不行,分配的工作任务无法在规定时间内完成,那只能加班,自行解决了。
   4.工作任务紧急。突然要开发一个新功能,客户要求时间紧迫。不加班,无法完成。
   5.工作量大。日常工作量就是大,一个人干两三个人的工作,干不完,加班还干不完呢,加班成常态了。
   从甲方角度看,我就想要什么产品3个月上线,这是战略和领导决策决定的,不能拖太长时间。
   甲方以这个要求去找乙方,乙方销售为了完成业绩,他满口答应。
   售前一般不会反对销售。
   合同一旦签署完毕,销售业绩就认为算完成一大半,后续介入内部流程就可能减少。
   这时候认为,按时交付的责任应该在研发方面。
   开发和产品团队此时可能还需要进行需求分析,系统设计,提交文档,正规一些的测试部门还要审核文档。
   然后这些事都走玩,开始开发任务。开发人员每天一个日报,每周一个周报,几乎天天开会讨论。
   白天都在讨论问题,只有晚上其他部门都走了,无人打扰时,研发才可能专心敲代码。
   
    没让专业的人做专业的事情, 是工作开展的大忌,在工业上,早已证明了一切,在工厂生产中,工人流水化作业,一个人只专注一件事情,会越做越熟练,越做越快,越做效率越高。 
   在软件开发分工越来越明确的今天,让后端人员抢前端人员的饭碗,去写网页、样式,效率能高吗?让后端人员去抢DBA的饭碗,去做数据库优化,效率能高吗?
   不专业的人做不专业的事情,可能和公司的发展历程、组织架构、人员规划有关;也可能和任务安排有关。
   公司发展初期,养不起很多专业的人,可能更需要“全栈”工程师,啥都一把捉;公司发展的过渡期,有点钱了,也意识到了要让专人做专业的事情,但是人员还没招齐,那没办法,你也得兼职着做各种各样的事情。如果公司有钱了,发展也成熟了,不是属于以上两种阶段,在IT组织中,连前端、后端、测试、架构、DBA、网络、服务器运维、技术支持、安全、产品,这些职能都没区分好的话,就会对工作效率有影响。IT一线工作人员,每个坑位,都需要一颗专业的螺丝钉。
    开发人员不注重代码质量,导致后期返工,导致效率低 
   有 时候,快即是慢,对于经验不足或者习惯不好的开发人员,开发前期,被迫或者自己没意识到,为了追求进度,逻辑没考虑周全,没做好自测,代码能跑起来就算完 成任务了,表面上任务完成得很快。但是在项目后期,测试阶段,问题大规模爆发,甚至要返工,由于测试后期,离自己写代码的时候,可能隔了一段时间,有的东 西自己都忘了,再回过头去重新“熟悉”,效率能不低吗?更为严重的后果是让项目进度不可控。因此,就算进度再紧张,也顶住压力,必须要做最基本的测试,再进入下一个任务点。
    个体组织人员膨胀,出现沟通成本大的问题,导致效率低 
   沟通成本是人员膨胀后,暴露出来的首要问题。
   举个简单的栗子,很多公司都有每天晨会习惯,如果一个组有5个人,开晨会汇报工作,平均一个人汇报2分钟,就需要10分钟,现在一个组增加到10个人,一人汇报两分钟,都要20分钟才能汇报完。时间就这样过去。
   再举个栗子,30人天的工作,分给2个人做,可能需要15天,共耗费30人天,但是分给5个人做,6天能完成吗?
   信息在沟通、传递的过程中,可能会“失真”,你想的,不一定能100%说出来,你说出来了,别人也不一定能100%理解,而且每个人的理解能力、知识体系都不一样,理解起来容易产生偏差,产生偏差就容易做错事情。
   因此,如果人员出现膨胀,要以项目为单位,进行合理的项目拆分、人员拆分。同一个“小项目”最好不要超过4个人负责。沟通的时候,推荐使用口头+书面+复述,减少沟通过程中的信息失真。
    上、下属之间相互不信任,做事有阻碍或者导致重复工作,导致效率低 
   上 下属相互信任是一切工作的基础。如果上级不信任下属,不敢授权给下属,凡是都要自己过一遍,而上级往往是一对多的关系,这个时候,工作瓶颈会出现在上级身 上;如果上级不信任下属,搞一堆监督机制,为了下属不做错事情,又让别人同事过一遍,又要耗费额外的成本,劳民伤财,而下级得不到信任,做事受阻,久而久 之就会畏手畏脚,很难独当一面,或觉得自己有能力没地方使,干脆走人。
   上级应该充分信任下级,放心授权让下级去做事情,但这些都一个前提就是要有一个较好的软件管理过程,包括开发环境和测试团队和在完成任务的过程中进行一些辅导和进行重要节点管控和监督。
   上级不信任下级,经常碰到,而下级不信任上级也很要命。程序员是很有个性的工种,不好管理,往往特别多想法。就好像车轮子陷入泥潭中,上级说车子往前推,有的人又说,往后拉,各自发力,估计车子永远都摆脱不了泥潭,还谈何效率?
   因此,如果有意见,前期可以提,但是解决方案一旦定下来,应该上下一心(即使有意见也埋在心底吧),朝着目标一起去努力。
    不同部门之间沟通存在隔阂与障碍 
   软件开发过程中,在IT范畴内,不同部门难免有交集,例如开发与运维、开发与测试,不同岗位承担的责任、掌握的知识体系、考虑问题的角度往往不一样,导致处理事情受阻。
   举 个栗子,有一次,开发人员为了验证某个问题,需要运维人员协助重启某个站点。对于开发人员来说,这个站点,用的人比较少,而重启也是一瞬间的事情,风险为 基本为0,但是由于运维人员掌握的知识体系不一样,怕重启了会造成很大影响,甚至害怕出了问题要自己承担责任,明明可以瞬间操作解决问题的,又要等到中午 或者半夜三更没人的时候才敢重启,效率就是这样降低了。这个时候,需要运维人员,去学习一下相关知识,或者引入新流程,例如,重启站点,需要某个专业人士 口头同意,即可立即执行。
   因此,不同部门之间的人,应该互相学习,才能更好地沟通;做事情,尽量做轻量级的流程化、标准化。
    上级工作安排不到位 
   上级工作安排不到位,也会导致工作效率低。有时候会有这种怪现象,可能很多事情没做,但是下面的人没事可做;或者有的人很忙,有的人很闲。
   软件开发分工,不像搬砖头,一人搬一车就行了。软件开发, 工作量化本身就是一个很难的地方,如果项目经理没有做项目计划,没有做工作点、任务点拆分工作就很难安排到位。特别是刚刚从程序员转型做项目经理的人,过 程性思维,不会对项目做整体的把握、整体规划,想到哪里就做到哪里,想到什么就分配什么工作,最后一团糟,一会把下面的人累死,一会又让下面的人闲死。
   

7. 为什么很多程序员不愿意在公司加班?

在职场中最想吐槽的很多:
一,不升职,不加薪。
   刚刚入职的时候,老板是说的天花乱坠,公司的发展前途多么好,将来会发展的如何还大,加入公司前途不可限量,将来是升职又加薪,后来,就没有后来了。没有升职,更没有加薪一说。
二,没完没了的会议。
白天基本是开会讨论需求,然后还要配合前端联调,不停地被打断,时不时地很有几个会议要参加,不是很重要的会议一边开会拿着笔记本一边写代码,有时候你会发现到下班了开发才刚刚开始,下班后终于可以安心敲代码了。
三,被迫的加班。
大概小公司的程序员不是程序员,五分钟给你断一次,前端后台服务器,电脑坏了找你修,软件安装也找,耳机听不到了也找,真以为就这样了?各位系统使用者各种不会使用的问题找你,一天只有大家都下班了才有时间写代码。


可以说为了生活,打工人早已用尽全力,一个合格的打工人必定是每天早上六七点就起床,赶首班公交车或地铁,通勤1小时以上到市中心上班,风雨无阻。
中午匆匆地敷衍一下胃,到了晚上9点过,地铁站依然是人头攒动,像是沙丁鱼罐头般。Lisa偶尔加班,当拖着沉重的身体进入地铁站时,发现身边都是加班人,那一刻,既觉得有些安慰,又觉得更加心酸。
为生计努力的人,做梦都想工作能够轻松一些,根本没时间矫情,没时间去思考生活的意义。


为什么很多程序员不愿意在公司加班?

8. 为什么很多公司的程序员都加班多?

这个肯定不是一概而论的,具体也要看行业和单位吧,一般私企、合资、外企加班可能会比较多吧,事业单位和国企还是比较规范的,但也不排除有例外,所以就得具体问题具体分析了。如果你不想加班,并且很坚定的话,面试就可以提出来,不接受加班,如果同意就行,如果谈不好就再找。我面试的时候就是这样的,都会提前把话说明白,省得以后麻烦。因为我的态度是很坚决的,绝不妥协,所以就说出来,但如果是那种耳根子软的,心里摇摆的,禁不住领导的软硬兼施的,那就另当别论了。
加班永远都不是常态。无论有偿加班还是无偿加班都不是常态。在软件公司,经常加班的人什么精神状态,除了想腾讯阿里那种一年给上百万或者是几百万的,靠着钱在打鸡血支撑着,有多少人都是拖着疲惫的身心在考点。永远都不排除极个别人,有着明确儿崇高的理想,为了改变世界而加班。永远都不排除少部分人,有着正义感和责任感,为了拯救世界而加班。永远都不排除相当一部分人,为了金钱而加班。剩下的,加班既不改变世界,也不拯救世界,更不会为自己和家庭带来经济上的改变。仅仅是盲目的加班,因为老板让加班,不敢反驳,因为别人加班,不敢不从众。反复的做重复的劳动,也并不会给自己提升多大的价值。所以加班肯定不是常态,而是变态。