![news post image](https://www.softwareimprovementgroup.com/wp-content/uploads/GreenIT_blog1_Header.jpg)
06 September 2024
Request your demo of the Sigrid® | Software Assurance Platform:
8 min read
Written by: Software Improvement Group
This article focuses on how IT leaders and executives of organizations that own and/or build their software, can gain if they become more aware of the Total Cost of Ownership (TCO) of their systems and how to reduce it significantly with Software Quality Management (SQM).
SQM best practices are fundamental in helping organizations to reduce their software TCO. This is accomplished with Software Quality Management by tackling tech debt, reducing unnecessary ‘Keeping the Lights On’ (KTLO) related activities and costs, improving software quality and security, and equipping IT leaders with the knowledge to make more efficient future decisions and investments.
Table of contents
Total Cost of Ownership (TCO) is a broad business term used to encompass the true cost of owning something—in other words, not just the initial budget or price tag, but all the associated hidden costs as well.
The term TCO can be used in a variety of business situations. For the sake of clarity, this article will only focus on its relation to software engineering and development for organizations that own the source code of their software systems.
When it comes to owning your custom software systems—whether you develop code in-house or use external vendors—the Total Cost of Ownership is often complex, with most costs hidden—like the base of an iceberg—below the water. These costs include maintenance, adding new features or capabilities, refactoring code, but also a myriad of opportunity costs.
Not knowing the TCO of your software systems could lead to you spending far more than you should, or failing to allocate budget to the projects that will help you drive success more quickly.
This is precisely where Software Quality Management (SQM) can be of value.
Software quality management (SQM) is an ongoing process dedicated to ensuring software meets its intended functions and is built correctly. It incorporates best practices in quality assurance, planning, and control, allowing for comprehensive evaluation of software throughout the Software Development Lifecycle (SDLC).
Much of software quality assurance focuses on what the software does, ensuring it functions correctly, is free of flaws, and provides a great user experience. While these functional requirements are important, they only address part of the overall quality, an often undervalued element of software evaluation are the non-functional requirements.
With the total cost of ownership (TCO) of software largely determined by build quality, internal quality is often undervalued. But did you know that 60% of all bugs come from having poor internal quality?
The true costs of software development are often overlooked
For many organizations, the TCO of source code is difficult to quantify. To begin with, there are many hidden costs. In addition, the idea that software continues to cost you once it has been developed is not always taken into consideration.
Generally speaking, software systems go through distinct life-cycle phases:
As you can see in the table taken from our 2023 benchmark report, growth and change rates in source code vary across these phases.
Depending on the size of your systems and the teams working on it, you can see that code is being added and changed throughout the life cycle of a system.
Rapid code growth and frequent changes characterize the initial development phase as a stable, feature-rich product is built. In the evolution phase, feedback-driven features and scalability improvements are often made leading to having to add and change more code. During maintenance, growth slows, while the focus on bug fixes and small updates increases. In many cases, the decommissioning phase and the end-of-life phase still require making some changes to the code.
You can probably already guess what this means for the TCO of your software. More changes and adding new code to a system means more work for developers.
However, to get a good understanding of the TCO of software development and begin establishing IT cost reduction strategies it’s important to look beyond FTEs and average code growth and changes.
Often, there is more to it. Let’s take a look.
Keeping The Lights On (KTLO) refers to basic systems and infrastructure maintenance. As this article only focuses on the TCO of software development specifically, we will only look at KTLO through that lens.
So, what is KTLO in the context of the software development lifecycle (SDL)?
Essentially, KTLO costs within the SDL are composed of the various ‘maintenance’ costs described above—everything from fixing bugs, to updating and changing code just to keep your systems operational, or in other words, your baseline spend of resources without making anything better.
To keep your software maintenance costs low, ‘maintainability’ becomes key. When we talk about Maintainability—a core metric of Software Quality Management— we mean the ease with which you can repair, improve, and understand the source code of your software.
At Software Improvement Group, we believe the measurement of maintainability, an aspect of software quality as defined by ISO/IEC 25010:2011, is a core element of software assurance.
Maintainability plays a major factor in keeping software-related costs low, and business agility high.
It may be somewhat shocking to learn that on average maintenance—or KTLO—costs tend to account for around 70% of your entire software TCO. Much of these costs—estimated at around 30% at least—are essentially wasted navigating technical debt.
Technical debt, also known as ‘tech debt’ or ‘code debt’, occurs when build quality is sacrificed in lieu of more speedy delivery and improved time-to-market.
It is worth noting the severity of technical debt faced by tech companies around the world today. CIOs estimate that between 20-40% of their enterprises’ entire tech budget is diverted to tackling technical debt. Quantified globally, the technical debt generated by old, low-quality code is estimated at a staggering $1.52 trillion.
Whether we like it or not, technical debt is a part of the technical landscape. The question shouldn’t be if you have it, but how you effectively manage it and how to prevent it from piling up.
At our recent IT leadership event, SCOPE 2024, Cor van Herk, IT director at Keylane, the leading European supplier of SaaS platforms to the insurance and pension industry spoke about technical debt and their strategy to effectively manage it throughout the SDL.
When looking at the TCO of software, you can view technical debt as the source of the surplus time and labor costs required to maintain poor code, as well as the source behind the financial and reputational risks of having to deal with potential vulnerabilities and security threats—all of which, can be avoided when prioritizing build quality from the outset; something which, you guessed it, Software Quality Management enables organizations to do.
But there is another element in the TCO of software that we cannot overlook: Opportunity costs.
Opportunity costs cover the various potential gains and losses of making one choice versus another.
In some cases, this is relatively easy to calculate.
For example: if a software system requires 10 FTEs to build and maintain, the cost for those FTEs reduces your capacity to work on other systems. Without having a clear overview of your software portfolio, it becomes easy to overlook opportunities that other systems hold, and can lead to missed value. But again, there is even more to it.
Security breaches are on the rise in a world increasingly dependent on ‘digital transformation’. Choosing not to include secure coding practices during the development stage or investing in more affordable but less reliable security measures to save money in the short-term, can lead to high-cost vulnerabilities in the long run.
The cost of data breaches is increasing annually due to emerging attack methods, vulnerabilities, and risks. IBM’s Cost of a Data Breach Report 2023 indicates that the average cost of a data breach in 2023 was USD $4.45 million.
When it comes to software building and development, the costs associated are –due to their complexity– often poorly understood or even overlooked entirely.
Yet TCO—as understood through the lens of Software Quality Management—can be a fundamental tool for financial decision-makers:
Having discussed the numerous factors that contribute to the total cost of software ownership, we’ll now take some time to explore the role software quality management plays in helping you to reduce these expenses.
At the most essential level, software quality management helps you to ensure that the source code your organization owns and the software it develops is maintainable and more secure.
By prioritizing quality and security and embedding these characteristics throughout the SDLC, Software Quality Management can minimize the technical debt incurred, optimize KTLO expenditure, and help you to make better decisions—in other words, SQM reduces your TCO.
Based on our data, here are a few statistical examples of the impact higher-quality software (optimized with SQM) can have on your Total Cost of Ownership:
Now that we know what affects the Software TCO and that focusing on having better build-quality of software has numerous benefits, let’s dive into some tangible steps your organization can take to begin reducing the TCO of your software.
First things first, it’s important to have a clear, and up-to-date overview of your current portfolio—the size of your systems, its architecture, and the different teams and technologies involved.
By having this overview, you can start to spot areas of excessive spending, high technical debt, and critical security risks,—all of which will need to be tackled if you are to reduce your software TCO.
Taking the costs of your portfolio outlined above, a Software Quality Management best practice would then be to compare these costs with your organizational priorities—i.e., your goals and KPIs.
Apportioning costs to various priorities will quickly highlight those that do not contribute to achieving your goals or add value to your business. These are the costs you can target for reduction or elimination.
Sometimes Software Quality Management is as simple as noticing where resources are being spent and redirecting them elsewhere. With the first two steps taken, as detailed above, you can start to funnel resources away from budget-eating systems and toward those with greater potential.
For example, SQM may help you to identify that 50% of your software development budget is in fact being spent on fixing bugs, navigating spaghetti architecture, and the like—in other words, on repaying your technical debt. This discovery makes it clear that you need to prioritize your software’s maintainability, rather than its turnaround time.
Identify spaghetti code architecture and poor-quality coding as areas of unnecessary cost, and then use SQM to improve the maintainability of these code sets to reduce TCO over time. In essence, invest in preventative measures to reduce and mitigate risks, from security risks to maintainability issues.
With key, profitable areas for investment identified and reprioritized, you can move on to improving the quality of your software using SQM. At each stage of the SDLC, SQM helps you and your development team to build software that can be quickly and easily maintained and fixed, now and in the future. SQM also encourages a highly secure level of coding so as to minimize the potential cybersecurity vulnerabilities in your software.
Over time, the quality-improvement measures of an SQM strategy will reduce your TCO, freeing up more and more resources for assignment to more profitable systems.
Software Quality Management also helps you reduce your TCO by keeping you on budget. Based upon your portfolio assessments and predictions—completed in previous steps—a quality management strategy can be used to track your progress toward a set of clearly defined goals, each intended to optimize your TCO.
Ensure the achievement of the above goals with SQM tools designed to iteratively assess your software for problem code, potential risks, and inefficiencies—enabling you to continuously improve the cost-effectiveness of your software and code base for as long as you need.
Reducing your Total Cost of Ownership after the first pass of an SQM strategy makes for a great start. You’ve identified areas of excessive KTLO spending, tech debt, and are better equipped to make decisions based on their potential opportunity cost. With software quality vastly improved, you’ve tackled many of these identified issues and freed up resources to be reinvested more profitably.
But Software Quality Management doesn’t stop there.
One of the key features of SQM is the iterative, continuous nature of the process. SQM practices can and should be applied ubiquitously throughout your every software development lifecycle. As software quality continues to improve, technical debt continues to decrease, as do KTLO and opportunity costs—optimizing the cost-effectiveness of your software and code base for as long as you need.
The total cost of owning and building software is often hidden from view—below the waterline, so to speak. As a result, organizations may often overlook the real price needed to develop and maintain a system—thus unprepared when the final ‘price tag’ of the software greatly exceeds the initial budget.
More debilitating is the mountain of technical debt and cybersecurity vulnerabilities which can build up when enterprises—hemorrhaging money with all those hidden costs—prioritize time-to-market over software quality. In time, this ‘opportunity cost’ only increases the organization’s TCO, as the source code grows more difficult to maintain.
Software Quality Management is a means of taking back control of your Total Cost of Ownership. The SQM best practices outlined in this article enable IT leaders to measure and monitor their portfolio carefully and consistently.
SQM helps organizations to identify areas of excess spending so that they may instead reinvest only in value-adding systems, and systems that ultimately help them reach their business goals.
At the core of Software Quality Management—made accessible and effective with software assurance platforms like Sigrid®—reduction of TCO is achieved by continuously improving the quality and security of your software, from source code to final product, and beyond.
Author:
We'll keep you posted on the latest news, events, and publications.