维护的几何模型:一个月的开发要还多久的债
来源:entropicthoughts.com — 2026-10-13
📋 概述
作者动手检验 James Shore 的「阈值模型」——每投入一个人月写代码,第一年产生 10 天维护、之后每年 5 天——指出这种模型的预测会随新开发累积而指数上升,与真实项目不符。他用 git 统计 tmux 的历史:新开发累计约 23 万行工作量,维护约 43 万行,维护约占总量三分之二,而且分成四个阶段;阈值模型在 2022 年之前拟合得意外地好,之后开始高估。换到别的项目上,模型高估了 nginx(预测 81%,实际 63%)、Rust、VSCode 与 Go,却低估了 Neovim(预测 70%,实际 83%),在 Syncthing 上连曲线形状都对不上。于是他提出几何衰减模型:单位新开发诱导的维护随时间按几何级数衰减,平均参数下一个「一周的项目」其实是两周的项目,算上全部后续维护则是四周。他也承认模型仍有缺陷,比如没有考虑既有代码规模,而且各项目的总量与消除时间差异很大。
🔑 核心要点
- 用 git 统计 tmux:新开发累计约 23 万行工作量,维护约 43 万行,维护约占总量三分之二
- 阈值模型的预测随开发累积呈指数上升,最终快于实际发生的维护量
- 拟合失准的例子:模型高估 nginx(81% 对实际 63%)、Rust、VSCode 与 Go,低估 Neovim(70% 对实际 83%)
- 作者提出的几何模型:单位新开发诱导的维护随时间按几何级数衰减
- 平均参数下的反直觉结论:同年产生的维护就已经超过新开发本身,一周的项目实际是两周的项目
- 模型仍有缺陷:没有考虑既有代码规模,且不同项目的总量与消除时间差异极大
💡 金句
因此,一个「一周的项目」并不是一个一周的项目,它是一个两周的项目——这还只算了同年发生的维护,算上全部后续维护就是四周。
👍 0
👎 0
← 返回 Lobsters 首页