Nobody is sure how big a post-pandemic recession might be, but across virtual boardrooms, many are asking how their business can adapt at a rapid speed to address new customer, partner and employee needs. As businesses rush to do so, code debt can pile up in the name of necessity, but it would be a hasty mistake to kick this can down the road even in these uncertain times, especially when it can be avoided.
Technical debt is often the result of using quick fixes and patches rather than full-scale solutions. It is often seen as a necessary shortcut that enables engineering teams to finish updates sooner, but, just like financial liability, fixing it will cost more time and money later.
According to a study by Accenture, federal agencies have been able to unlock IT value and agility by remediating tech debt. In fact, Accenture also found that it is 2.5 times more expensive to manage applications that are ten years or older compared with new applications and solutions. This is a critical area to address as companies seek ways to get leaner.
So, how can IT strengthen the company during uncertain times by addressing this issue?
First: Assess it
You can’t understand the extent of the problem and craft a proper approach without knowing where you’re starting from. Gather a team, assess where you are, figure out your debt ratio, identify where it lives. Determine if there is a solid architectural base that has been thoroughly tested. A poor foundation makes for a flimsy base that is awkward to change and can trigger regressions.
Perhaps your CTO finds that your company can operate at 10 percent technical debt before the maintenance becomes too cumbersome. Having that insight will help guide your project managers and developers to hold the line. If you have any historical data to track the findings against, all the better, but if not, this is when you can start creating a floor, benchmarks, and a timeline to address all the existing legacy issues.
Second: Organize it
It’s time to get your master list or backlog ready so you can chip away at that debt. This can be as simple as creating epics of technical debt stories in Jira or other agile tools.
Create stories and include a need statement, the benefit, who requested it, story point estimates, and other descriptive information that your team would find helpful.
The development manager should own, organize, and monitor the debt backlog.
With each sprint or development iteration, determine any technical debt stories that can be addressed.
Third: Toss it
Overcoming years, even decades of underinvestment and constraints of older systems requires a serious discussion of whether it is worth repairing or if you should port the data to a new system. Sometimes you can pursue hybrid strategies. These hybrid digital decoupling or continuous modernization strategies allow enterprises and government agencies to transform themselves at a pace that they require and can sustain.
If possible, plan to incrementally address technical debt over time. However, there are times when you have to re-architect a system, so explore all of your options to assess the time and money necessary to tackle each opportunity.
While your developers should be able to address which option is best for the company, the next obstacle is educating the C-suite of the cost that comes from holding too much technical debt, short-term patches, and quality risks.
Fourth: Report it
Erasing tech debt can be expensive and time-consuming but the case for doing so should be communicated to the company leaders accounting for the expense, risks, staffing, time estimates, migration plans, opportunity costs, new opportunities, and continued development on the existing system. Right now might be the best opportunity to get the ear of your leaders and companies to scrutinize the cost of not streamlining technical processes. Many executives and board members are worried about how the current pandemic will impact the company and are asking internally for creative solutions and early red flags so they aren’t surprised later. Raise the red flag now.
While many recognize the cost to upgrade legacy systems, they fail to account for current inefficiencies, so here is how you can help break down the options to fully articulate the states of your code architecture:
What is the current cost of running on your system (including hours fixing, patching, and recovering from any downtime)? Include risks, planned projects, and impact on clients or customers.
What is the expense of building/repairing or replacing your system? Be sure to factor in the staffing, time estimates, migration plans, opportunity costs, new opportunities, and what is needed to implement a better procedure for code going forward so this doesn’t happen again.
What is the plan for upfront time to design the system well, while running what you are currently working with?
Look for opportunities to layer in new technologies such as low code frameworks that can reduce the complexity and expense of application development changes.
Fifth: Avoid it
In the process of clearing the tech debt balance sheet, it is critical to establish a path forward that will stop or at least alert you when your code needs to be addressed. The most productive way of tackling technical debt is to actively manage development decisions. Remember - it is a decision to take a shortcut which is then put into motion that creates debt.
Build a culture of doing things the right way the first time. Be transparent in the amount of time and other resources needed to complete a project by both the development lead as well as anyone expecting deliverables.
Avoid opportunities for creating code debt. Choosing to use modern low-code tools for developing applications going forward will help abstract away significant amounts of code to manage.
Resist shortcuts. These add on to a pile, and it is important to realize that taking on debt should not be taken lightly.
Send weekly/biweekly/monthly updates with a list of priorities and completed jobs along with the status of the backlog so that everyone is aware of what is still outstanding.
Discourage any prompts or one-off exceptions. This means holding other leaders accountable, even when they have their own deadlines to meet.
When you make well-thought-out architecture a priority and discuss the hidden costs of tech debt, your company has the opportunity to not only create realistic budgets but also improve user satisfaction. And conversations about the value of investing and maintaining code could unlock a well of new opportunities for leadership to give their technical team their due.
Now is the time to set your company up to be as nimble as possible. Having clean and clear procedures internally could give you the edge over your competitors in an uncertain market.
Mike Duensing is CTO at Skuid