Tech debt to USD conversion
One cool thing that Ian Hickson added early on to the Flutter project was a Technical Debt Tracker. The idea is to scan the codebase for pieces of technical debt like TODOs, assign an approximate dollar cost to each, and present it in a graph like any other benchmark.
This kind of measurement, while obviously can’t be really accurate, can be useful both in explaining to leadership why we need to invest time in refactoring vs. building new features and also has a nice effect on making refactoring work more gratifying (“My PR saved XXXXX $ !”).
The full pricing model is specified in technical_debt__cost.dart, some breakdown below:
Tech debt item cost estimation in the Flutter Framework
- TODO — 2 days on average: ~1000$
- Ignoring a lint — 4 days on average: ~2000$
- A Python file in the code base:~3000$ 😂
- A skipped test — “ 20 hours: 5 to fix the issue we’re ignoring, 15 to fix the bugs we missed because the test was off”: ~2500$
Amusing and useful!