Summary

Software quality has two halves. The visible half, features, reliability, user experience, is the one everyone talks about. The invisible half, scalability, security, maintainability, performance under load, is the one that silently kills companies, and it surfaces at the worst possible time: during scale-up, a fundraise, or an exit. Most failures are not about missing features. They are about the quality nobody could see until it was too late. AI makes this more urgent, because it is strong at the quality you can see and weakest at the quality you can't, while the volume of code rises and human review falls.

A friend of mine lost two years of his life and several million pounds of his own money on software that worked perfectly. The features were brilliant, genuinely ahead of anything AutoTrader had at the time. Then the users arrived, the traffic grew faster than the system could scale, and it fell over. The business never recovered. He will tell you himself: the architecture was wrong, and the launch was rushed, with no real load testing.

Here is the uncomfortable truth that story illustrates. There are two kinds of software quality. The kind you can see, and the kind you can't.

The kind you can see is the one everyone talks about: does it work, does it look good, is it a pleasure to use. The kind you can't see is the one that decides whether your company survives: does it stay up under load, does it resist attack, can it be changed without falling apart, will it still cope when you have ten times the users. The second kind is invisible right up until the moment it isn't, and that moment usually arrives at the worst possible time. During scale-up. During a fundraise. During an exit.

Three companies that learned it the hard way

My friend's car-trading site is the first. Visionary features, no competitor close, and none of it mattered once the user base outgrew the architecture.

The second: a major university website that went offline for most of a day during clearing, the single day in the year when it receives the flood of new applications. Estimates of the lost revenue run between £8 and £21 million. The site worked fine every other day of the year. It just couldn't take the one day that mattered.

The third one is mine. At my previous company, GeoVS, we lost our first sale of a £300,000 system because the back end of our distributed sensor platform could not perform under real conditions. That one hurt. We learned, re-architected, and the same platform now runs at national scale in several countries, monitoring critical infrastructure worth hundreds of billions of dollars, and it is known for never going down. There is a sting in the tail. Years later, when we sold GeoVS, one of the reasons the buyer went ahead was a testimonial from that very first client, the one who had refused us. They said it was the first and only system they had ever used that never crashed. We won them back. But the early failure cost us ground we never fully recovered, and a better exit.

None of these failures were about features. Every one of them was about the quality nobody could see until it was too late.

Why it keeps happening

So why does it keep happening? Because software quality means different things to different people, as Gerald Weinberg put it. The business side owns the visible quality: the features, the experience, the thing the customer is sold. The engineers own the invisible quality: the load tests, the security, the architecture that has to hold. And the two halves too often don't talk. Each assumes the other has it covered. Neither does.

I once worked with an engineer who told me, with a straight face, that users expect bugs. He was the reason we lost a first sale. That attitude, the quiet belief that the invisible quality is someone else's problem, is more expensive than any feature you will ever cut.

The fix is not complicated, but it takes intent. Treat the invisible quality as a first-class business concern, not an engineering detail. Load test before launch, not after the outage. Make security and scalability someone's explicit responsibility, with a name attached. And get the two halves of the team in the same room early, because business requirements are better when they are technically honest, and architecture is better when it understands what the business is actually betting on.

Why this is suddenly more urgent

AI now writes a large share of the code in many companies, and it is very good at the quality you can see. It produces working features, clean-looking functions, plausible output, fast. What it is weakest at is exactly the quality you can't see: the architecture that holds under load, the security that assumes someone hostile is on the other end, the maintainability that a human will have to live with in two years.

The volume of code is going up, and the share of it that any human has truly examined is going down. That is why the percentage of AI-generated code is a vanity metric: it counts the quality you can see and tells you nothing about the quality that kills you. The invisible quality has never been easier to neglect, or more dangerous to ignore.

Tom DeMarco offered the definition of quality I keep coming back to: a product's quality is a function of how much it changes the world for the better. A clumsy product nobody trusts, or one that falls over on the day that matters, never gets the chance. The visible quality earns you the user. The invisible quality is what lets you keep them.


If you are scaling, raising, or heading toward an exit and you are not sure how much invisible quality your product is carrying, that is exactly the thing worth checking before someone else checks it for you. Let's talk.

Related: 75% of Google's new code is AI-generated. So what? · You're not a 10x engineer. You're an orchestrator · How to unlock AI ROI: what the 20% do differently

Frequently asked questions

What is software quality?
More than whether the software works. It has a visible dimension (features, reliability, user experience) and an invisible one (scalability, security, maintainability, performance under load). As Gerald Weinberg put it, quality means different things to different people, which is why teams so often cover only half of it.
Why do startups fail from poor software quality?
Usually not from missing features but from the invisible quality: a system that cannot scale when the user base grows, cannot be secured, or cannot be changed without breaking. These failures surface at the worst possible time, during scale-up, a fundraise, or an exit.
What is the difference between functional and non-functional quality?
Functional quality is whether the software does what it should and is pleasant to use. Non-functional quality is whether it stays available under load, resists attack, performs fast, and can be maintained and extended over time. The non-functional side is the one that silently kills companies.
Does AI-generated code have a quality problem?
AI is strong at the quality you can see: working features and clean-looking code, produced fast. It is weakest at the quality you can't see: architecture that holds under load, security, and long-term maintainability. As the volume of AI-written code rises and human review falls, the invisible quality is easier to neglect.
How do you manage software quality as a non-technical leader?
Treat invisible quality as a business concern, not an engineering detail. Load test before launch, give security and scalability a named owner, and get business and engineering in the same room early, so requirements are technically honest and architecture understands the business bet.
Stay ahead

AI & tech are moving fast.
Get the signal, not the noise

Ready to make AI actually work?

Tell me what you're working on. I'll respond personally. If there's a fit, we'll take it from there.

Accepting one new client · second slot opens Q3 2026