Managing TDD consists of three activities according to Davide Falessi:
- Identify the TD items
- Estimating the economic consequences
- Analyzing differences between consequences
Davide states that the real challenge is #2, as we need to convince customers that time spent on resolving TD makes sense from a financial perspective.
Observations here are that not all TD has to be removed and that customers can actually be involved in and educated about TD concepts. Challenges are to make good estimations. Single values are inadequate: rather say at least 2 months or within 2 and 4 months than just 2 months.
Now, Davide presents his 10 requirements for tools that manage technical debt:
- Ability to manage principle, interest and time-to-market
- Translate decisions to economic consequences (for instance: is fixing on this bug now and shipping a week later cheaper than shipping with the bug?)
- Manage uncertainty
- Manage evolution
- Balance rigor and ease-of-use.
- Completeness and integration
- <<missing, I was too slow>>
- What if analysis of possible interpretations
- Sensitivity analysis
- Scenario analysis