Tech debt (big enough to be a mountain) is one of the biggest obstacles in every environment I encounter. Generally this eyesore of tech debt is ignored much the same as the mythical (or not so mythical) junk drawer that can be found in many homes.
But what is tech debt? And the bigger question is why is there so much of this dung heap (tech debt) hanging around? How did there get to be so much of it? The answers may be very hard to swallow. If the answers are hard to swallow, then you have the same problem tech debt.
Has your tech debt taken on nicknames?
Before proceeding to how to resolve the steaming pile of tech debt that is mounding up on your front lawn, let’s examine a psychology related to tech debt that I have been frequently encountering. Truth be told, I actually get a good chuckle out of some of this psychology. Sometimes a hardy laugh is the easiest way to deal with the mound in the first place.
The psychology that I find interesting is the naming of the mound. Not quite to the same level as treating the tech debt as if it were sentient, but very close. This behavior is like giving the bogeyman (or Krampus) a real presence despite it being entirely mythical. Some of my favorite names are less noun and more adjective but they all connotate the same sentiments (laughter and fear).
My favorite name for tech debt is “Hairball”. A hairball is anything that is basically undesirable. Contrary to popular belief, a hairball is not normal. A hairball is an indicator of something being wrong.
If your cat is coughing up hairballs, then your cat has a health issue that needs to be treated. When you have a hairball in the workplace, then you have a major disfunction or distraction that needs to be treated.
If your tech debt is called a hairball, then you have multiple problems. Those problems being that there is disfunction somewhere and also that you know the tech debt is so bad that you have deemed it disgusting and you do not want to touch it if at all possible.
Yuck!
A more common nickname for tech debt
A nickname I have been hearing for well beyond a decade is spaghetti code. The use of spaghetti code is a long running joke – true. Sadly, people frequently make jokes about their tech debt because it is too painful to look at in any other light than with a joke.
If you are calling your tech debt “spaghetti code” you clearly have code that is so confusing, messy, and unmaintainable that you are avoiding it. It costs too much to try and fix anything related to the spaghetti code that it continues to be neglected – until a corporate initiative comes along to replace and overhaul everything. You and I both know that the corporate initiative doesn’t fix the real problem, it just masks it with a new product label.
My favorite nickname for tech debt
My favorite nickname for tech debt (aka legacy code – more on that later) is DIY code. Oh snap! Really? Yes indeed! There is nothing technically wrong with DIY except that usually it means DIW (Did It Wrong). DIY is a means of doing a project on the cheap. Often times, this also means that standards are missed and shortcuts are taken.
Often, the skipping of standards and taking of shortcuts means that there was a knowledge deficiency. Other times, it is just a blatant disregard. And of course, there is the cost of doing the project that frequently pushes decisions to be made to hire the wrong knowledge skillset (cheap labor) or to demand shortcuts be taken (project is taking too long to do it right).
No matter what the reason, there is no reasonable justification to do it wrong. If you take to the DIY model, please understand, there is no replacement for doing it right. Think about it this way, do you want to buy a house where unknown shortcuts were taken that lead to fire hazards? That is not worth the risk. In the same vein, do you want your doctor relying on bad code, where shortcuts were taken, that could help properly determine what is ailing you? Wrong diagnosis could lead to worsening health. Don’t DIY your code!
Legacy
No matter how you name it, “hairball”, “spaghetti code”, “tech debt” or “DIY code”, the result is the same – you are dealing with legacy code that nobody wants to update or maintain. Why? Because the code is piss-poor to awful and evokes day and night terrors. If you are curious, I have heard each of these terms from multiple clients just in the past month. The nicknames and problems are very real!
What is the solution to this problem? As we all know, ignoring the junk code only makes it bigger and more difficult to maintain. Let’s revisit the questions I laid out in the beginning.
What is tech debt?
What is tech debt? This has been answered as we discussed the nicknames. Tech debt is legacy code that is a nightmare to look at and undesirable to work on.
Why is there so much of this dung heap hanging around? There gets to be so much because of many factors. Many of those factors, imo, are laid out in the DIY section. It boils down to people deciding that they just need a minimally viable product to get to market. From there, there is never enough time to fix the crap code.
How did there get to be so much of it? Related to the previous question but this goes a bit deeper to the psychology. Some of it relates to lack of skills. Some of it relates to lack of desire to touch bad code. Maybe some of that fear is that the code is so rickety that touching it would result in serious system outages.
How do we fix it? Truth be told, better decisions need to be made in the beginning. This also goes to ensuring proper skills are in place with the staff responsible for writing the code. Don’t just go with the cheapest alternative on the market. Hire for skills. That will seriously help in reducing the atrocity of tech debt.
What about existing tech debt? You need to make it a corporate initiative to fix this code. Somebody needs to nibble at the code to reduce that debt. In addition, be the champion for your enterprise to make it better!
Put a bow on it
Hairballs and DIY code are an absolute eyesore. There is nothing good that comes from throwing out bad code – even if it is due to the executives demanding a quick to market product. Just because there is success in spite of bad code does not mean it is sustainable.
No environment is devoid of bad code. However, a culture that pushes for improvement and sustainability will continue to thrive. In addition, that environment will be easier to maintain. You must champion the removal of tech debt in your enterprise.
Interested in learning more deep technical information? Check these out!
Want to learn more about your indexes? Try this index maintenance article or this index size article.
This is the first article in the 2021 “12 Days of Christmas” series. For the full list of articles, please visit this page.
The post Tech Debt – Free Yourself from the Precipice first appeared on SQL RNNR.