您是否积极管理技术债务?

发布于 2024-07-05 04:23:30 字数 1452 浏览 13 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

只为守护你 2024-07-12 04:23:30

如果我真的需要积累技术债务,因为我现在需要发布一些东西,我会提交一个关于它的严重错误,所以它具有最高优先级。 但这仅适用于极端情况(客户上下跳跃,妻子正在寻找装饰物等)。

If I really need to pile up technical debt, because I need to release something NOW, I file a critical bug about it, so it gets highest priority. But it is only for extreme situations (the client is jumping up and down, the wife is looking for a dingbat etc.).

柠檬色的秋千 2024-07-12 04:23:30

管理技术债务的一方面是让非技术经理相信您需要分配时间来进行重构和错误修复。

这里有一篇文章,其中提供了有关如何执行此操作的具体建议

One aspect of managing technical debt is in convincing non-technical managers that you need time allocated for refactoring and bug fixing.

Here's an article with specific suggestions on how to do that.

彼岸花似海 2024-07-12 04:23:30

在我们的团队中,我们积极管理技术债务。 我们采用 Scrum,因此我们会根据估计和剩余的冲刺能力为当前迭代或下一次迭代生成一张技术债务卡,并且它们会像功能和错误卡一样进行优先级排序。 我们还通过跨团队积压的技术债务来管理更大的跨团队债务项目,我们会优先考虑这些债务,并在每个 Scrum 团队的冲刺计划期间注入这些债务。

On our teams we actively manage technical debt. We do Scrum, so we spawn a technical debt card for either the current iteration or the next iteration depending on the estimate and our remaining sprint capacity and they get prioritized just like features and bug cards do. We also manage larger, cross-team debt items by having a cross-team backlog of technical debt that we prioritize and inject into each Scrum team during their sprint planning.

徒留西风 2024-07-12 04:23:30

我认为如果你想弥补旧罪,安排时间处理技术债务很重要,但我也认为你不应该让这成为一种习惯。 一旦你清理了混乱,你应该避免让你的项目陷入更多债务,除非你有充分的理由这样做。

像迈克建议的那样积极管理似乎是最合理的方法,但我认为(向您的团队)明确表示从长远来看您不应该安排时间或计划进行重构非常重要。

重构应该是编写代码的自然组成部分,因此应该包含在您的其他估计和计划中,而不是被视为单独的活动 - 除非您必须这样做,即出于“历史”原因或因为您有意识地决定实现某些内容给定的方式,然后重新实现它。

I think it's important to schedule time for dealing technical debt if you are trying to make up for old sins, but I also think you should not make this a habit. Once you clean up the mess you should avoid putting your project into more debt, unless you have good reasons for doing so.

Actively managing it like Mike suggests seems like the most reasonable approach, but I think it's very important to make it clear (to your team) that you should not schedule time or plan for refactoring in the long run.

Refactoring should be a natural part of writing code, and thus should be included in your other estimates and plans, and not be treated as a separate activity—unless you have to, i.e for "historical" reasons or because you consciously decided to implement something a given way and then re-implement it later.

苍白女子 2024-07-12 04:23:30

您要做的是创建一种文化,在这种文化中,技术债务是不可接受的,除非在极端情况下。 就像只支付现金并且仅将信贷作为绝对最后手段的人们一样。

What you do is create a culture where technical debt is not acceptable unless in extreme cases. Much like people who only pay cash and use credit only as an absolute last resort.

燃情 2024-07-12 04:23:30

这在很大程度上取决于产品。 当我在一个代码必须接受外部审计的领域工作时,这是我们冲刺计划的一部分。 PM只是询问开发哪些区域需要重构,然后就将其纳入计划中。 这并不是说您不会修复您正在处理的区域中的代码,而是您不会花一天的时间来重写一块可以工作的损坏的代码。 现在我在 scrum 中工作,开发人员只是在工作时做。 我的印象是,无论哪种方式,重构工作所花费的时间大约是相同的。

It depends a lot on the product. When I worked in a field where our code had to be outside-audited it was a planned part of our sprint. PM just asked development what area needed refactoring and it was put in the plan. That's not to say you wouldn't fix the code in the area you were working on, but you wouldn't devote a day to rewriting a mangled chunk of code that worked. Now I'm working in scrum and developers just do it as they work. My impression is that about the same amount of time goes into refactoring work, either way.

西瑶 2024-07-12 04:23:30

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

If you're late into release cycle you don't want to change the code base too much. This means there will always be some technical debt. I usually write FIXME:s for the changes that are suboptimal and then I take care of them before I start to implement features for the next release.

翻了热茶 2024-07-12 04:23:30

我同意安德斯的观点。 如果您必须建立管理技术债务的系统,这意味着您仍在添加它。 首先通过升级你对“完成”的定义来停止负债。

这确实意味着“负债累累”的模块将更难处理。 开发人员应该意识到这一点并分配更多的故事点,以便他们让事情“完成”。

I agree with Anders. If you have to set up systems for managing technical debt, that means you're still adding it. Stop going into debt in the first place by upgrading your definition of "done".

This does mean that "indebted" modules will be harder to work through. Developers should be aware of this and assign more story points so that they leave things "done" in their wake.

盛夏已如深秋| 2024-07-12 04:23:30

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

Java Posse have covered the management of Technical Debt recently which looks very comprehensive.

謌踐踏愛綪 2024-07-12 04:23:30

在我迄今为止参与的项目中,一些技术债务仅在项目新阶段开始时(即“大版本”或里程碑之后)才被“支付”(管理)。

技术债务的一个非常重要的方面是它不仅涉及开发人员,还涉及管理层。 从这个意义上说,我知道处理它的最佳方法是让“非技术项目利益相关者”看到它,一旦他们了解其含义,他们可能会分配时间和资源来管理技术债务。

这篇文章讨论了几种类型的技术债务,哪些可能是健康的,特别是如何管理并跟踪技术债务负担。

On the projects I have been involved so far, some technical debt has been "paid" (managed) only at the beginning of new phases of the projects, i.e. after "big releases" or milestones.

A very important aspect about technical debt is that it not only involves developers but management as well. In that sense, I am aware that the best way to deal with it, is to make it visible to "non-technical project stakeholders" who might allocate time and resources to manage the technical debt once they understand its implications.

This article discusses several types of technical debt, which ones might be healthy, and specially how to manage and track the technical debt load.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文