Technical Debt Management

Technical Debt Management

Overview

Technical debt is intended to be any remaining work on a project that was intentionally put off in favor of completing the project sooner, typically to meet a milestone or release date. Essentially, technical debt can be thought of as borrowing against future time since the technical debt itself still needs to be addressed at a later date. Moreover, there will also be interest in the form of additional developer time spent managing the complexity and software entropy caused by the technical debt. Following are typical sources of technical debt:

  1. Incomplete, outdated, or missing test frameworks

  2. Workarounds or scope cuts resulting in less-than-ideal or unintuitive logic

  3. Backlogged or otherwise outstanding defects

  4. Outstanding static analysis defects

  5. Incomplete, outdated, or missing documentation

It’s important to manage technical debt by keeping track of it for awareness and then scheduling time to pay down technical debt to keep it low. This page overviews how to manage technical debt.

Technical Debt Spreadsheet

The spreadsheet below is used to manage technical debt.

The following sections overview how to use the spreadsheet to effectively manage technical debt.

Add Technical Debt Task

Start with adding the task itself to the spreadsheet and providing a brief description of the task as shown in the image below.

1-TechnicalDebtTask.png

T-Shirt Size the Task

T-shirt size the value and effort of the task to help prioritize which technical debt tasks to work on next as shown in the image below.

2-TShirtSize.png

The spreadsheet will auto-calculate the combined score of the t-shirt size value and effort using the table below:

 

XL Effort

L Effort

M Effort

S Effort

XS Effort

XL Value

5

6

7

8

9

L Value

4

5

6

7

8

M Value

3

4

5

6

7

S Value

2

3

4

5

6

XS Value

1

2

3

4

5

The exact meaning of t-shirt effort is subjective, but generally, the following can be used effort cost:

  • XS - A day or less

  • S - 2-3 days

  • M - A week

  • L - 2-3 weeks

  • XL - A month or more

Add Context to Help Manage the Task

Add context to help manage the task among all of the other technical debt tasks as shown in the image below.

3-Context.png

A technical debt spreadsheet can quickly grow over time. Additional context fields help with managing technical debt tasks and evaluating which tasks to work on next. Following is a breakdown of each field:

  1. Category – 1-to-few-word categorization of the technical debt task, which is helpful for filtering tasks when evaluating which to address next. Examples include library, application, website, installation, etc.

  2. Type – 1-to-few-word indicator of the type of the technical debt task, which is helpful for filtering tasks when evaluating which to address next. Examples include maintainability, documentation, unit testing, architecture, etc.

  3. Date Added – Knowing when a technical debt task was added can provide helpful time context, especially as the spreadsheet is maintained for several years.

  4. Point of Contact – Indicating a point of contact is helpful to know who to ask for follow up questions if the description or notes do not provide enough information.

  5. Notes – Free form notes allows for documenting any important context and information that would aid in evaluating which tasks to work on next.

Pay Down Technical Debt

When a technical debt task is paid down, indicate in the spreadsheet when the task was completed as shown in the image below.

4-Complete.png

After entering the completion date, the spreadsheet is configured to automatically deemphasize the task.