2017-08-13

Walking away from technical debt

Tom Breur
13 August 2017
Technical debt is a tricky phenomenon, and often poorly understood. To begin with, many cases of “technical debt” imho are really showcases of sloppy engineering. A more politically correct way to phrase that would be to call it “flawed design.” Flaws might reveal themselves as insufficient future proofing, not adhering to coding or design standards, or in a myriad of other ways. Recognizing bad design is much like Justice Stewart’s take on Porn: “I know it when I see it.”
When you find yourself “caught” in a place where quality code, or software craftsmanship don’t seem to get the attention they deserve, you have a choice. There is a dramatic and irreversible choice of applying “the law of two legs” (move to greener pastures). But I would like to think there are always, always more options. Even if you struggle with the existing standards for (minimally acceptable) quality.
I firmly believe that rather than show dramatically higher standards of work, which will likely (falsely!) make you appear to go slower than your peers, there are options. One that I have grown partial to is my motto to “always try and leave the place a little better than you found it” (Boy Scouts motto, coined by Baden-Powell). Make refactoring a habit and an unspoken, implicit part of each and every estimate. My colleague Johanna Rothman once wrote about the difference between refactoring and redesign. I’m referring to refactoring, here.
Refactoring is one thing, redesign is something else. Extensive change (redesign) still and always needs to be raised as such. Working on that without the explicit permission and buy-in from your customer is stealing – you don’t “own” those resources, so don’t claim them. But in my opinion, refactoring should simply not be up for negotiation. Without refactoring, your work just isn’t finished. If you are lucky, people around you will notice your approach. Some may choose to adopt a similar approach. A journey of a thousand miles (like driving down technical debt) begins with a single step.


No comments:

Post a Comment