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:
Incomplete, outdated, or missing test frameworks
Workarounds or scope cuts resulting in less-than-ideal or unintuitive logic
Backlogged or otherwise outstanding defects
Outstanding static analysis defects
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.
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.
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.
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:
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.
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.
Date Added – Knowing when a technical debt task was added can provide helpful time context, especially as the spreadsheet is maintained for several years.
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.
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.
After entering the completion date, the spreadsheet is configured to automatically deemphasize the task.