Book a Demo
search icon
illustration

Software Quality Management and reducing Software TCO

8 min read

Written by: Software Improvement Group

publication inner img
illustration

Summary

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 in a software quality management context

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.

An illustration of an iceberg with its visible tip above water and a larger, more complex structure below the surface. The submerged portion of the iceberg is depicted as composed of various screens, interfaces, and lines of code, symbolizing the hidden complexities of cybersecurity or data management. The above-water part is simple and serene, set against a backdrop of a calm sea and a clear sky with a few clouds, representing the visible and straightforward aspects of a system.

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.

What is software quality management (SQM)?

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).

Functional and non-functional requirements

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.

An infographic titled 'Software System' showing a comparison between 'External quality' and 'Internal quality' in software. On the left, under 'OUTSIDE-IN,' it explains external quality as 'Quality is defects in use,' focusing on functional suitability, correctness, and acceptance, which is the focus of most QA teams. On the right, under 'INSIDE-OUT,' it describes internal quality as 'Quality is software construction,' emphasizing that build quality drives the cost of ownership and external quality. In the center, overlapping circles represent 'Functionality' and 'Implementation,' linking both types of quality.

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?

Getting awareness before creating IT cost reduction strategies 

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.

Code growth and changes during the different software development life cycle phases

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.

A table showing yearly growth and yearly change metrics for different phases of software lifecycle: Initial Development, Evolution, Maintenance, and Decommissioning & End of life. The table is divided into two sections: 'Yearly Growth' and 'Yearly Change.' Each section has columns for Low, Median, and High values. Initial Development: Low (8%), Median (52%), High (215%) for growth; Low (29%), Median (168%), High (562%) for change. Evolution: Low (0%), Median (10%), High (33%) for growth; Low (10%), Median (47%), High (149%) for change. Maintenance: Low (-3%), Median (0%), High (8%) for growth; Low (3%), Median (15%), High (53%) for change. Decommissioning & End of life: Low (-1%), Median (0%), High (2%) for growth; Low (0%), Median (3%), High (16%) for change. The Median values are highlighted in blue.

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.

KTLO

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.

Maintenance: the hidden base of the iceberg

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.

What is 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

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.

A specific aspect with a very high opportunity cost is the security aspect.

An abstract digital illustration depicting a security breach. The central focus is a large padlock icon, cracked and highlighted in red, symbolizing the breach. Surrounding it are various digital elements, including lines of code, circuit patterns, and smaller padlock icons. The background features a complex network of interconnected nodes and circuits, some of which are highlighted in red to indicate vulnerability. In the foreground, warning symbols such as exclamation marks are flashing. The overall atmosphere is tense and chaotic, representing the urgency and danger of a cybersecurity breach.

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 a security breach

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.

The complexity of software TCO often affects IT cost reduction strategies

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:

  1. Having a fully costed TCO will help financial controllers to better understand where their organization’s money is being spent, as well as how cost cuts in the wrong places could negatively affect the quality of the software and its maintainability.
  2. TCO assessment as part of an SQM strategy can identify:
    1. Necessary hidden costs to better budget for.
    2. Unnecessary or excessive costs to reduce or eliminate.

The Role of Software Quality Management in reducing Total Cost of Ownership

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.

A person is working on a laptop, writing or reviewing code displayed on the screen. The coding environment features a dark theme with colorful syntax highlighting. The workspace includes additional monitors, one of which shows a scenic mountain landscape. Various office supplies and electronic devices are present on the desk, creating a professional and tech-savvy atmosphere. The scene suggests a software development or programming task.

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:

6 practical steps to reducing software TCO with Software Quality Management

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.

1) Identify the cost of your software portfolio

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.

2) Compare cost spending to your business priorities

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.

3) Prioritize systems based on their cost and importance

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.

A person working on a laptop, with their hand on the keyboard. The screen displays lines of code in a text editor, suggesting programming or coding activity. The background features a wooden table, creating a simple and focused workspace environment. The person is wearing a wristwatch, adding a personal touch to the scene.

4) Measure and improve code quality

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.

5) Set and track quality goals

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.

6) Achieve quality goals through continuous improvement

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.

A group of four people collaborating in front of a computer in a modern office setting. One person is seated, typing on the keyboard, while the other three stand closely behind, looking at the monitor. The scene suggests teamwork and focused problem-solving, likely involving programming or technical work. The office has large windows and a well-lit interior, contributing to a professional and collaborative atmosphere.

Conclusion

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:

Software Improvement Group

image of author
yellow dot illustration

Let’s keep in touch

We'll keep you posted on the latest news, events, and publications.