Book page Chapter 1: Great App. Bad Business.

Part I: The Product Isn't the Business

Chapter 1

Great App. Bad Business.

The Product Review

Imagine I hand you an application and ask you to review it as a technical product.

It is a specialized AI application for professional teams. The interface is clean without trying too hard to be clever. Authentication works. The application imports data from several common systems, normalizes it, runs an analysis, and produces a useful result in less than a minute. A task that would normally involve copying information between applications, cleaning up a spreadsheet, and assembling a report can be completed in a few clicks.

The architecture is sensible. The expensive model calls are cached where appropriate. Long-running work happens asynchronously instead of freezing the interface. Errors are captured and logged. Sensitive data is not being casually sprayed into services that have no business receiving it. There are reasonable controls around access, useful audit information, automated tests covering the important workflows, and enough observability that somebody has a chance of figuring out what happened when production eventually does something production-like.

The product feels finished.

Not finished in the absolute sense. Software is never finished in that sense. There is always another edge case hiding behind a perfectly reasonable user action. But finished enough that an experienced engineer can look at it without immediately assembling a rescue team.

The user experience is good too. The onboarding flow is short. The application does not begin the relationship by demanding nineteen fields of information and a blood oath. The main workflow is obvious. Results arrive quickly. The interface explains what happened without requiring the user to understand the architecture behind it.

There is even a polished pricing page and a working checkout.

If you showed me this application during a product review, I would have plenty to ask about. What happens when one of the upstream APIs becomes unavailable? How are model failures handled? What does authorization look like between accounts? How reliable is the output under unusual inputs? Can the expensive operations survive a sudden increase in usage? Are backups actually tested, or are we maintaining the traditional industry practice of discovering our backup strategy during the emergency?

Those are good questions. They are also questions about the product.

Suppose the answers are reassuring. The architecture holds up. The application performs well. Users can understand it. The important workflows work. There are no catastrophic security surprises waiting behind the login page. The product does what its builders claim it does.

Now I give you one more number. Revenue: $0. Nothing about the architecture changed when I told you that.

The latency is still good. The integrations still work. The interface did not become uglier. The model did not suddenly lose accuracy. The application is not less real because nobody has paid for it.

But your assessment of the opportunity probably changed. That is the distinction this entire chapter is about.

Technical people are trained to evaluate software by examining software. This is usually a useful habit. If I am reviewing an application, I want to know whether the underlying system is sound. I care whether the product actually solves the task it claims to solve. I care about reliability, usability, security, maintainability, performance, failure handling, and whether the features amount to a coherent product rather than fourteen interesting ideas sharing an authentication system.

A strong product review can tell us a great deal. It cannot tell us whether we have a good business.

That sounds almost insultingly obvious until you watch how often the two evaluations get blended together. A founder tells you the product is gaining traction and then explains that the new version is much faster. A team worries about monetization and responds by completing another integration. Revenue remains flat, but confidence rises because the application now has a better onboarding flow, more automation, improved AI output, and a dashboard that makes the lack of revenue considerably easier to visualize.

I understand the instinct because I have it.

Give me an uncertain technical problem and I immediately want to inspect the system. There is comfort in that. We can look at the code, trace the workflow, reproduce the failure, measure the latency, examine the logs, and decide what needs to change. Even when the problem is difficult, the investigation happens in territory where cause and effect can often be narrowed.

Commercial uncertainty invites a different kind of discomfort. The application can work exactly as designed and the answer can still be no.

Worse, the answer may not arrive as a clean no. Nobody files a ticket saying, “Your application is technically competent, but the economic consequence of my current workaround is insufficient to justify switching vendors at this time.” That would be extraordinarily helpful. I would enjoy markets much more if buyers produced structured error messages.

Instead, they visit. They leave. They delay. They say the product looks interesting. They tell you they need to think about it. They use something else. Sometimes they do nothing at all.

None of that makes the software worse. It means the product review has reached the edge of what it can tell us.

This is where builders can accidentally give technical quality a job it cannot perform. We ask the product to prove that somebody will buy it because the product is the evidence we have spent the most time creating. We know exactly how difficult it was to make the workflow reliable, how many approaches failed before the architecture settled, how much better the current version is than the embarrassing prototype we wisely stopped showing people.

All of that effort is real. The buyer does not owe us an economic response to it.

A beautifully engineered application solving a low-priority problem can struggle. A clever application aimed at people with no budget can struggle. A reliable application that buyers do not trust the company behind can struggle. A useful application that nobody knows how to discover can struggle. A product can remove genuine annoyance from someone’s life and still fail to remove an annoyance expensive enough to purchase.

You can inspect the code for weeks and never answer those questions.

So when I hear that an app is “great,” I want to know what kind of statement we are making.

If we mean the product is capable, elegant, useful, reliable, technically interesting, or pleasant to use, excellent. Those are meaningful accomplishments, and I do not want to diminish any of them.

But they belong to the product review. To decide whether we have a great business, we need a different review entirely.

The Business Review

