7.2 谨慎使用软件度量
软件度量能帮助团队看见趋势、瓶颈和风险。但指标也很容易伤害团队:一旦指标变成简单奖惩目标,人们就会优化数字,而不是优化系统。
度量应该是对话的起点,不是审判的锤子。
正在加载交互实验...
正在加载概念检查...
常见指标能看什么
不同指标提供不同信号:
- LOC 可以提示规模变化,但不能代表价值。
- 圈复杂度可以提示测试和评审风险,但不能自动说明代码坏。
- 缺陷密度可以提示质量趋势,但要结合模块复杂度和使用量。
- Churn 可以提示近期变化多的区域,适合结合缺陷和事故一起看。
- Lead time 可以暴露交付等待、审批堵塞和批量过大。
指标越脱离上下文,越容易误导。
正在加载概念检查...
指标会改变行为
如果用代码行数奖励个人,团队可能写更多无价值代码。如果只看速度,团队可能拆出毫无意义的小任务。如果只看缺陷数量,团队可能隐藏缺陷或避免承接困难模块。
这不是人的问题,而是系统会响应激励。
使用度量时要加护栏:
- 指标用于团队改进,而不是羞辱个人。
- 多个指标组合看,不用单一数字定罪。
- 看趋势,不只看一个时间点。
- 明确指标支持哪个决策。
- 定期检查指标是否被游戏化。
好问题比好图表更重要
度量的价值来自问题:
- 为什么评审等待时间变长?
- 哪些模块变化多且缺陷多?
- 哪类发布最容易回滚?
- 测试失败是否主要来自不稳定测试?
- 新人在哪些代码区域最容易卡住?
当指标能引出更好的工程讨论,它就是有用的。否则,再漂亮的仪表盘也只是噪声。
正在加载本节练习...