源代码中的技术债务分析与管理
1. 理解关键业务目标
在软件开发中,要有效识别和管理技术债务,首先需明确关键业务目标。单纯询问“这段代码有多少技术债务”并无实际意义,技术债务应通过有意义的描述来识别,而非仅列举代码质量违规情况。识别技术债务的数量需结合系统质量和功能的业务目标。例如,调查系统质量并评估其是否符合业务目标,可能会发现产生债务症状的代码部分。
代码产生的后果会导致两种技术债务利息:
- 经常性利息:由于代码留在系统中而持续产生的额外工作,如实现新功能或测试系统的时间增加、维护成本上升等。
- 累积利息:更改系统和改造部分的成本。
不同的软件开发组织有不同的业务目标,这些目标高度依赖于组织的背景和产品。以下是一些常见业务目标及其相关痛点、原因和在技术债务时间轴上的位置:
| 业务目标 | 痛点 | 原因 | 技术债务时间轴位置 |
| — | — | — | — |
| 创建易于演进的产品 | 维护和演进成本增加,新开发者称代码为“意大利面条代码”,缺陷增多 | 团队成员经验不足 | 意识阶段 |
| 增加市场份额 | 客户开始更换服务,过去六个月至少发生两次安全漏洞 | 团队停止遵循标准程序,不理解关键架构要求 | 临界点 |
| 降低开发成本 | 重用软件可减少开发时间,但不确定未来是否会产生技术债务 | 在已有债务的产品上构建可能产生更多债务,团队不完全理解未来重用的场景 | 发生阶段 |
| 缩短上市时间 | 开发速度持续下降,实现简单更改和测试耗时过长 | 团队未创建足够文档或遵循标准流程 | 超过临界点 |
以Phoebe项目为例,其业务目标之一是创建易于演进
超级会员免费看
订阅专栏 解锁全文
1171

被折叠的 条评论
为什么被折叠?



