从32岁“程序员”猝死聊聊某些公司的软件开发罪状
最近广州“某源股份”32岁“程序员”高某的猝死上了热搜,但我觉得很多文章都没谈到其工作强度高的根本原因,所以分享一下我的看法。
背景
我迫不得已地在“某某股份”广州分公司熬了地狱的一个月,最后确实觉得无法适应这外包公司的项目管理、研发效能和工作环境,在熬出胃病甚至猝死前主动离职了。
“某源股份”虽然看公司介绍貌似不是外包公司,但从高某猝死的新闻看,其工作强度并无不同,而且用的也是私人微信结合企业OA系统,所以它们工作强度高的原因(罪状)大概相同、相似。
罪状一 项目管理水平低
1.技术能力不足
我在“某某股份”的PM是一个脱离技术开发的老人——无法深入系统和代码细节解决工作难点问题,只能做项目进度跟踪。目标是每天清BUG才放人下班吃饭。
另外该PM还盲目信任AI,忽视工程师人工复审:全面信任AI输出的方案,以及AI生成代码,斥责人工复审工作文档多余。提测后出BUG则指责开发人员和架构师。
2.公司不配足开发资源
高某业务量比较多,工作量暴增但是公司调走一个下属后没进行补员。高某不停地向上求资源,向别的部门借资源,但还是没有多余的人手,多余的那部分都是他自己扛。
项目三板斧“加人,延期,砍需求”。公司不肯“加人”,项目组只能靠自己。“延期,砍需求”在报道中未看到,但从高某的薪金构成底薪加绩效,可知公司通过负面激励不支持“延期,砍需求”,而且还会通过项目的上下游干系人进行绩效连坐。
3.管理者不放权
做不完的工作负责人自己扛,这个是小组/项目负责人兼任PM时经常出现的现象。这种做法短期、临时还行,持续执行会导致一方面负责人自己工作过劳无法持续,另一方面下属得不到机会去成长。
高某抢救中被微信群要求处理订单;去世后8小时,他的微信收到私信:“周一一早有急任务,今天验货不过,要把这个改下。”
要不工作全依赖PM/组长分派,要不就是没做人员储备。当然更恶心的是故意通过欺上瞒下、拉帮结派、打压下属去巩固自己的职位。
罪状二 不重视研发效能
1.人员沟通低效
有企业微信却不用来组建项目和需求沟通群。使用微信群沟通,不备注各人的真名和任务角色,新人无法知道产品、架构、前后端开发、测试的具体人员。
2.加班时长与绩效挂钩
高某晚上基本要加班,公司实行末位淘汰制,加班时长与绩效挂钩,长时间低绩效就会被开除。
“某某股份”在合同中写明“员工工作时长不得低于部门平均工作时长”。
用工程师的持续加班掩盖研发效能问题。无视长期加班会导致工程师工作效率下降和产生健康问题。
3.低质研发流程管理
“某某股份”使用在线Excel文档代替专业研发管理平台。大量的项目、需求、BUG跟踪等,甚至日报,都分散堆放在几个在线Excel文档中的多个tab中,开发和测试工程师无法从个人维度查看当前工作任务。
项目开发流程、测试流程无法形成清晰的进度链路,没法进行有效的项目管理和复盘。
罪状三 开发环境恶劣
1.薅工程师羊毛
要求工程师自备工作电脑,倡导AI却不提供企业AI账号,即要求工程师自备个人AI账号。
2.多个git服务,git分支管理混乱
3.停用maven企业内部仓库
新人要解决大量外部jar包编译报错问题,然后才能开始本地调试。
4.停用单元测试、swagger
联调环境部署缓慢,严重影响工程师自测和联调。
5.未配置日志跟踪和日志管理平台
严重影响测试和生产问题的跟踪分析,导致bugfix极其低效
小结 为什么程序员要受罪?
1.成本二八定律
做软件工程的公司/部门,大多都会标榜研发支出在总收入中的高占比,以此展示自己对研发的重视——本质是广告,通过沉没成本取信于顾客(外部顾客和内部顾客)。反过来看,如果公司要降本增效,当然是对研发减员最快速见效。
2.代码边际成本低
软件开发工程师的产出,是将模糊的自然语言转化为形式化的计算机语言,并交给计算机不知疲弊地日夜执行。只要真实的需求不变、请求的数据量和速率不变,一套开发完成的软件系统理论上不需要投入大量资源进行维护。这是软件开发工程师价值的其中一个体现。但也导致即使裁了软件开发工程师,系统在一段时间内还能正常运行。小修小补的新需求,可以使用成本更低的初级工程师实现,甚至交给AI生成。
3.被人妒嫉的“高薪”
正所谓狡兔死走狗烹,在草台班子看来,“程序员”就是可以替换的工具人,而且一旦不给他们新需求,就会自顾自地“摸鱼”(草台班子认为的不务正业)。因此还不如省点钱降低研发效能,压榨他们的剩余价值并让他们内耗,以此显得不仅研发支出占比高,而且研发人员的“实际”投入时长也高。
4.技术加速替代
偏偏现在是经济困难,叠加AI自动化的技术加速替代,外人越发认为“程序员”可有可无。软件开发工程师也时刻感受着被裁后难找工的现实,因此不得不接受被公司压榨。 同时同事间的绩效排名竞争,管理者协作关系的破裂(小团体、PUA、职位自保),导致软件开发工程师的人际压力越来越大。
5.职业范围由社会决定
其实,你今天能选择的职业,只是一个非常狭窄的范围,这是今天大多数人都认可而存在的职业范围。你在这当中要选择自己兴趣最大、付出成本最低,而且在相当一段长时间里总收入最高的职业。
薛兆丰,《薛兆丰经济学讲义》
一个合格的软件开发工程师,需要花费大量的时间去持续学习,以此换取相对高薪。当我们不得不放弃这份职业时,要怎么才能找到一份收入能覆盖当前支出的另一份职业呢?即使我们放弃兴趣、付出高成本去学习新技能,又多少企业肯放弃对口年轻人,接收我们这些半途出家的呢?最终只能被迫降低收入要求、降低支出,但很多时候刚性支出无法下降,因此软件开发工程师只能甘愿受罪。

夜雨聆风
