On Technical Debt
And similarities with a baby pacifier
Created on 20 March 2024.
So here's what's usually happening in a startup. The premise is that the founder or the product manager or "somebody" or a group of somebodies has a list of ideas for the product.
Those ideas are somewhat different from all the others that were initially -- when the product started. No, it is not a product pivot.
Maybe some potential customers asked about something that wasn't there so it was added to the list. Or some research showed that some competitors have something that the product doesn't. Another one to the list!
Anyway, the point is the list is big and they are different. How different? It's like watching the movie Dune or watching... Samurai Cop.
Technically, they are both movies. They both have actors and directors and screenplay etc but, you know...
Many of those different ideas also have different requirements. Technical ones. Sometimes, ideally, a different software architecture is required. Most of the time different database schemas would be best.
Unfortunately, nobody has the time or money for all of this. And it makes sense. At the end of the day, we are only talking about some ideas. Nothing is certain.
What happens is that instead of treating each idea as a separate experiment, many startups choose the hard way. Willingly or not. They patch things up. They get creative. And it's all fun and games until it isn't.
Do you know when it stops being fun? When that patch becomes permanent. Anytime something that was designed to be temporarily becomes deeply integrated in the product is bad. Hence, technical debt.
Mind you, this has nothing to do with the quality of the people involved in the development of the product.
There are plenty of situations where the poor quality of the engineering team creates more technical debt.
At this point, I should probably insert a GIF with: You get a debt, and you get some debt. But I like to keep my page mean and lean, so that's a no.
Now where does a baby and pacifier fit into this? Well, from what we know and see, nobody (young or adult) walks around with a pacifier in their mouth, right?
So from the very beginning we know that it's something temporarily (clue number one). Secondly, various kinds of doctors are not recommending it: some say that it affects the breastfeeding of the baby. Others say that it damages the shape of the mouth or their teeth.
If the baby is crying or is bored or whatever, and you have no idea what to do, giving the baby a pacifier seems very easy and convenient. Similar to slapping on a quick fix. Patching things up (clue number two).
Unlike my analogy with things becoming permanent, we as humans are forced to give up on the pacifier for our own sake.
But guess what? Convincing a baby to stop doing something they have been doing for months, maybe years, representing 80-90% of their entire life? Not that easy. Who would have known?
So what feels like a win, turns out to be a pain later on. That's the DEFINITION of technical debt!
What is there to be done?
- From a product perspective: Treat your ideas as experiments.
- From a technical perspective: Stop lying to yourselves that it's just temporarily. It never is. So stop over-engineering things and make your code easy to change. This provides enough flexibility so that changing your mind is not expensive.
And this becomes really important for a startup.
As you see, I'm wearing two different hats here. A product hat and a technical hat. Weird, huh? Not really. It turns out there's even a role for that: CPTO. Which stands for Chief Product and Technology Officer.
TL;DR: Read this short post https://www.linkedin.com/posts/vladiiancu_using-a-pacifier-leads-to-technical-debt-activity-7172848554275815424-kThw It even has a picture!
If you enjoyed this article and think others should read it, please share it on Bluesky or share on LinkedIn.