Understanding the Cost of Poor Digital Quality
In business, everybody likes quality. It’s the magic gold dust that keeps your customers satisfied and brings in new business. Warm smiles and smooth sailing. Not only that, it’s also the outward face of your company, a testament to the quality of what you are about. “We do high quality things around here” is a default mindset for business leaders: after all, if your organization has plenty of smart, well-educated people with impressive resumes solving problems, it’s natural to think this also applies to creating great digital products.
This quality mindset is a good thing to have, but has this assumption ever been actually verified in practice? How do you determine if you are actually competent or missing out on great digital quality? If so, what is the cost of bad quality on your business?
Defining quality
To address quality, we must first define what it means. Software quality is a tricky thing to grasp: just because your piece of software fulfills development requirements does not make it a good product (my colleague wrote a blog on this). Basically it all boils down to “providing value”, which still doesn’t say a lot.
The sad thing is, there is no single one-size-fits-all metric for software quality. Inevitably, “good quality” is case-dependent, and the riddle is solved by first asking the question “what aspects of this product are important?”. This is a design decision that is always made; whether it is your conscious decision or determined by someone else is up to you.
Another thing that separates software from physical products is its malleability: software quality continues to matter long after a product goes live. For example, how costly is it to maintain that software? Are there security vulnerabilities that need to be patched up? How dependent is maintenance on obscure knowledge? Right now, the finance industry is struggling massively with legacy software running on a scarcely used programming language that most of their developers don’t understand. These weren’t problems when the software was developed, but came back to haunt companies as technical debt grew unchecked for a few decades. How do you offer a great customer experience when you have that running under the hood?
To sum it up, focusing on quality means to think long-term about the process, not just about the product.
So, why should you care about top-notch quality?
Business leaders don’t invest in software unless it boosts revenue, productivity, or cuts costs. While these are the “whats” you get for software, quality is delivered in the “how”.
The impact of high digital quality
So, why should you care about top-notch digital quality? “How can I benefit?” you ask.
Business leaders don’t invest in software unless it boosts revenue, productivity, or cuts costs. While these are the “whats” you get for software, quality is delivered in the “how”. Whatever the promise of new software is, with it comes underlying expectations — these can be split to the external and internal, as in things that the users see, and things they don’t. For users, the software should be easy and intuitive to use with a guarantee it works consistently. These boost customer satisfaction, which ultimately leads to increased revenue streams.
Internally, you should contain the growth of software expenses. Here’s where things get interesting. From a process perspective, the current competitive paradigm in software development is to take digital products quickly to market. As developer time is expensive, the unit cost of a new feature is determined by how long it took to develop it.
Improving this metric is rarely just a technology or a tooling problem. Top organizations strive to make sure their developers spend most of their time doing stuff that matters. This means focusing on creating quality code and features that delight users, instead of fixing old problems. Speed must be counterbalanced with consideration of technical debt and cutting corners during development. High-quality software manifests itself in low overhead (and headaches) on maintenance, and enables your team to build more value-adding things on top of your tech stack. This is the golden goose that propels your business forward, as quality radiates outward from these processes.
On the flip side, the more people and teams you involve in development, the more expensive bad practices become. Common issues include mediocre speed and quality of developer throughput, and low morale due to excessive rework on old releases. Problems don’t go away even after more developers are brought along. Managers identify that “something is wrong, but it’s hard to say exactly what”. Even if your teams build things quickly, it will come back to bite you later if development is not done in a sustainable manner. Even Mark Zuckerberg, the person who famously coined “move fast and break things” at Facebook, eventually revised his approach into “move fast with stable infrastructure”.
Ownership of quality and how to lead it
Quality does not happen on its own, it is a product of intentional effort. Mediocrity is the inertia that organizations must resist to create valuable things.
The question of “who owns quality” is seldom explicitly answered; usually the underlying assumption is that it lies on the leader who owns the business or service. Even though this person may not know much about how to manage software quality, the cold truth is he/she ultimately bears that responsibility and needs to take action.
High quality is built during the whole software engineering process. There are no silver bullets like testing to resolve problems born out of poor planning or failure to consider the whole picture. Fortunately, quality-conscious leaders can make a difference: the bigger the scope of development, the more leverage there is to create an impact and empower people to move towards the right direction. Rest assured, there is a steering wheel for all this — but are you willing to use it?