Have you ever tried to get a simple feature added to your website, and figured it would be a piece of cake… only to have your web developer come back to you and say sorry, boss — that’s going to take a few weeks.
A few weeks? But can’t you just make a few tweaks? Add something in real quick? you ask, hopefully. Not on this site, your developer responds. Nothing is easy on this site. There’s too much technical debt.
Technical debt. Well, that doesn’t sound good, now, does it? I’ve got news for you — it’s not. But you’re in good company. Almost every site has dealt with technical debt.
Here’s what you can do about it, and how you can avoid it.
What even is technical debt?
The concept of “technical debt” is generally attributed to Ward Cunningham, one of the authors of the Agile Manifesto. He explains that some problems created during development are similar to running up a financial debt. Technical debt short-term fixes to get projects done quickly result in long-term project deficits, much as financial debt short-term money borrowing leads to accrued financial debt.
Why should I care about technical debt?
If you are a website manager, you’ll feel the pain of technical debt symptoms — even if you can’t put your finger directly on the cause. A major impact of accruing lots of technical debt is that tasks take a lot longer to complete, costing you time and money. The effort to maintain or improve a website with a bloated and overly complex codebase (where your technical debt is spawning from) is significantly higher than it is to maintain an organized one that follows best practices. And of course, continuing to work with technical debt introduces… you guessed it… even more debt.
Ultimately, when your website is overwhelmed with technical debt, you eventually reach a point where it’s nearly impossible to make any sort of progress forward.
What are the symptoms of technical debt?
Your website may be burdened with technical debt if you experience any of the following:
Making a change in one area causes things to break in other areas, even if areas seem unrelated
You repeatedly experience lots of issues using your site, particularly with one feature or area
Your developers repeatedly push back on making changes to certain parts of the site
Your developers complain that the backend of your website is difficult to read or understand
It takes forever to add new features
Why does technical debt happen?
Even the most skilled developers can fall victim to technical debt. It can start when whoever’s in charge of writing or maintaining code changes… and changes again…. and again. Alternatively, rushing to get work out, taking shortcuts, skimping on review or documentation, or choosing questionable solutions to problems are all small compromises that can pile up.
A lack of development standards and guides, or even inexperienced or outsourced developers, can also escalate problems — it’s like the wild west in your website’s backend at this point, with everyone doing their own thing. The next thing you know, you have a fairly complex and rather brittle codebase.
At this point, even the slightest change to the website causes a ripple effect of issues. Perhaps the project owner gets exasperated with all of the problems and hires a new team entirely; now nobody knows anything about the makeup of the website, or the thinking behind any of the work that’s been done. You’re now mired in debt.
How do I get OUT of technical debt?
In short, you need to pay back the debt, dedicating time to cleaning up messy work. Here’s how it works:
Accept there’s a problem and that it needs to be addressed. This can be a tough conversation to have, but just like with a financial debt situation, you can’t keep your head in the sand and hope things will just get better.
Know that there is no magic wand to fix the problem. You need to spend time and effort to resolve your technical debt. Creating quality code (or recreating it to make it quality) is a long-term investment, but something that pays off.
Do an assessment. Identify specific areas of the codebase that need attention. Think critically about every area of your site, and prioritize the biggest offenders.
Pay it down. Start allocating time to pay down the debt through good, quality development. Include time for debt reduction in every round of work. A good rule of thumb is to spend 10-20% of your time focusing on restructuring, reviewing, and testing each stage of development.
Don’t accrue new debt! Going forward, make sure your team spends time (and budget!) following best practices: reviewing code, testing regularly, documenting work that’s been done. Resist the urge to take short cuts or rush projects out the door - easier said than done, I know! - but weaving best practices into your timeline and budget will pay off in the long run.
Don’t know where to start?
If you’re reading this post and nodding your head at the symptoms of technical debt, but don’t know how to solve your website’s problems, Isovera can help! Sign up for an Isovera Site Audit, and start getting out of debt today.