一个CSV导出功能,2个工程师,需求清晰,实际编码只需1天。最后整单花了7天。剩下的6天去哪了?花在读懂现有代码上——得先搞懂才敢改。
作者把这叫「代码库拖拽」(Codebase Drag)。它不显示在任何仪表盘或冲刺报告里,却能让每个任务都比应有的时间多耗2-3倍。更麻烦的是,领导看不到这个数字。
「估计要两周」其实是诚实报价
「按这个代码库的尿性,大概得两周。」作者每次审计都能听到类似的话。功能本该3天做完,工程师报两周,领导觉得是 padding 或者人不行。
工程师在定价拖拽成本。
他们知道改计费模块会牵连通知系统,因为两者早被某个没人记得的服务对象耦合在一起。他们知道上次动那个模块的人搞崩了3小时结账流程。默认作用域、深层回调这些隐藏模式,让改动的爆炸半径无法预测——不读半个代码库心里没底。
估计不是虚高,是诚实。代码库就是这个价。
当估计持续跑到「应有工期」的2-3倍,问题不在估计能力。你的工程师清楚代码库的真实成本,只是懒得再解释了。
周五不敢发版:部署恐惧的隐形税
你们团队上次周五部署是什么时候?如果这个问题换来苦笑,你们有部署恐惧(Deploy Fear)。
表现是批量发布。能随时发却选择攒成大版本、低频发布。某客户团队有条不成文规矩:周三后不发版。没人写下来,只是连续三个周四发布都搞出周末事故后自然形成的。
没有回滚策略、测试不可信、部署管道跑45分钟。不发周四版还能怎么办?
DORA(DevOps 研究与评估,Google 主导的行业基准项目)定义精英团队:按需部署,变更失败率低于5%。这个团队一周发一次,每次屏住呼吸。
「别碰那个文件」:代码库的禁忌清单
「别碰那个文件。」作者几乎每次审计前两天都能听到,语气随意得像聊天气。通常接着一句「上次谁动谁倒霉」。
这些文件变成禁区不是因为业务关键,是因为没人搞得懂。改动成本太高,风险太不可控,团队选择绕道走。禁区越积越多,代码库像城市里的废弃建筑,占据好地段却没人敢拆。
作者做了五年代码库审计,同样五个信号反复出现。他最终整理成评分表:代码库拖拽审计(Codebase Drag Audit)。五个维度,0-2分,总分4分以上意味着需要直接投资代码库,其他优化都是白搭。
五个信号是:估计膨胀、部署恐惧、禁区文件、知识孤岛、以及「改A坏B」的耦合模式。每个都指向同一个问题:代码库的结构债务,不是功能债务。
领导层总先怀疑人。重组、加流程、有时裁人。下一批人撞同一堵墙。因为从来不是人的问题。
是你的代码库在收税。而且税率越来越高。
你们团队上次有人敢动「那个文件」是什么时候?
热门跟贴