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