记录技术债务的关键要素是什么?

7

我正在办公室建立技术债务登记表,并希望将其打造成一个相当全面的工具。

我们应该记录哪些关键信息呢?


哎呀,我们只是使用我们平常的问题跟踪系统,并用特定的标签/类别标记问题。 - Marjan Venema
喜欢这个问题,期待答案。也许你应该每个答案指定一个问题,这样我们可以使用投票来看哪些问题比其他问题更重要? - Goran
1个回答

5
首先,你希望保持注册非常简单,否则维护注册的开销会阻止人们使用它,并浪费比实际解决技术债务更多的时间……
如果你仍然决定继续,我建议使用以下字段保持一个简单的注册表:模块/组件名称,需要修复的描述(您可能有一个类别列表,但我认为这也需要一个文本一行),预计修复时间(以天为单位)(我倾向于坚持整数天数,否则人们会有倾向于开始记录微不足道的小事情),产生债务的开发人员(并提供修复时间估计),产生债务的项目(任何暗示哪个项目经理负责)。
规则如下:
- 开发人员应该对技术债务透明。如果由于项目压力而需要产生技术债务,则开发人员应将其添加到日志中,并附上他们估计的修复时间。 - 项目经理对他们产生的技术债务负责(即他们是否迫使开发人员采取捷径?)。他们应该能够为总债务量提供充分的商业理由,并提出应该采取什么措施来解决它。 - 如果没有注意到技术债务,则预期代码是高质量的,并通过任何相关的代码审查。如果注意到技术债务,则开发人员会得到“通过”来解决所注意到的问题(审查可能会考虑技术债务记录的准确性以及有关应该采取什么措施来解决的想法)。 - 开发人员应该为修复时间给出公正的估计。如果他们说需要两天重构架构,那么他们在以后的某个时间被给予两天来解决它不应感到惊讶。
我认为这种方法总体上会创建一个良好的动态 - 开发人员有责任透明并思考如何解决技术债务,项目经理/业务领导必须做出权衡,但清楚地表明债务成本是他们的责任,最好的开发人员和架构师将因完成艰巨的项目并控制技术债务而受到赞扬。

债务登记结构的提案之一在这篇文章中 - http://dl.acm.org/citation.cfm?id=2119668,作者称其为“技术债务模板”。 - shershen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接