There's a saying we like to kick around the office, "always write code like the person maintaining it after you is a homicidal psychopath that knows where you live."
Basically, it means write clean code.
There are many reasons writing clean code is important, but Technical Debt is probably at the top of that list. While Technical Debt is a topic that is not widely known outside of the software development industry, it's one that can have far reaching effects.
What is Technical Debt?
Technical Debt is a term used to explain development work that is put off and then eventually has a negative effect on applications. It's small things that are wrong with an application, but not wrong enough to stop it from performing or from passing the Functional Requirements. (You might be wondering why these small things get put off in the first place, don't worry, we'll get to that.)
A great analogy for Technical Debt is to think of your kitchen and how slowly over time, it becomes dirty. The kitchen works, you can still cook in it, but the dirtier it gets, the more nasty the environment becomes.
How does Technical Debt occur?
Because we build 'custom' web applications, almost everything we do is new. There isn't anything wrong with how we've developed something, but inevitably a better way to do what we did comes along. It's the double-edged sword of technology.
Why is Technical Debt put off?
Simply put, resources; Technical Debt is usually pushed down the priority list because there is always something else that requires more immediate attention. And sometimes, it's not that Technical Debt is put off, it's simply too hard to keep up with.
Let's say you start with five items on a to-do list and those five are a high priority, by the time you've ticked everything off of the list, you've undoubtedly created new debt somewhere. It's like weeding your garden; you can weed all day but as soon as you turn around there's more weeds growing.
Why does Technical Debt matter?
Eventually, these small things will catch up and slow down operations, costing money and dragging down productivity. That's why we encourage clients to have a solid support and enhancement plan in place; it's imperative to the long term longevity of your application.
With support and enhancement, any unused hours on those contracts go towards the reduction of Technical Debt . For example, one of our clients has a platform that's scale demands continue to increase, but if we continued to increase the scale without chipping away at the debt, the application would not work as efficiently as it should. So now with their support and enhancement plan, we dedicate two to three weeks a year, solely on reducing their technical debt.
Think about that kitchen, the cleaner it is, the better it is to cook in.
Not only can we help determine what type of custom software is the right fit for your business, but also the best support and enhancement plan for your needs.