Now review the same application again, but do not look at the code.

Do not inspect the architecture diagram. Ignore the latency numbers. Close the issue tracker. For the moment, I do not care how many tests pass, how clean the interface is, or how pleased the engineering team is with the latest release.

I want to know who pays.

Not who uses it. Not who says it is useful. Not who clicked through from a launch post and created an account. Who reaches the point where the value of having this application exceeds the value of keeping the money?

Then I want to know why that person would make the decision now.

What is happening in their work that makes the problem worth addressing this month rather than someday? What do they do without the product? Is that alternative expensive, slow, risky, irritating, or merely slightly less convenient? Does the problem have an owner? Is there a budget attached to it? Does solving it require someone else’s approval?

Those questions lead quickly into other uncomfortable territory.

How does the buyer discover the product? If I gave you the names of fifty people who should theoretically want it, could you credibly reach ten of them? If you reached them, would they recognize the problem in the language you use to describe it? Would they trust a company they have never heard of enough to connect data, change a workflow, install software, or hand over a credit card?

What exactly are they being asked to buy?

That question sounds almost comically basic, but software makes it easy to avoid. A builder can describe everything the application does and still leave a buyer uncertain about what purchasing it changes. “AI-powered workflow automation with advanced analytics and seamless integrations” may describe several months of engineering and almost no purchasing decision.

A business review asks for something less flattering and more useful. What result is the buyer paying for? How much does it cost? What happens before they experience value? How difficult is it to adopt?

What other products, people, spreadsheets, scripts, habits, or acts of resignation are competing with it? And after somebody finally pays, do they stay? The answers can make an excellent product look commercially fragile very quickly.

Consider the hypothetical application from the previous section. Suppose it really does save users time. During testing, people consistently complete a task in ten minutes that previously took forty-five. That is meaningful product evidence. The application works.

Now suppose the task occurs once every two months.

The average user saves thirty-five minutes six times a year. The problem is real. The solution is effective. The economic consequence may still be too small to support the business the founder imagined.

Or suppose the task happens every day, but the people experiencing the pain are junior employees at companies where purchasing new software requires approval from a manager, security review, procurement, and integration work from IT. The value could be substantial and still be difficult to capture.

Change one more variable. Suppose the daily task costs a professional services firm several billable hours each week, and a director can approve a modest software purchase without involving half the organization.

Same application. Very different business.

This is what I mean when I say commercial quality is contextual. The code has not changed between those scenarios. The value of the output has not necessarily changed. What changed is the environment surrounding the purchase.

That environment is the business.

Builders sometimes resist this because it feels less solid than evaluating software. There is no unit test for urgency. There is no linter that warns, TARGET_BUYER_HAS_NO_BUDGET. Your monitoring system will not alert you that the person praising your product is three levels removed from the person who can approve it.

Unfortunately, these details are no less real because they are inconvenient to instrument.

I have worked on technically sophisticated systems where everyone in the room could agree that the capability was impressive, useful, and worth continuing to explore. Then the commercial or organizational questions arrived. Who owns it? Who approves deployment? Who accepts the operational risk? What system does it replace? Who supports it when something goes wrong? What evidence does the organization need before trusting it in production?

The demo did not become worse when those questions appeared. The evaluation became more complete.

That is an important habit to develop around your own app. When someone asks whether the product is good, you can answer as a builder. When someone asks whether the business is good, you need permission to use a completely different set of evidence.

Revenue is one piece, obviously, but even revenue needs context. A business with one enthusiastic customer and no credible path to another customer is different from a business where five similar buyers have independently purchased through roughly the same process. A company collecting payments while spending more to acquire and support each customer than the customer is worth has demonstrated something important, but probably not what the founder hoped.

Commercial quality eventually includes acquisition, conversion, price, retention, support burden, delivery cost, and repeatability. We will get to those in detail later. For now, the important point is simply that they exist outside the product itself.

This is why I become wary of arguments that begin with how much work went into the application. “The AI took six months to get right.” “The integration was incredibly difficult.” “We built our own infrastructure.” “We have thirty-seven features.”

I believe all of it. None of it answers the business review.

Customers do not purchase engineering difficulty. In fact, when the engineering is especially good, the buyer may never know how difficult the product was to build. That is usually a sign that the engineering did its job.

The commercial question is what that engineering makes possible for somebody who has a reason and the authority to pay for it.

This can produce results that feel unfair from the builder’s side of the table. A technically ordinary product can become a strong business because it solves an expensive problem for reachable buyers who understand it, trust the seller, and have a straightforward way to purchase. Meanwhile, a far more elegant product can sit almost untouched because the problem is weak, the buyer is wrong, the offer is unclear, or the path to purchase is miserable.

Technical merit does not disappear in that comparison. It just loses its right to be the only judge. If I were reviewing your app as a product, I might ask for a repository, an architecture diagram, a staging environment, performance data, and a walkthrough. If I were reviewing it as a business, I would want a different folder. Show me the invoices.

