Technical Debt is a difficult concept for people to understand, and I once came across a wonderful analogy and although I can’t remember who I heard the concept from, I would like to share with you all. I have taken the liberty of embellishing it somewhat.
Let us imagine we have identified a user need like this:
As a thirsty person in a house,
I want to make a cup of tea with milk
so that I benefit from the unique properties of the oriental infusion and feel sated.
So you are probably imagining what you need to do: go to the kitchen, fill the kettle and put it on, get the milk out of the fridge, get a mug, a tea bag, a teaspoon and add a sugar to the mug while the kettle is boiling. Add the milk (or if you’re that kind of person, wait until the end to add your milk, it’s up to you, it’s your cup of tea) then add the teabag and boiling water. Wait until a suitable time for you has passed and extract the tea bag, and dispose in of in the bin. Stir to equally distribute the sugar, then sit down and enjoy your tea. What could be simpler?
This is our Value Work – the work done to enable the value of making a cup of tea.
Hang on, didn’t I mention, you’re not going to your own kitchen, or to the kitchen of the “neatest kitchen in Surrey 2014” award winner. Oh, no.
This is a student house.
Inhabited by students.
Students who play rugby.
This kitchen is an absolute disgrace and would actually score below 0 in the Food Hygiene Rating scheme. No one has washed up in this kitchen since they moved in at the start of the year. There is nothing remotely edible kept in this kitchen, more that it is a collection area for used takeaway cartons and pizza boxes.
Now lets think about what you have to do to make your cup of tea. I’m guessing it now involves going to the shop to buy teabags, milk, sugar, a mug, and if you’re unlucky a kettle and some bottled water too. It might involve buying and using a lot of cleaning products before you get anywhere near finding the kettle much less turning it on.
This is your Failure Demand. This is work you have to do that has nothing to do with the value you are trying to release. This is work you shouldn’t have to do to make a cup of tea.
This is the technical debt problem. If you tidy up your kitchen (or codebase) as you go, then making tea is a simple thing and most of the effort you spend is in Value Work of making tea. If you don’t tidy as you go, the kitchen builds up in detritus and debris, and eventually even doing the simplest thing involves servicing a lot of Failure Demand – cleaning other rubbish out of the way to enable any value work to flow through the kitchen.
Whenever you are doing some knowledge work, I invite you to ask yourself, have I left the kitchen in a reasonable state behind me? Is it at the very least no worse than before I started. If not, what would your mum tell you to do about it? Go on, get back in that kitchen, you know what you need to do.