What Homeownership Taught me about Technical Debt

In 2018, my husband and I embarked on buying our first home. We purchased an older home (built in the 1920’s as far as we know) and it was in pretty decent shape. We knew there were some cosmetic things that could be updated (we dreamed of adding a new kitchen and finishing the attic) and that we’d tackle them over time.

What we didn’t realize was the tremendous iceberg beneath the surface: the water line to the house was lead and needed to be replaced for health reasons because at the time, we were planning to start a family; the gutters needed to be fixed because the holes led to puddles that froze over and became ice skating rinks in unfortunate places (like our front door); the home had zero insulation and would need some blown in because otherwise we’d be paying for more natural gas than we really need. I could go on and on. You get the idea.

And you might be wondering, so what does this have to do with digital products?

It is very similar to the concept of “technical debt.”

If you’ve never heard the term, it essentially boils down to all the maintenance you (or those who came before you) deferred. Let’s say you needed to do a routine update on some piece of code your product depends on, but you decided to put that off because of something more important. At first, it’s not a big deal. But as that gets older and more out of date, it might start to break down. And then it all falls apart: there’s been a serious hack because you haven’t updated and now you must pay that debt (and then some!).

As members of a product team, you can’t forget about the infrastructure that keeps you safe and sound. So what do you do about technical debt?

The advice is actually, perhaps unsurprisingly, very similar to what you’d do with financial debt:

1. Assess where you are: in short, how deep in debt are you? What are the things you cannot afford because of this debt? Is the debt growing? You need to really dig into the objective facts and understand the bigger picture.

2. Figure out a debt-reduction strategy: in the past, I’ve led teams that were spending 60% of their time toward addressing technical debt and yet getting no closer to being out of the hole. Without a clear, aligned strategy it’s easy to just go through the motions without making a dent. Product teams should work together on a strategy that can help reduce the debt over time. That could start with process improvements to simply stop adding to the debt.

3. Beware of the “easy” fix: at some point someone is going to suggest going away for X many months to rebuild because that’s the only way out of the hole. Friends, this is akin to saying let’s burn the house down and rebuild. It’s not typically sustainable as, in keeping with the analogy, where are you going to live while that’s happening?

This is not to say that’s always the wrong choice but it’s one not to be taken lightly (read: needs to align with the strategy and be resourced correctly) as it comes with many risks: scope creep (while we are rebuilding the house, let’s add a pool!); functional reductions (we need to move back in 3 months from now and a bathroom will take 4 months to build so I guess we’ll need to go without a bathroom to start); and time/cost over-runs (I promise just a few more months of the team working day and night and that kitchen will be ready, too).