The leaky boat — A different analogy for technical debt
By: Leiv Fredrik Berge
Tags: Technical Debt, Teamwork, Development, Team Collaboration, Team

I’ve come to realize that the analogy behind the term “technical debt” might be somewhat flawed. Technical people understand it, as we live and breathe with it every day, but for manager and other non-technical people I think we’re actually sending the wrong message. I think more companies than ever is a at point with their applications and services where the legacy is taking it’s toll. The way we’re able to manage that going forward can be make or break for a lot of applications, and making sure that the management actually understand this is key for us to even have a chance of dealing with this!

Therefore, lets spend some time delving on words. Debt is a familiar term to most of us, you can bough some now but you must repay it with interest. And the clever girls and guys with economics degrees have about a trillion ways of doing very clever stuff with debt, restructuring, trading, you name it. And that is part of the problem by using that term to describe our technical challenges, as we have very different tools to handle our particular kind of debt.

So let my try out a different analogy. Your application is a boat. And is probably not even a very good boat. Sorry, let’s face it. It’s an old, wooden rowboat or maybe a large, old, battle scared pirate ship. And it leaks, and there is quite a bit of rainwater accumulated. Even if you have a new shine boat, it will become weathered pretty fast when it’s outs on the high seas. What do you do? As the development team, do you keep rowing, adding new features, as the boat slowly fills with more water? Or do you start shoveling water out? Or maybe you start plugging the holes. Or you are probably doing a bit of both, rowing forward while your splashing your feet frantically trying to get rid of at least some of the excess water. What about the applications the development team doesn’t actively maintain, it’s out there and its doing its thing, but no one is really rowing it, or even making sure that there are no leaks or just the passing of time has filled it with rain water.

From a technical point of view the analogy might not be better, or it might not really be a point in making a better analogy, that is not the point. We already understand this. Technical dept is bad, unavoidable and must be dealt with in due time. But our managers and directors without a technical background know the concept debt, and that makes it harder for us to clearly communicate what it is and why we need to spend time, and thus money, on this.

Photo by Daniel Stenholm on Unsplash

Let’s take this further, maybe too far. You are a manager, you are responsible for a couple of development teams. And those teams are each responsible for, let’s say five leaky boats, or apps if you will. You as the manager points the direction you want your fleet of thirtyish boats to go, or what new features needs to be added. In order to accurately understand what your fleet is doing, you must know the state of it, and why some ships move much faster than others.

We can even include the water and weather in this analogy, humor me. Sometimes factors outside our control affects the state of our applications. A heavy shower, our perhaps a new breaking version of your framework of choice is released. And you application that was completely fine, no longer is that new and shiny. Or a storm can create rough sea that test the reliance of your boat and leaves it with some scars after, for example some new GDPR regulations could feel like quite a storm.

We can also add when an application is at a point where we decide, it’s time to start over. Often the development team is set to build the new boat, while still rowing the old one, so at first your trying to build a boat while on a boat. And at some point, hopefully the new boats is lowered into the water, and is dragged after the old boat for a while. Before the roles is reversed, the the new shiny boat is dragging along the old boat. I think its pretty easy to understand that this situation is not optimal and that it will take a while to get up to speed with the new boat, even if it is fast and new and shiny.

And yeah, the sea is production. The sea could be rough international waters, or a small little pond right behind your office complex. I did warn you that I’ve might have gone overboard on this analogy. Oh, and there is pirates (hackers), reefs or skerries (unknown and hidden pitfalls) and sharks (honestly I don’t know yet, leave a comment maybe we’ll figure it out together).