程序员为什么加班多,是什么原因导致的?
导致程序员加班的原因很多,主要由以下几方面吧:
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,但是由于运维人员掌握的知识体系不一样,怕重启了会造成很大影响,甚至害怕出了问题要自己承担责任,明明可以瞬间操作解决问题的,又要等到中午 或者半夜三更没人的时候才敢重启,效率就是这样降低了。这个时候,需要运维人员,去学习一下相关知识,或者引入新流程,例如,重启站点,需要某个专业人士 口头同意,即可立即执行。
因此,不同部门之间的人,应该互相学习,才能更好地沟通;做事情,尽量做轻量级的流程化、标准化。
上级工作安排不到位
上级工作安排不到位,也会导致工作效率低。有时候会有这种怪现象,可能很多事情没做,但是下面的人没事可做;或者有的人很忙,有的人很闲。
软件开发分工,不像搬砖头,一人搬一车就行了。软件开发, 工作量化本身就是一个很难的地方,如果项目经理没有做项目计划,没有做工作点、任务点拆分工作就很难安排到位。特别是刚刚从程序员转型做项目经理的人,过 程性思维,不会对项目做整体的把握、整体规划,想到哪里就做到哪里,想到什么就分配什么工作,最后一团糟,一会把下面的人累死,一会又让下面的人闲死。
程序员加班最狠的一次是什么情况,有多辛苦?
我自己的高强度加班有2次,都是自己创业
当时这是个社区平台,有过千万用户了,一个核心系统升级,然后出了点问题,不能降级,没办法只能停了这个系统加班加点修改。
改了4天3夜,中途还接了用户近200个电话,好多是凌晨,用户还很惊讶,说那个时间还有人接电话。
最终解决了,用户也没有流失,睡了好几天补觉。
这是一个 游戏 接入项目,因为对方是一个大平台,用户量特别大,要上一个流量平台,一堆 游戏 cp抢着上,所以你不抢肯定赶不上第一波,而第一波绝对是资源最足的。当时开发团队分在3个城市,我来统一指挥,还需要跑去平台那边,相当于是4个地方,最终也是赶上了。虽然 游戏 没赚到钱,不过这个加班是太狠了。
当然,对方平台公司更夸张,为了他们流量平台项目,整体没日没夜加班3个月,每天到凌晨3点,早上还早早9点就到公司了,具体公司就不说了,我们对比他们简直算是早九晚五了。
另外从业20年,总结:
短期冲刺加班赶节点还是有点用,长期加班的项目成功概率太低了
遇上长期的,赶紧换公司走人
其他程序员怎么加班我确实不太清楚,就我个人的经历,最狠的一次加班是在2009年1月1日。
直到现在,我都清晰的记得当时的情况。那是的我还是一个普普通通程序员,2008年的年末,我们接手了一个新的项目,是和苏州公司合作的一个项目,因此,苏州公司派了一名项目经理全程参与。
我还记得第一天项目启动会的时候,这位项目经理说:“我希望大家能够通力合作,完成项目。放心,我不会把大家当牛当妈的使唤的。”当时,我以为这是一句玩笑话。但是后来我明白,他果然没有把我们当牛马,都快要猪狗不如了。
2008年12月底,由于项目快完成是产生了需要和设计的变化,而需求和设计的变化不小,导致代码改动很大,但是项目研发阶段的deadline临近,本来之前就加了不少班,大家就怨声载道了,现在更是只变需求不给时间,大家就更是不开心了。Teamleader和项目经理是因为这个问题直接怼上了,最后,项目经理很不厚道的把“我们完不成任务”的情况汇报给了集团的高级总裁。
这件事也就不可收拾了,我们这里分公司的总经理扛不住,只有要求Teamleader按照项目经理的要求完成,如果完不成就提前说,咱们就换人。
最后,自然就定下了一个目标,1月7日前完成所有的调整,保证质量的情况下进入集成测试阶段。
于是,惨无人道的7天生活就开始了。
2009年1月1日,元旦节,我们在公司加班到了凌晨1点多,到处都没有人了,就连对面的华为(当时华为的园区还没有修好,所以就在我们公司对面)也没人了。我们大概10人左右的小分队就到了附近的烧烤摊,吃了顿烧烤,然后3点左右回到公司继续干活。到了凌晨5点多的时候,扛不住趴着睡了一下,9点多又起来接着干。
2009年1月2日,其他项目继续放假,我们接着干,中午的时候休息一下,下午开始又一直弄到完成11点多,然后回家。
2009年1月3日,整个公司还是只有我们这一个小分队,9点多到公司后开始干活,一直干到了晚上9点多,然后让一些女同事先回家了,毕竟女孩子要是一个人的话,太晚回家还是有安全上的风险。我们几个男同胞又接着干,到凌晨3点多,然后收工回家。
2009年1月4日,公司正常上班了,我们也按时到了公司,这时候项目其实基本是赶工的成果,功能没有全部改完,也没有经过验证,风险很大。但是,集成测试前,有一个UT和Checklist是必须完成的,这个至少需要留一天时间,也就是留给研发的时间只有不到3天了。
于是,1月4日这天又忙到了凌晨3点多,还是有很多问题没有解决。无奈,大部分人都快要扛不住了,还是回家吧。
2009年1月5日,我大概9点多到的公司,然后继续开始了赶工之路,时间已经不多了,这天结果一直到了晚上2点多,还是有很多未完成的内容,Teamleader带着大家出去觅食,结果便利店都关门了,只有无奈返回,继续干活。一干就干到了1月6日下午5点多。这个时候,大部分的问题都基本处理了,只剩下一些零散的内容。所以,到了晚上8点多,大家就撤了。
2009年1月7日,对整个系统进行了自测,遇到问题处理问题,由于根本没有时间做UT用例,所以都是想当然的进行了验证,按照Checklist的内容一一跑了一下。最终,在晚上9点多的时候完成了所有的测试并进入了集成测试阶段。
终于,我们算是按照要求达到了目标,不过也度过了惨无人道的7天。什么凌晨4点的街道,什么凌晨5点的朝阳,呵呵。
那肯定是连续通宵加班啊,赶项目就是这样,没办法,干工程的人员应该都有体会!
分享最近的一次加班经历吧,多狠倒是不至于,也没觉得有多么的苦逼,反而很有成就感。
就是这次疫情期间发生的事情,很多公司都停工停产,不过也有行业很早就开启了远程办公模式,我们公司也也不例外,甚至我们在春节假期期间,就已经开启了加班模式了。
针对这次疫情,我们公司推出了一款新产品(线上),具体内容就不详细说了,反正也算是做了一件利国利民的事情,所有收入都捐给了武汉,而这款新产品的开发,让一个团队上百个伙伴,连续工作了三天三夜。但是产品上线后遇到了一个比较严峻的考研,就是业务量比较大,一个老接口已经超过了现有系统的承受能力,所以需要一个系统提供一个接口,现有业务迁移到新的接口上。
我是那天晚上起点多接到了领导们的微信语音,了解到这件事儿的前因后果,并且领导给出的提测时间点:第二天早上。
苦逼么?别人系统做了几天还是几周开发出来的东西,需要第二天重构出来。
其实一点儿都不苦逼,反倒觉得非常有挑战,似乎有一些热血澎湃。
讨论完需求的具体细节之后,我安安稳稳吃完了晚饭,然后:
20:40 沐浴更衣,准备大干一场。
21:00 点坐在了电脑前,VPN 连到了公司的电脑;
22:00 总体的架构就搭建起来了;
02:00 四个小时把细节全部实现;
03:00 一个小时自己进行调试,修改,再调试 ... 通过;
03:30 花了半个小时完善了注解和文档;
提交代码,打完收工,貌似提前完成了工作;
测试团队(全流程)测试,第二天下午上线,上线后效果不错,抗住了压力。
感觉自己像一个拯救了世界的英雄。
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
作为一名老程序员,职业生涯经历过很多次加班赶进度的情况,这在这个行业里是再所难免的,偶尔的加班其实还都可以接受,怕就怕持续性的加班。
基本上对于大公司来说每次大促活动、大版本发布都需要经历一段时间突击,当然,像大促活动上线这种情况即便你工作完成了,在上线前后你都需要随时待命,一般像双十一这种规模的活动,基本上都是彻夜守候在电脑前,保障系统稳定性和及时解决出现的问题。这种加班其实并不是工作量的累了,而是真正的精神压力了,一个小问题都有可能引起大故障。但在这种情况下后勤保障还是挺完善的,各种小吃饮品满足你需求,紧张的心情伴着“节日”氛围,事后释怀了回想起来让人也是感觉成就感满满的。
我曾经半夜三点被主管喊起来开车拉我到公司解决线上Bug,也曾因为接到了一个自己完全不熟悉的领域连续加班5天到2点,但这不是常态,如果成为常态那果断离职吧。
在这里也建议各位程序员加强身体锻炼,毕竟身体是革命的本钱。
我听朋友说的,他是在公司做HR,有一次她早上来上班,正常的和同事说话,可能声音比较大,把项目经理吵醒了,发现项目经理一夜都在公司,基本熬个通宵。
有的时候为了赶项目,确实要加班很晚,但也不全是这种状况,要是平时速度快的话,肯定是不用加班的。
程序员加班其实没有最狠,只有更狠。从不同的领域细分,一般互联网企业加班是最厉害的,然后是一些头部的私企,具体是哪家就不说了。有的创业公司加班也比较厉害,但不一定。
很难从总体上说是什么情况,说说自己从业十几年的经历吧。
L公司
刚毕业的时候去的L公司,号称是国企的IT公司。到了没多长时间就碰上新项目,由于工期紧,领导带着做封闭开发。基本上是每天凌晨3点睡觉,早上8点多起床。最后加班都加恶心了。
H公司
然后去了H公司,H公司是一个私企。加班本来就是家常便饭,但是我参与的又是线上的业务,出了问题要马上搞定。记得最厉害的一次应该是搞了一个通宵,然后第二天正常上班接着搞。
倒是没有连续搞多个通宵的情况。没有在互联网公司呆过,听说那里加班更加厉害。有过类似经历的同学可以在下面分享一下。
你知道凌晨四点的杭州西湖是什么样子吗?
每个公司不一样,部门不一样,加班的原因也不一样。像我,很多大型活动的时候都需要研发值班过晚上12点,2、3点下班。比如618,双十一,双十二,双“蛋”。一年也就那么几次,没那么频繁,不然谁都受不了。
但是这不是最苦逼的,因为第二天可以调休,值夜班中间也没啥事,还有公司统一发放的夜宵,同事之间吃吃喝喝,说说笑笑,还是很嗨皮。
最苦逼的是半夜三更被电话叫起来,应急处理某些重大线上bug。只有你一人孤军奋战,从天黑干到天亮。还得正常上班,开一天的会向领导汇报情况,精神一直处于高度紧绷状态。最后还吃力不讨好,成为背锅侠。后面几天晚上都睡不好,从身体到心理上都觉得苦逼。
总结下,bug无法避免,我们程序员个人能做的是什么呢?除了提高技术能力之外,就是保存良好心态,和拥有强健体魄。随着年纪增长,越发的理解前辈的话,能够倒头就睡第二天被上班闹钟叫醒真的很幸福!
我记得那是上班的第二年,在移动的一个项目上,当时真的是年轻,精力充沛。当时是年底组巡,为了应对检查,通宵两个晚上去核查数据,基本连续两个晚上没睡,到了第三天下班才正常回家补觉。
后来年纪大了,真的熬不起了,奉劝年轻人还是不要这样,提高工作效率是关键,没有产出的加班是一种无能的表现。
最狠的一次加班也就是连续半个月在公司待到凌晨一两点左右吧。那时候为了完成一个项目所有同事都一直忙到很晚才回去,自己我住的离公司很近,其实也不算多么的辛苦吧,毕竟就算不加班自己也是要一点左右才睡觉的。每次加完班走在回去的路上,反而有一种病态的满足感,感觉自己过的很充足 。感觉每天和一群同事努力的去完成一件事情,特别是最后圆满完成的时候有一种小小的成就感。其实做了五年的程序员,平时很少加班的,因为没有加班费所以公司也不提倡加班。如果不是特殊的情况,一般都是朝九晚五的节奏,很少有在公司待到一两点的。很多人提到程序员就是加班,什么九九六,什么零零七,其实正常的公司为没有这么变态了,一般只是一些特殊的情况才会偶尔加一次。
一个月加班120小时在码农界是什么水平?
加班120小时,在码农界属于中等的水平,大多数码农,都不需要休息的,每天睡觉也不会超过6小时,你自己算算,其实120小时真不多
程序员加班多吗
这个肯定不是一概而论的,具体也要看行业和单位吧,一般私企、合资、外企加班可能会比较多吧,事业单位和国企还是比较规范的,但也不排除有例外,所以就得具体问题具体分析了。
如果你不想加班,并且很坚定的话,面试就可以提出来,不接受加班,如果同意就行,如果谈不好就再找。
我面试的时候就是这样的,都会提前把话说明白,省得以后麻烦。因为我的态度是很坚决的,绝不妥协,所以就说出来,但如果是那种耳根子软的,心里摇摆的,禁不住领导的软硬兼施的,那就另当别论了。
加班永远都不是常态。无论有偿加班还是无偿加班都不是常态。在软件公司,经常加班的人什么精神状态,除了想腾讯阿里那种一年给上百万或者是几百万的,靠着钱在打鸡血支撑着,有多少人都是拖着疲惫的身心在考点。
永远都不排除极个别人,有着明确儿崇高的理想,为了改变世界而加班。
永远都不排除少部分人,有着正义感和责任感,为了拯救世界而加班。
永远都不排除相当一部分人,为了金钱而加班。
剩下的,加班既不改变世界,也不拯救世界,更不会为自己和家庭带来经济上的改变。仅仅是盲目的加班,因为老板让加班,不敢反驳,因为别人加班,不敢不从众。反复的做重复的劳动,也并不会给自己提升多大的价值。
所以加班肯定不是常态,而是变态。
程序员被公司强制要求加班到9点,没事情可干:坐到腰间盘突出?
现在IT界的加班风气越来越严重了,甚至很多公司开始提倡加班,让很多想要准时下班的员工苦不堪言!不过对于加班这件事,领导一般都是“睁一只眼闭一只眼”,因为加班能够给公司带来更多产出!但是又不能声张出去,毕竟要是让市场给公司打上加班的标签,想要招聘新人就要难很多!
可是,近日有一位网易的程序员抱怨:公司要求每天都要加班,到晚上9点才能下班,效率高的做完事情之后,还要在公司没事干硬坐到9点,腰间盘都坐突出了!
有网易内部的员工表示:在公司里想到9点太简单了,吃完晚饭,上楼休息以下,然后可以打打游戏或者看下新闻,然后到9点直接下班,没有必要干坐着。
然而,还有网友反驳:在公司打游戏看书,不就等于告诉老板我活干完了吗?到时候老板又会再派点活给你,或者改个方案之类的,那你后面连干坐的时间都没有!
加班虽然是增加工作时间的方式,但是我们要提倡合理加班,既然完成了当天的工作任务,允许正常下班并不过分。强制加班只会让员工对于公司的厌恶感加重,传出去还会败坏公司名声,而且由于员工待着个人情感加班,工作肯定没有多少实际产出,对于公司和员工来说,并没有任何好处!
欢迎刚入门的Java小白朋友们加入Java之家:79979,2590
群内提供免费的Java的学习资料(里面有企业级技术、日常练习案例等多个知识点的资料,每晚我还会
在群内直播上课)
为什么说程序员是一个极度劳累的工作?
因为很多的程序员每天都需要面对电脑,编写自己的程序,这对于很多人来说都是非常累的。在中国,很多的程序员每天都必须要不停的加班加点的工作,没有自己的休息时间。因为程序员这个工作是非常累的,所以很多程序员都慢慢的辞职转行了。人们说起程序员这个工作,除了觉得程序员这个工作工资很高之外,再就是觉得程序员这个工作真的非常的累。关于为什么说程序员是一个极其劳累的工作?以下是我的看法:
一、程序员需要每天面对电脑,编写自己的程序
我们都知道程序员是每天都必须要在电脑上工作的,他们每天都必须要面对电脑,编写自己的程序。有的时候如果程序出现了漏洞的话,还需要花费很多的时间和精力去修补漏洞。因为程序员这个工作不仅仅需要很多的体力,还需要花费很多的脑力,所以这个工作是极其劳累的。
二、程序员每天都需要不停的加班加点的工作
如果程序员每天能够只工作八个小时,到点下班的话,那么程序员这个工作可以说是一个非常理想的工作。但是在现实生活中,很多的程序员几乎没有自己的休息时间。大部分的程序员每天都在不停的加班加点的为公司工作,正是因为这样,程序员这个工作才极其劳累。
三、因为程序员这个工作非常劳累,所以很多程序员都慢慢的转行了
很多人都觉得程序员这个工作是一种青春饭,一旦一个程序员到了35岁往上,这个程序员可能就会被公司裁员。正是因为程序员的竞争非常激烈,职场环境也非常恶劣,所以很多程序员都慢慢的转行了。
那么你觉得为什么说程序员是一个极其劳累的工作呢?欢迎评论区下方留言。