Technical Debt

While I was in training last week they brought up a new term for me: Technical Debt. I love it and have probably already been annoying my coworkers with overuse of it. Of course, I’m overusing it because it turns out it applies to just about everything in this organization.

The idea behind it is simple: when you have to apply a band aid to an application to get it working properly in the short term, you’re incurring technical debt. They call it this because you’re going to have to pay it down later by actually, correctly, fixing the problem. It follows, then, that when a situations arises when a band aid seems like the best way to fix it, you have to stop to consider whether the proper course of action is to delve into it and solve it the right way.

At the time they didn’t make mention of the second piece of this, but it naturally occurred to me after seeing it crop up so frequently, which is paying the interest. Every time that band aid falls off and needs more maintenance, you’re spending time solving the band aid rather than fixing the problem. That is, you’re paying interest on your technical debt. We have a particular application here that’s loooong outdated and needs replacing. The operations team barely touches it, and when there’s a problem, they kick it back to the developer who helped create it. This means that he’s bogged down solving problems with it far more often than he’s doing developing.

The correct solution in this case is that it needs to be replaced in our environment. We have a project going right now to tackle it and finally pay down that technical debt: we would have done so before but the project has come up and been canceled multiple times in the past (which, as an aside, is really discouraging to see. The business is happy to let one employee spend all his time on a system that the whole organization is desperate to see replaced. Exceptional short sightedness of leadership there).

That one application is certainly our most extreme example, but it’s rife around here. One of the main applications I used to run has been upgraded a couple of times to new platforms, but carries a lot of the bad/old design and content with it. It’s very much in need of a widespread revision, and once again we finally have a project to do so, but this is another example. Every time someone finds an old, outdated link on the site, or a bad reference to another application that was shut down years ago, we have to grab the web content folks to update it and pay interest on that debt.

The flipside of this is the deep and disturbing revelation that I’ve latched onto a buzzword. Damn. At least this one is far more useful and meaningful than silly shit like “optics” and “optionality” and using leverage as a verb.