
The industry has decided what perfect software is. Software-as-a-service is dead; service-as-a-software is the future; the perfect system is the one you never operate, because the agent does the work (self-learning and self-correcting software agent). Billions in market value moved this year on that sentence. It has one missing word, and the word is fatal: perfect for whom?
Perfect is not a property a system can hold, any more than beauty is a property a face can hold — it is a verdict, and a verdict needs someone to pass it. The CFO calls cheap software perfect. The user calls it perfect when the clicks vanish. The engineer means maintainable; the security team means contained; the auditor means legible and repeatable. These are not the same system. They are barely on speaking terms. “Perfect software,” unqualified, is a sentence missing its object.
And even when you supply the object — perfect for the user, decided — the noun still fails, because the qualities we ask for fight each other. So perfect is impossible twice over: relative to the observer, and incoherent in itself.
Start, then, with the thing we already agree is near-perfect — a living one — and notice it is never simple. A single cell runs more concurrent processes than anything you have shipped, in the dark, without a status page. None of it is simple, and yet the word that fits a body moving easily through a hard day is not complicated. It is closer to “complete“. So distrust the engineer’s oldest wish: that perfection would arrive as simplicity. Nothing simple has ever been alive.
Take the first impossibility first. Simplicity, looked at squarely, is not in the system at all — it is in the meeting between the system and a mind. The cell looks complex to us; to a sufficiently larger intelligence, we might read as trivial — a few drives in a trench coat, fully predictable. The size of the verdict tracks the size of the observer. The same software that feels like air to the user is a swamp to the engineer; the dashboard that delights the buyer terrifies the auditor. Simple is an answer that depends entirely on who is being asked.
Now, the second impossibility is harder. Even fix the observer — build only for the user — and the dials still refuse to all turn up together. Intelligent software shows why most clearly. The least simple machinery we have built offers the simplest surface a person has touched: you just ask. But hiding complexity is not intelligence; a cell hides staggering complexity and reasons about nothing, a light switch hides a power grid and reasons about nothing. Concealment is mere design.
Now make it a smart switch — one you can flip from your phone, that notices the room is empty and turns itself off, that learns your evenings and warms the lamps before you ask. That is no longer concealment. That is reasoning, however modest, about a situation no one wrote down in advance. And the moment you grant it that, the other dials shudder. Simplicity falls — there is a hub now, an account, a firmware, an app that wants updating. Reliability falls — the dumb switch worked through three governments; the smart one needs the wifi up, the cloud reachable, and the certificate unexpired. Honesty falls — why it turned off at 9:47 is no longer something you can read from the wall. Security falls — a thing on a network is something that can be reached from that network. Affordability falls, plainly. You bought one quality and paid for it in four. Intelligence is the further, dearer thing — meeting what no one specified in advance — and it is paid for in complexity, the exact currency simplicity was trying to hoard. Raise one, the other falls.
This is the shape of every quality we want. Adaptability buys coverage and pays off in reliability; what keeps changing cannot promise the same answer twice. Push security and speed, simplicity, and a generous budget all retreat behind their checkpoints. Cheapness eats beauty first. There is no setting of the dials where every quality stands at maximum together, not because we lack the cleverness, but because the request is incoherent, the way the tallest and shortest in the room is incoherent.
Which exposes the wish hiding under all the others, the one printed as a row of prefixes: self-correcting, self-healing, self-monitoring, self-everything. A system that needs no one. Read it back: we are specifying an introvert — someone whose ideal is never having to ask. But nothing alive is built that way, and here two words part company that we usually treat as one. A thing can be whole — sealed, sufficient, needing nothing — or complete — made entire by what lies outside it. The body heals itself and keeps doctors. The mind corrects itself and keeps people who will say you are wrong. Strip those away on principle, and you do not get a master; you get someone bleeding quietly because help felt like weakness. Maturity is not self-sufficiency. It is good coupling — knowing what to keep inside the boundary and what to hand across it. The sealed machine that needs no one is not the summit of the design. It is its loneliest, most brittle form, and it fails the way isolated things fail: silently, all at once.
Which is the lesson everyone learns about people, usually the hard way. We are told to seek the perfect partner, as if such a person existed and the task were a search. Nobody marries perfect. You marry the right one — right for you, fitted to your particular angles the way nothing general ever could be. Nor do you marry someone already complete; you become complete together, by coupling two unfinished things, making what neither was alone. The completeness is not found. It is built, and never quite finished, and the not-finished is not the marriage’s failure. It is the marriage.
Software is this kind of object, and we keep mistaking it for the other kind. The most general system fits the most people slightly, and no one well, perfectly in the abstract, like a key cut for every lock, which is a flat blank that opens none. The right system is cut to its problem the way a marriage is cut to two specific people, and cannot be built for everyone because it was only ever going to be right for someone.
Which means the work does not end, and isn’t meant to. A right-fit system is not delivered; it is kept — the way a marriage is kept, or a body, or a house. Software makes this concrete because software is never finished: the world it lives in keeps moving, the people change, the load shifts. Tie your satisfaction to being done, and you have chosen a craft that will keep you quietly miserable, because done is not coming. The happiness lives in the fit and in the keeping of it — in the moment the tool seats into the problem and someone’s work goes quietly, permanently easier, and in the years of small adjustments that follow.
Perfect software, if you built it, would be a house no one lives in: a showroom, every surface optimised, none of it anyone’s. The right house has scuffed stairs, a window set exactly where the morning needed it, a door that sticks each monsoon and that you stopped noticing because you live there. You do not admire the right house. You inhabit it.
There is no perfect thing. The qualities will not stand in one room at once, and they answer to too many eyes. There is only the right thing, for someone, for now, chosen, built, and kept up, the way a marriage is kept up. The work of it never ends. That is not the work failing. That is the work.