What Technical Debt Is And How It’s Measured

Daniel Okwufulueze
The Andela Way
Published in
7 min readFeb 20, 2019

Too busy for efficiency. This image has been modified by me. Source: https://pbs.twimg.com/media/DTvOdk9VMAAwBQ5.png

There’s this saying that there’s more than one way to crack an egg. This concept applies to software engineering too. In engineering a software system, there’ll be more than one way to do it. This poses a challenge: finding the best way.

The Dilemma

It would seem that the best and most efficient ways of building software systems aren’t usually the most obvious and intuitive. A look at the computational complexities of brute-force algorithms [mostly intuitive, straightforward, obvious, and easy] vs their advanced but efficient counterparts [not so obvious and intuitive] should show this.

It’s easier and feels quite natural to reason about very simple solutions than advanced ones. Add to this the need to deliver features fast, and an engineering team may find itself choosing a quick and easy way over a time-taking, advanced, but better approach that would save everyone unnecessary maintenance costs in the future.

Team Decides: Let’s Move On People, We’ll Revisit This Later

To decide to go the inefficient, fast and easy way, a team may reason that at some future point, work will be done to cater for this “little” inefficiency: “We just need to move fast at the moment” becomes the mantra on everyone’s lips. It’s soon discovered that the moment where everyone must move fast never goes away and that the only way to move at all times, is fast. Time to fix accumulated software issues will always appear to encroach on the time to build new features. The thinking will always be:

We could be building some really cool new features right now.

Another popular one is:

We’ll come back to this later when we have the time.

But as experience has taught some of us, the concept of Software Entropy will ensure this time never comes.

Software Entropy increases due to the tendency of software to become difficult and expensive to maintain as it gets modified over time.

Daniel Okwufulueze
The Andela Way

Lead Engineer at dunnhumby; Blockchain Enthusiast & Developer; Agnostic. For pastime, I read, write, swim, play musical instruments, and think.