Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are the crucial key items in recording technical debt?

I'm setting up a technical debt register at The Office and want to make it a fairly comprehensive tool.

What are the key pieces of information that we should be recording?

like image 640
Phil.Wheeler Avatar asked Oct 10 '10 22:10

Phil.Wheeler


People also ask

How do you record technical debt?

Organizations can track technical debt issues in the same way they track and remediate software defects: Use a ticket or tracking system. This approach lists and prioritizes technical debt issues along with defects, effectively keeping technical debt issues on the same page as software defects or problems.

What are tech debt items?

Technical debt (also known as tech debt or code debt) describes what results when development teams take actions to expedite the delivery of a piece of functionality or a project which later needs to be refactored. In other words, it's the result of prioritizing speedy delivery over perfect code.

What leads to technical debt?

Technical debt accumulates when development teams cut too many corners to expedite a feature or software release delivery. The concept of trying to complete a project as quickly as possible often creates problems that must be fixed in the future.

What is one of problems when you are in technical debt?

The problem with technical debt is when it gets out of control and development teams spend the greater part of their time paying off the “interest payments” from past projects, instead of working on new features or critical new updates.


1 Answers

First of all - you want to keep your register very simple, otherwise the overhead of maintaining the register will stop people from using it and waste more time than actually fixing the technical debt it was meant to solve.....

If you still decide to go ahead, I'd suggest keeping a simple register which is a flat file / simple database / Google spreadsheet with the following fields:

  • Module/component name
  • Description of what needs to be fixed (you might have a list of categories but I think this also need a text one-liner)
  • Estimated fix time in days (I'd be inclined to insist on whole numbers of days, otherwise people will have a tendency to start logging trivially small things)
  • Which developer incurred the debt (and provided the fix time estimate)
  • Which project the debt was incurred on (any by implication, which project manager is accountable)

Rules are as follows:

  • Developers are expected to be transparent about technical debt. If a developer needs to incur technical debt due to project pressures, the developer should add this to the log with their estimated fix time.
  • Project managers are accountable for technical debt that they run up (i.e. did they pressure developers to take shortcuts?). They should be able to justify a solid business justification for the total debt run up, and propose what should be done to fix it.
  • If no technical debt is noted, then the code is expected to be of top quality and pass any relevant code reviews. If technical debt is noted, then the developer gets a "pass" for whatever is noted (the review might instead helpfully consider the accuracy of the debt logging and ideas on what should be done to fix).
  • Developers are expected to give fair estimates for the fix time. If they say it will take two days to refactor the architecture, then they shouldn't be surprised if they are given two days to fix it at some later time....

I think this approach will create a good dynamic overall - developers have a responsibility to be transparent and think about how to solve technical debt, project managers / business leads have to make the trade-offs but it is clear that the costs of debt are their responsibility, the best developers and architects will get kudos for completing the tough projects while also keeping technical debt under control.

like image 121
mikera Avatar answered Sep 29 '22 17:09

mikera