In December 2022, during peak holiday season, Southwest Airlines, faced a nightmare scenario: More than 15,000 of its flights canceled, even after severe weather conditions passed. This stranded hundreds of thousands of passengers (maybe more), leaving them angry, isolated, and asking why. The answer, technical debt.
Technical debt is something we’ve discussed in the past. It refers to the cost incurred from myopic software development practices and/or failure to properly manage, maintain, upgrade and update an organization’s software systems over time. It can manifest in things like outdated software, software instability, increased system downtime, security vulnerabilities, bugs and/or inefficient processing. Southwest’s inability to prioritize software modernization has led them to canceled flights, angry customers, and a severely tarnished brand.
We’ve seen similar software meltdowns from Southwest with a smaller price tag of $75 million, serving as an unheeded warning. And Southwest isn’t alone. Only weeks after Southwest set things back on track, thousands more flights were cancelled due to FAA system outages. The NOTAM system failure resulted from a corrupted system file. Although the outage was correctly fairly quickly, it resulted in the cancelation of more than nine-thousand domestic flights.
Whether they lack resources, insufficient planning, or an over-reliance on short-term solutions, ultimately the reason doesn’t matter. The lesson we all should learn is clear. If Southwest Airlines wants to continue as a major player in the airline industry, maintaining modern technology systems is crucial for its operation. This applies to all airlines.
With the increasing demand for online booking, mobile check-in, and real-time flight tracking, keeping the technology systems up-to-date and running smoothly is a continuous process. But failure to maintain and modernize these applications only leads to issues with system downtime, delays, and inefficiency which can affect the customers’ experience and revenue for the company.
Managing technical debt is essential for any organization relying heavily on software. So why isn’t it a “no-brainer” to modernize? It can be a difficult task.
The Idea of Technical Debt
The concept of technical debt was first introduced by Ward Cunningham in 1992, as a metaphor to explain the trade-off between short-term and long-term goals in software development. Just like financial debt, technical debt can be managed and reduced over time, but if left unattended, it will grow and become a significant burden on the organization.
One of the main reasons debt accumulates is the pressure to deliver products or features to the market quickly. This leads to shortcuts in the development process, such as skimping on testing and documentation, which results in a higher likelihood of bugs and technical issues in the long run.
Managing Technical Debt
Like with Southwest, managing technical debt is essential for ensuring the smooth operation of an organization’s technology systems. There are several strategies that can be employed to reduce debt. These include:
- Define and set common standards: create and stick to a solid “Definition of Done”. This is a checklist that enables a team to say that a feature is shippable.
- Collaboration: Pair programming and peer reviews are both highly encouraged Agile methods of vetting the approaches, consistency, and elegance of code.
- Automate where possible: automated pipelines with quality checks are a reasonable base level proxy and a time saver to reduce the amount of naïve technical debt introduced into a product’s code base. Through smart automation, you will increase code consistency.
- Keeping your planned technical debt responsible: Having a clear plan in place for managing and reducing debt can help keep it under control. While tracking and monitoring the debt regularly ensures debt does not grow out of control.
As technology and customer needs change, companies need to invest in new systems, which can be costly, and might not bring immediate returns. This can put a strain on the budget and resources. However, not addressing technical debt can lead to bigger issues in the long run. Southwest is case and point.
Where to Go From Here
Technical debt is an inevitable aspect of software development that must be managed and reduced over time. It’s easy to point to Southwest as an example of how not to manage technical debt. A proactive approach to technical debt management can save an organization from costly delays, inefficiency, and even regulatory non-compliance. By using sound strategies, organizations can effectively manage their technical debt and maintain the smooth operation of business.
Talk to MercuryWorks to learn how to modernize your software today.