Back to Product Toolkit
Guide

The Hidden Cost of “Just Building It” and How Product Thinking Reduces It

Why jumping straight into development is expensive, and how structured product work moves costly discoveries to the cheapest stage.

There is a familiar pressure in many organizations: the process is painful, people are inventing workarounds, and someone finally says, “We should just build something.” Momentum feels good. A feature list appears. Developers start. Screens take shape. It looks like progress.

Then the real costs arrive later, in rework, delayed launches, frustrated users, and support load. The expensive part was not the coding. It was discovering too late that the team had built the wrong thing, or the right thing for the wrong problem.

The cost of being wrong rises at every gate

Software engineering has tracked this pattern for decades. Barry Boehm's work in the 1980s showed that fixing a problem after delivery could cost on the order of 100 times more than catching it during early requirements and design. IBM's Systems Sciences Institute data, widely cited since, put relative costs roughly like this: 1x in requirements, several times higher in design, higher still in coding, substantially higher in testing, and around 100x once the software is in production.

A NASA study examining error cost escalation found similar escalation. Treating a requirements error found during the requirements phase as a baseline of 1, the same error found in design cost 3–8 times as much, in build 7–16 times, in integration and test 21–78 times, and in operations anywhere from 29 times to more than 1,000 times in extreme cases.

Exact multipliers vary by project size, industry, and how tightly systems are coupled. Modern practices and tooling can reduce the cost of pure code changes. What does not disappear is the cost of discovering that the underlying problem, value, or scope was wrong. By the time real users are involved, you are paying for rework, support, process disruption, and often reputational damage.

In plain terms: an idea is cheapest when it is still an idea. Once developers are building against incomplete understanding, the meter is running. Once something is tested and integrated, changes ripple. Once customers or internal users depend on it, every correction is more expensive and more visible.

A familiar story

Consider a mid-sized operations team that has outgrown a collection of spreadsheets and an aging internal tool. Leadership decides it is time for a proper system. Requirements are gathered in a few meetings. A prioritized feature list is produced. Development begins.

Three months in, the first usable version goes to a pilot group. Users immediately point out missing edge cases, awkward workflows, and data the system does not handle. Several “must-have” features turn out to solve problems the team no longer has. Other painful daily work was never captured. Scope expands. Timelines slip. A second round of development starts while the first version is still being stabilized. Support tickets pile up. Trust in the project drops.

None of this is unusual. The team did not lack effort. They lacked shared clarity early enough, when changing direction was still cheap.

What should have happened instead

The same project could have started with a short period of structured product work before any significant build.

A Value Proposition Canvas would have forced the conversation about who the users are, what jobs they are trying to get done, where the real pains sit, and what gains would actually matter. A Jobs-to-be-Done and Gains/Pains matrix would have ranked those jobs instead of treating every request as equal. An App/System Discovery Brief would have captured the business goal, success metrics, constraints, and explicit out-of-scope items on a single page that stakeholders could review and correct.

That work is not glamorous. It feels slower than “just building it.” But it moves the expensive discoveries to the cheapest stage. Misunderstandings about value, users, and scope get surfaced when the cost of correction is still low. Priorities become visible. Some features that looked important get deferred or dropped. Others that were invisible become non-negotiable.

The result is not perfect requirements. It is fewer late surprises and less rework once developers, testers, and users are involved.

A better sequence

Treat the time before code as high-leverage risk reduction rather than overhead.

  1. 1Clarify the jobs, pains, and desired gains with the people who will actually use the system.
  2. 2Define what success looks like in concrete terms and what is deliberately out of scope for the first version.
  3. 3Capture the agreements in a lightweight brief or canvas that the group can see and challenge.
  4. 4Only then move into design and development, with explicit guardrails for how new requests will be evaluated.

Product thinking does not eliminate change. It makes the cost of change more visible and more manageable by catching the expensive kinds of mistakes while they are still inexpensive to fix.

Jumping straight into development creates the appearance of progress. Structured product work creates the conditions for progress that does not have to be paid for twice.

The templates in the Product Toolkit put this thinking to work in a single working session.

Next guide

A Simple Process for Scoping a Custom Business App That Actually Gets Used

Read article

Scoping or modernizing something right now?

Book a short discovery conversation and leave with a clear next step.