技术债务的集体管理与成本效益权衡
1. 技术债务集体管理的挑战
在大型系统开发中,技术债务的管理是一个复杂的问题。例如,在某个大型系统里,团队成员花了两年时间才彻底分析完他们的技术债务。即便遵循了技术债务识别流程来过滤非关键问题,仍然列出了约 200 项技术债务,这迅速让人应接不暇。估算的债务量远远超过了多个迭代周期内可用的资源,甚至可能超过了到目前为止开发该系统所付出的努力。
引入大量承包商或暑期实习生来解决技术债务并不能真正解决问题。进行大量分散的更改可能会引入新的缺陷和技术债务。而且,架构层面的债务很难拆分成小的活动来处理,在这个结构层面进行重构可能会使开发停滞数周。
开发团队显然需要额外的标准来决定如何处理一长串的技术债务。逐个偿还所有债务的简单策略并不可行。团队通常需要将技术债务项相互关联起来考虑,思考重构系统以偿还债务的可能方式以及随着时间推移的影响。
2. 产品待办事项梳理与优先级确定
产品待办事项包含期望的功能、架构元素、缺陷修复和技术债务项。团队成员在梳理待办事项时,会识别和细化优先级最高的问题,这些问题将成为下一次发布任务的候选。
然而,确定待办事项的优先级具有挑战性,因为存在许多隐藏的依赖关系。一些功能依赖于技术债务元素,同样,功能可能依赖于某些架构元素。缺陷的解决也可能依赖于某些缺失的结构元素,或者与某些技术债务项相关联。
为了确定在梳理待办事项时是否应包含某个技术债务项或将其推迟到后续迭代,可考虑以下问题:
- 与功能开发相关的技术债务项以何种方式对客户可见?
- 哪些架构决策会对技术债务产生影响?
- 哪些缺陷可以追溯到某个技术债务项的后果
超级会员免费看
订阅专栏 解锁全文
34

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