Show me who paid them. Show me the prospects who seriously evaluated the product and what happened. Show me the price they encountered. Show me what they were doing before your application existed. Show me how they found you.

Show me which customers returned, expanded, canceled, or disappeared. Show me the reasons people gave for not proceeding, while remembering that what people say and what actually caused the decision are not always identical.

That material may be incomplete. Early on, it usually is. You may have no invoices yet. You may have only a handful of conversations. You may not know whether the problem is buyer, price, trust, timing, positioning, or something else.

That uncertainty is not a reason to substitute product evidence. It is the thing the business review is supposed to expose.

A good technical review tells you where the software is strong and where it needs work. A good commercial review should do the same for the system surrounding the purchase.

The dangerous situation is not having weak commercial evidence. The dangerous situation is having weak commercial evidence while believing the strength of the product has already answered the question.

Four Combinations

Once product quality and business quality are separated, four basic combinations appear.

The first is the one everybody wants: a strong product attached to a strong business. The product solves an important problem well. Buyers can find it, understand it, trust it, purchase it, and continue getting enough value to justify the relationship. Engineering and commercial performance reinforce each other. Product improvements help acquisition, conversion, expansion, or retention because they improve something buyers actually care about.

There is nothing especially mysterious about this quadrant. It is simply difficult to achieve.

The second combination is more interesting for our purposes: a strong product attached to a weak business.

This is the territory of Great App. Bad Business.

The software may be excellent. Users may genuinely like it. The technical implementation may be better than competing products. The founder may have solved a difficult problem elegantly and built something they are entirely justified in being proud of.

And the business can still be terrible.

Maybe hardly anyone pays. Maybe the founder cannot reliably reach the people most likely to buy. Maybe the problem is useful but not important enough to fund. Maybe the offer makes a valuable product sound optional. Maybe the buyer is being asked to assume more risk than the purchase justifies. Maybe customers will pay once but not stay.

At this point, I do not want to decide which explanation is correct. That comes later.

I only want to preserve the possibility that the product can be genuinely good while the business surrounding it is genuinely weak.

This sounds almost charitable, but it is actually a demanding distinction. If we allow the product to be good, we lose one of the easiest explanations for commercial failure.

We can no longer say, “People just need a better version.” Perhaps they do. But perhaps they do not. That uncertainty is where the useful work begins. There is a third combination that developers occasionally find offensive: a mediocre or weak product attached to a surprisingly effective business.

You have probably encountered one.

You try the market leader and think, This? This is the thing everyone buys?

The interface may be dated. The workflow requires three clicks where yours requires one. The product may lack features you consider obvious. The architecture may contain decisions that would create lively discussion during a code review.

And yet customers keep paying.

That can happen because buyers are evaluating more than technical elegance. The product may have been in the market for years. It may already be integrated into the customer’s workflow. Employees know how to use it. Managers know how to approve it. Procurement already recognizes the vendor. There are references, documentation, partners, support processes, and an account representative who answers the phone.

Replacing it with your technically superior product may require the buyer to spend political capital, retrain people, migrate data, explain the change internally, accept implementation risk, and bet that your company will still be around to answer an email next year. Suddenly the extra click does not seem quite as devastating.

A weak product can also be carried for a while by exceptional selling, brand recognition, aggressive promotion, contractual lock-in, or simple lack of alternatives. I would not recommend building a long-term strategy around disappointing customers more efficiently, but the combination exists.

Eventually product weakness tends to create consequences. Customers complain. Support costs rise. Competitors exploit the weakness. Renewals become harder. Reputation catches up. I am deliberately not going far into that here because keeping customers deserves its own treatment later.

For now, notice what this quadrant proves. The best product does not automatically win.

I dislike that sentence a little because I am a builder. I would prefer a market in which buyers received the source repositories, architecture diagrams, benchmark results, and a panel of respected engineers before selecting software.

That is not generally how purchasing works. The fourth combination is mercifully uncomplicated: weak product, weak business.

The software does not solve the problem particularly well, and the commercial system does not compensate for it. People do not buy, or they buy for reasons that do not last. There may still be useful technology inside it. There may still be an interesting idea. But as an operating business, very little is working yet.

This quadrant is often easier to confront because the evidence does not conflict much with the founder’s experience. The application is rough, the market response is weak, and everyone understands that substantial work remains.

The second quadrant is psychologically harder.

Strong product. Weak business.

That is the one where founders can remain stuck for a surprisingly long time because every product improvement provides evidence that something is getting better. And something is getting better. The problem is that it may not be the constraint.

This is why I would not describe a technically excellent app with no working commercial system as a failure in some universal sense. It may contain valuable intellectual property. It may be useful to its existing users. It may become the foundation of a good business after the buyer, offer, price, trust path, or distribution model changes.

But at the moment we are evaluating it, the distinction has to remain intact. A strong product is an asset. A strong business is a system that converts assets into durable economic value.

They can coexist. They often help each other.

They are not the same achievement.

And once you accept that, calling something a bad business stops sounding like an insult to the product. It becomes a description of what still has to be figured out.