Tech debt to USD conversion

Amir Hardon
1 min readOct 25, 2021
Pricing for tech debt items in the Flutter framework

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!

--

--

Amir Hardon

Ex-Googler. Helped build Flutter. I'm building a monorepo! Twitter: @AmirHardon.