转载自:www.v2ex.com/t/927862
原名:《接连加班一个多月后,反思一下为啥国内程序员加班这么多》
作者:程序员耳东
接连加班一个多月后,反思一下为啥国内程序员加班这么多
重视程序员耳东,编程转码真轻松
防杠攻略:本文不适用于资深大佬,若喷必回
本年过完年之后一直在加班,重视我的粉丝应该也能看出来,2 月份和 3 月份写的笔记的确比较少,最近才开端康复
加班完毕是得好好考虑一下,究竟咱这班也不能白加了对吧,我得好好想一想到底是为什么会导致我加班,我细数了一下平常导致我加班几个主要原因,我们看看有没有共鸣
事务需求倒排期,改的随意
互联网公司的事务迭代是十分快的,尤其是电商、营销相关的事务,基本上随时都在出需求,需求顺排倒还好,无非便是给了排期之后顺着做就行了
可是有一个十分蛋疼的点,假如这个需求事务方要的十分急,比如说 15 号出的需求 PRD ,月底就得上线,有必要得倒排,那么便是说上线的时刻定了,测试的时刻占用一段,联调的时刻再占用一段,留给开发的时刻真的不多了
时刻不够怎么办?要么加人要么加班,加人还有个问题,有的功用并不是很好拆分,并且人多了管理成本也在添加,1+1 并不是一定能等于 2 ,所以到最后就只能全员加班来肝需求
关于事务需求,还有一个或许导致加班的点是改的随意。
之前我在字节跳动打工的时候,每次需求评定会一堆年轻的 PM ,跟唱戏似的,你方唱罢我方上,哭爹喊娘的说自己的需求是多么多么的重要,常用的话术是:我这个需求是 xx 等级的老板垂青的、我这个需求能够为公司发明 xx 的收入等等
一个个的 PRD 写的怎么样不重要,最重要的是抢占研制资源,最好能够把程序员固定在自己手里
等到需求开端做了,发现其实 PRD 里边有许多东西没想理解,这个时候就开端改 PRD ,改了 PRD 可是研制排期却不变,那这咋办呢?程序员加班呗
所以国内常常盛行一个戏弄的对联:
上联是:这个需求很简单
下联是:怎么完成我不论
横批是:明日上线
尽管这个对联是戏弄的,但也暗示了许多公司在研制流程的不标准、管理混乱,这也是大部分程序员加班的重要原因
会议太多,占用时刻
会议太多这个作业或许是大公司的通病,有时候屁大点作业就拉个会议,我细数了一下我一个月参与的会议:
- 需求评定会
- 技能计划评定会
- 需求复盘会
- 细节对齐会
- xx 项目启动会议
- xx 横向项目
- 技能共享会
- 周会
- 测试用例评定
- OKR 会议
- CodeReview 会议
- 等等……
其实这儿边的会议真的太多了,有的团队还有早晨的站会等等,进一步压缩了写代码的时刻
那能不能提高功率呢?我觉得能够
就说这个需求评定会吧,假如说每个人会前都能细心的过一遍 PRD ,记录好疑点,那评定会完全能够开成答疑会,回答完疑问就差不多了,这姿态能够节省许多时刻,不至于一个需求评定会就开一两个小时
还有技能共享会,许多 leader 为了提高团队的技能气氛会要求组员进行技能共享,可是有的时候,共享的东西别人不一定感兴趣,深度把握的欠好的话组员也会只把它作为任务去完成,这便是纯粹的浪费时刻了
总之会议这部分,我觉得是一个存在很大提效空间的当地,一个作业是否需求拉会、是否要拉那么多人,是值得考虑的
技能需求,各种丐版轮子
关于技能需求这个问题,我不知道是不是国内程序员的特色哈,便是纯做 PM 提的事务需求是很难得到好绩效和提升的,由于这些作业是你作业责任范围内的作业,你很难说清楚这些作业带来的收益是 PM 的劳绩还是研制的劳绩
要想得到好绩效、超出预期,那就有必要得做一些纯技能的作业,也便是所谓的“技能需求”,并且有必要自己挤时刻做,不会为这部分作业量专门划时刻
常见的技能需求,比如说这两年特别盛行的 LowCode 渠道,据我所知许多大公司都在搞这种,并且是投入了许多研制的精力在里边的,美其名曰 LowCode 渠道能够提高功率,所以在许多需求开发中强行推,要求研制有必要运用 LowCode 渠道来完成研制,可是在运用的过程中并没有提高功率,反而让研制添加了许多兼容成本和额定的作业量,不论能不能供给功率,先卷了再说
甚至有时候,多个团队之间在卷相同的技能轮子,一个大公司内部至少有 3 个 LowCode 渠道、5 个组件库、3 个部署渠道、4 个项目管理渠道等等,我们都在加班卷技能项目,卷自己团队的存在感和洽绩效
到最后,这个技能项目会出现在提升答辩的 PPT 和汇报资料上,包装后的数字和成果都很亮眼,技能项目的发起者拿到了好绩效、提升成功,等到提升成功之后,这个技能项目的任务也就完成了,从此时开端它就走上了烂尾的路途,前史项目也就留下了一堆烂摊子代码
老老实实做事务需求的人得不到提升,做各种丐版技能轮子并且强推的人最后得到了提升,这个问题在国内大公司十分普遍,这也是造成许多研制被卷着加班的重要原因
杂七杂八的作业,消耗精力
程序员还有一些杂事儿,也是适当的消耗精力了,我举几个例子
首先说线上 oncall ,这个作业其实也算是研制的正常作业范围内的作业了,可是假如一天出一个比较麻烦的线上 bug ,那今日必定其他的作业就没空做了,或者只能加班去做
更不用说,假如所在的部分是根底架构部分的话,要处理技能之外的一些运用答疑事项,这部分作业毫无技能含量,和客服无异
还有便是十分着重技能要去深入事务,好嘛没问题,可是深入事务也是需求消耗时刻的,这就意味着你除了读 PRD 以外还得去看 MRD ,或许你需求去和事务部分、市场部分的同事开会旁听 ta 门关心的作业,除过技能相关的东西以外还需求去重视事务指标
这又给自己添加了作业量,leader 不会说专门给这部分作业量去给你添加时刻,只能自己挤时刻了,这无形中又添加了加班
总结
我总结的这几个原因是我结合自身加班状况剖析而来,或许国外的程序员也存在相同的问题,也或许有的人观点不一样,欢迎沟通。