你积极管理技术债务吗?

25

你是否积极管理软件开发项目中的技术债务,如果是,你是如何做到的?


1
这个问题似乎不属于此网站的主题范围,因为项目管理问题已经不再是主题范围之内的了。请参阅http://pm.stackexchange.com。 - LittleBobbyTables - Au Revoir
我投票关闭此问题,因为项目管理问题不再属于主题范围。请参阅pm.stackexchange.com - Pang
10个回答

11

管理技术债务的一个方面是说服非技术经理需要分配时间进行重构和修复漏洞。

这篇文章提供了具体建议,以便您完成这一任务。


我在这里发布了一些关于技术债务的技巧和策略:http://benlakey.com/2012/06/18/technical-debt/ - dreadwail

4

在我们的团队中,我们积极管理技术债务。我们采用Scrum方法,因此根据估算和剩余迭代能力,我们为当前迭代或下一个迭代生成技术债务卡,并像功能和错误卡一样进行优先排序。我们还通过拥有跨团队技术债务积压列表来管理更大的跨团队债务项目,在每个Scrum团队的迭代计划期间将其优先级注入其中。


2
我认为,如果你试图弥补过去的错误,为处理技术债务安排时间非常重要,但同时也应该避免养成这种习惯。一旦你清理了一团糟,就应该避免让项目陷入更多的债务,除非你有充分的理由这样做。
像Mike建议的那样积极地管理它似乎是最合理的方法,但我认为很重要的一点是(对你的团队)要明确指出不应该在长期内安排时间或计划进行重构。
重构应该是编写代码的自然部分,因此应该包括在您的其他估计和计划中,并且不应被视为单独的活动 - 除非您必须这样做,即出于“历史”原因或因为您有意决定以某种方式实现某些功能,然后再重新实现它们。

1

你所需要做的是创造一种文化,除非在极端情况下,技术债务是不可接受的。就像只有在绝对必要的情况下才使用信用卡的人一样。


1
如果我真的需要累积技术债务,因为我现在需要发布一些东西,我会提交一个关于它的严重错误报告,以便它获得最高优先级。但这只适用于极端情况(客户正在跳来跳去,妻子正在寻找一个古怪的符号等)。

0
在我参与的项目中,一些技术债务只有在新阶段的开始、即“大版本发布”或里程碑之后才得到“偿还”(管理)。
技术债务非常重要的一个方面是它不仅涉及开发人员,也涉及管理层。在这个意义上,我知道处理技术债务的最佳方式是让“非技术项目利益相关者”看到它,他们可能会分配时间和资源来管理技术债务,一旦他们了解其影响。
本文文章讨论了几种类型的技术债务,哪些可能是健康的,以及如何管理和跟踪技术债务负载。

0

我同意Anders的观点。如果你必须设置管理技术债务的系统,那就意味着你仍在增加它。首先通过升级“完成”的定义来停止负债。

这意味着“负债”模块将更难处理。开发人员应该意识到这一点,并分配更多的故事点,以便他们在完成任务后留下“完成”的状态。


0

如果你在发布周期晚了,你不想太多改变代码库。这意味着总会有一些技术债务。我通常为那些次优的更改编写 FIXME:,然后在开始实现下一个版本的功能之前处理它们。


0

这很大程度上取决于产品。当我在一个需要外部审计代码的领域工作时,它已经是我们开发过程中计划的一部分了。项目经理只需询问开发人员哪个区域需要重构,然后将其写入计划中。这并不意味着您不会修复正在处理的区域的代码,但您不会花一天时间重写一个混乱的工作代码块。现在我在Scrum中工作,开发人员在进行工作时就会进行重构。 我的印象是无论哪种方式,重构工作所需的时间大致相同。


0

Java Posse最近涵盖了技术债务的管理,看起来非常全面。


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