解决技术债的5个步骤

《管好技术债》- 第13章 与技术债务共存

解决技术债务的通用路径

1、感知

确保所有相关人员都对什么是技术债务以及它如何影响项目有共同的认识

2、评估信息

了解项目的状态,你目前面临的债务,什么原因,以及它的后果是什么

3、建立一个登记表

建立某种形式的技术债务清单

4、决定要解决的问题

当你计划发布时,查看技术债务登记表,力求该发布可以减少技术债务并且可实际解决技术债务问题

5、采取行动

把技术债务的识别和管理纳入所有软件开发和业务治理实践中

重复这个过程,因为不太可能一下子完全摆脱技术债务。

如果你想要明确地管理组织中的技术债务,不要将债务处理作为一个单独的过程,将其集成到流程中,以补充当前的实践。

循序渐进,而不是大幅度地修改。第一步,选择能带来最直接利益的修改。

感知

给你的技术债务起个名字。确保所有参与项目或接近项目的人员对技术债务有共同的理解:什么是技术债务,什么不是技术债务,以及它如何影响项目。

提高感知能力的一些方法:

1、为项目提供一个清晰、简单的技术债务定义。

2、向团队讲解什么是技术债务及其产生的原因

3、直接在项目环境中给大家(管理人员、分析师和产品经理)讲解关于技术债务的知识

4、在问题跟踪系统中创建技术债务类别,使技术债务与缺陷或新功能有所区别

5、将已知的技术债务作为长期技术路线图的一部分

6、将感知活动扩展到作为项目一部分的任何外部供应商

使用能够帮助团队沟通的方法,帮助每个人在概念上都达成一致。

评估信息

在尝试补救技术责备之前,客观评估项目的状态。根据你在技术债务时间线上的位置,考虑以下行动:

1、确定评估技术债务的目标和标准

2、通过分析代码、架构和生产基础设施来监控你的产品,以了解导致团队经历种种症状的技术债务

3、纳入轻量检查 ,以持续监控技术债务

建立技术债务登记表

1、将你的问题跟踪工具中的“技术债务”分类细化为技术债务描述,并将其指向所涉及的特定软件工件:代码、架构或生产基础设施

2、至少包括最常见的两类技术债务:

2.1、简单的、本地化的、代码级的债务

2.2、广泛的、结构化的、架构债务,并指向所涉及的软件工件:代码、架构或生产基础设施

3、分析包含非故意的技术债务的代码和架构,并在技术债务登记表中描述结果

4、在你的迭代审查和回顾会中包括对技术债务的讨论,并对其加以特别的重视。将它作为一个待办事项参与优先排序

在收集信息以获得一些具体示例和评估用的数据时,可能需要做一些清点工作。

决定修复什么

如果你面对的是一个庞大的、有点繁杂的技术债务登记表,则需要确定修复什么以及什么时候修复。

应该根据你对情况的评估来做出决定,包括下一步软件产品的发展方向。要做出决定,需要收集有关补救策略、成本和权衡的其他信息。

审查技术债务登记表中的各项,确保其中包含适当的项目,并确定处理它们的优先顺序,从而决定下一步交付什么:

1、不仅要估计偿还技术债务的成本,还要估计不偿还技术债务项的成本:延迟偿还会在多大程度上减缓当前的进度?如果你无法提供实际成本,请使用“T恤尺码”策略

2、分配时间以偿还技术债务

3、制订一个与上下文相关的偿还计划。

采取行动

根据你的特定情况,并结合项目上下文来综合实施技术债务管理方法。这样做能更加积极主动地了解技术债务产生的原因,并控制新债务的引入 。

采取一些行动来识别和管理软件开发和业务治理实践中的技术债务

1、通过将一些技术债务项添加到迭代待办事项列表中,以保持技术债务处于较低水平,从而减少每个开发周期的技术债务。

2、将技术债务纳入有关延迟功能交付和降低作为短期或长期投资,并计划对其进行管理。

3、收集与技术债务相关的工作或成本的关键指标,以协助未来的决策。

从最简单的情况开始并迭代这些活动,在每次迭代中逐步改进流程。

公众号:码农戏码
欢迎关注微信公众号『码农戏码』