Quality is not just the absence of defects
Over the years, people have often asked me the same question:
”What exactly is software quality?”
It's tempting to answer with a list of tools, frameworks, and metrics — but the truth is, those are only part of the story. Technologies will continue to evolve, making certain tasks seem easier. But software quality isn't defined by the latest automation tool or project dashboard. It's defined by how effectively a product meets its intended purpose, how efficiently the team works together, and how much unnecessary effort we avoid along the way.
Beyond Technology — A People-Centred Perspective.
Quality in software isn't just about code reviews or test coverage. It's about evaluation — constantly assessing whether we're delivering what is truly needed, in the right way.
This is where the concept of Muda, from Lean methodology, comes in. Muda refers to “waste,” and it's closely linked to Mura (unevenness) and Muri (overburden). In software development, Muda often takes these forms:
- Partially Done Work – Features half-built or never delivered to users.
- Extra Features – Functionality created but never used.
- Handoffs – Passing tasks between too many people instead of collaborating directly.
- Task Switching – Losing deep focus because of constant interruptions.
- Waiting – Delays that kill momentum and productivity.
- Relearning – Wasting time rediscovering information we should have captured earlier.
- Defects – Bugs that cost more and take longer to fix the longer they stay in the system.
The Quality Engineer's Role — Prevention Over Cure.
Preventing waste in software isn't the responsibility of one person — it's a team-wide commitment. But quality engineers play a unique role: they are both part of the team and slightly outside it. They see the big picture, connect the dots, and bridge the gap between technical and business needs.
An effective quality engineer doesn't just “test at the end” — they engage early, working closely with developers, analysts, and product owners to understand requirements and spot potential issues before they become expensive mistakes. This requires more than technical skills — it takes communication, collaboration, analytical thinking, and a strong sense of shared responsibility.
Why a Preventative Approach Wins.
In many organisations, upper management focuses on budgets, deadlines, and velocity. These are important, but without a preventative quality strategy, speed can turn into rework and budget savings can turn into hidden costs.
A bottom-up, preventative approach — where quality is baked into every step of the software development lifecycle (SDLC) — ensures that:
- Everyone understands the requirements and objectives.
- Potential waste is spotted early.
- Technical and business priorities stay in balance.
- The final product works as intended and delivers real value.
In the End, It's About People Working Together.
Great software quality doesn't happen because of one “magic” tool or a single talented engineer. It happens when the whole team takes ownership of quality, works towards a shared goal, and values both the process and the product.
As I've learned over the past two decades, software quality is less about chasing perfection and more about creating an environment where everyone can contribute effectively — without wasted effort, without silos, and without losing sight of why we're building the software in the first place.
Because in the end, quality is not just the absence of defects.
It's the presence of purpose, collaboration, and trust.
Cathy Meng
15 August 2025