Applying marginal gains theory to tech debt

Marginal gains ⚙️

The 2020 Summer Olympic Games were held in Tokyo between 23 July and 8 August. The enduring motto of the Olympics is “Faster, Higher, Stronger”.

From 1908 to 2003 the British cycling team won only 1 gold medal at the Olympics. This changed when Sir Dave Brailsford became the head of British Cycling in 2002. During the ten-year span from 2007 to 2017, British cyclists won 178 world championships and 66 Olympic or Paralympic gold medals and captured 5 Tour de France victories in what is widely regarded as the most successful run in cycling history.

Sir Dave Brailsford credits this remarkable achievement to 3 pillars: 🏛

  1. Strategy - what it takes to win a specific event by analysing the best performers.
  2. Human performance - how to get the best out of each athlete.
  3. Continuous Improvement in all areas where cumulative improvements are as small as 1% aka. "marginal gains" can make a big difference in total.

Tech debt 💸

One organization defined it as the negative impact of technology on the business, particularly as manifested in rising operational and technology costs, slower time to market, and reduced flexibility

-- Mckinsey - Tech debt: Reclaiming tech equity (October 2020. Accessed June, 2021)

I find the idea of marginal gains a compelling way to understand tech debt. Marginal gains describe a solution for how we can make future successes more achievable by taking small steps today. And addressing tech debt is the small steps we can take to improve our software.

We end up with tech with good intentions because we prioritise tasks directly related to customer needs. Those tasks are easy to prioritise because we don’t want to disappoint our customers or colleagues. By only prioritising those tasks, we neglect to make improvements that make the next task easier. The end result is that doing work in the future takes more time and effort. We break our budgets eating out 🍕 because we don't have time to cook at home. 🍲

Mckinsey in Tech debt: Reclaiming tech equity outline 7 steps to address tech debt:

  1. Start with a shared definition of tech debt.
  2. Treat tech debt as a business issue, not a technology problem.
  3. Create transparency to value the debt position.
  4. Formalize the decision-making process.
  5. Dedicate resources to tackling tech debt.
  6. Avoid a big-bang approach to writing down all debt.
  7. Determine which areas are “bankrupt” and explore shifting them to a greenfield stack.

This will sound familiar if you already know about Continuous Improvement a.k.a. Kaizen. And it's interesting to see how a small idea made such a huge impact in competitive sports. It shows how small gains like improved build times, code refactoring, updated documentation and other small improvements add up.