Design and UX
A 100-page specification gives a sense of certainty, but it cannot test what matters most: whether people will understand the solution and be able to do their work with it. A software prototype exposes misunderstandings before code is built on top of them. The article explains the levels of fidelity, what a prototype must demonstrate, when a late change really is expensive and when a prototype is not needed.
A company spends several months preparing a specification. The document runs to more than a hundred pages, and sales, operations, finance and IT have all commented on it. Once the contract with the supplier is signed, months of development follow, and at the first demo someone says: “That is not what we meant.”
The scenario is illustrative, but the problem behind it is real. In the international NaPiRE survey, completed by 228 organisations from 10 countries, respondents selected the most critical problems they faced in requirements engineering. The problem cited most often was incomplete or hidden requirements (48% of respondents). Communication flaws between the team and the customer were cited by 41%, and of the top ten problems, this was the one respondents most often identified as a major cause of project failure.
An extensive specification creates a sense of certainty, but it cannot be used to test what really matters: whether people will understand the solution and be able to get their work done with it. A software prototype reveals this within a few days to a few weeks, while fixes are still cheap, rather than after months of development.
A signature confirms agreement with the text; it does not confirm that both parties understand the same thing by it. In his 1987 essay No Silver Bullet, Frederick P. Brooks Jr. wrote that the hardest part of building software is deciding precisely what to build, and that no other part is harder to put right later. He argued that it is in fact impossible for a client to specify the requirements of modern software fully, precisely and correctly before trying out several versions of it.
In our view, a thick document tends to mask this problem. Every additional page adds to the sense of completeness, yet each department mainly reads its own chapter, and nobody writes down what everyone takes for granted. The company gets its first feedback on something tangible only once code has been built on top of the misunderstanding. In the same essay, Brooks argued that software procurement at the time rested on a fundamentally flawed assumption: that a system can be satisfactorily specified in advance, put out to tender, built and installed.
A document can only be read, not used, so it cannot show whether everyone understands it in the same way. Take a sample requirement: “orders above the limit are approved by the manager”. The finance director pictures a morning overview for bulk approval, the warehouse manager a notification on their mobile, and the developer a status field in a table. All of these interpretations are consistent with the sentence, and each one implies a different amount of work and a different price.
Exceptions only come to light when the task is actually being carried out. Who approves when the manager is on holiday? Does the approval still apply once the quantity has changed?
A quarter of NaPiRE respondents also ranked among the most critical problems the fact that stakeholders struggle to separate requirements from solutions they already know. The UK government’s GOV.UK Service Manual advises that in the discovery phase, when the problem is explored before anything is built, a predetermined solution should be reframed as a problem: not “build an interactive map of contact centres” but “how can we make it easier for people to find their nearest centre”.
A prototype is a simplified version of a future product that lets you try out a solution before it is coded. Kara Pernice of Nielsen Norman Group describes it as a hypothesis: a candidate solution that is most directly tested by watching people work with it. It is not a minimum viable product (MVP), which Eric Ries describes as the version of a new product that brings a team the most validated learning about customers for the least effort. A prototype is a narrower tool: it tests a proposed solution before it is built.
According to Pernice, a prototype’s fidelity is the degree to which it resembles the final system in its interactivity, its visuals, and its content and commands. For decisions made before development, we distinguish three levels in practice:
Our rule for choosing: the lowest fidelity that can still answer the question at hand. According to Nielsen, testing early rather than late is such an advantage that it outweighs even differences in prototype quality. IDEO.org’s Design Kit allows anywhere from a few days to a few weeks for rapid prototyping, depending on what is being tested.
A prototype is a test, not a presentation. According to the GOV.UK Service Manual, you do not need to prototype the entire user journey; it is often enough to focus on the most challenging parts and test the riskiest assumptions. Before development starts, a prototype should answer these questions:
Usability testing means that a person from the target group works through a real task on the prototype, such as the sample task “raise a credit note against this invoice”, while you observe where they hesitate and what they misinterpret. A questionnaire captures what people think they would do. Observation shows what they actually do.
Jakob Nielsen works from a model in which a first study with five participants uncovers around 85% of usability problems, meaning the points where people get stuck or make mistakes. Instead of one study with 15 people, he recommends three rounds of five, because each subsequent round checks the fixes and uncovers deeper problems. This applies to comparable users: with two markedly different groups, he recommends three to four people from each.
The cost of change is what it costs to revise a decision at a given stage of a project. In a 2001 article, Barry Boehm and Victor Basili reported that a software problem found and fixed after delivery often costs 100 times more than one dealt with during the requirements and design phase. They included the word “often” deliberately: for small, non-critical systems, they put the ratio closer to 5:1. They also noted that projects at the time spent around 40 to 50% of their effort on avoidable rework, and named hastily specified requirements as one of its two main sources.
Yet the rise in cost over time is not universal. Across 171 projects, Tim Menzies and his co-authors found no evidence that resolving issues at a later stage took consistently or substantially more effort than resolving them shortly after they arose. The projects were predominantly small to medium-sized and used the Team Software Process methodology, and the data did not cover the period after delivery. The authors themselves point out that the effect may occur only in certain types of project.
In our view, it is not the calendar that makes a late change expensive, but everything that has been built on the flawed decision in the meantime: code, integrations, documentation, training and the data model. Kara Pernice points out that throwing away code is very expensive, whereas throwing away a prototype is not. Moreover, once the system is live, the company pays for an uncorrected misunderstanding every day in the form of friction in routine work. The article Good design is not decoration shows how to calculate that friction.
A prototype therefore pays off above all where the most would be built on a flawed decision: in projects with many users, several integrations and a long development cycle. Its scope and cost can be capped in advance; the cost of a mistake cannot.
When suppliers price a 100-page document, each of them is pricing its own interpretation and its own contingency for uncertainty. A cautious supplier inflates the price, a less cautious one pitches it too low, and the difference surfaces later in change requests: work outside the original agreement that is invoiced separately.
A clickable prototype with acceptance criteria changes the starting point. According to the GOV.UK Service Manual, acceptance criteria are a list of outcomes used as a checklist to confirm that a service has done its job and met the user’s need. They are often written in the form “it’s done when…”; for the Register to vote service, for example, one criterion is that the user knows how to register online. The prototype shows how things should work, the criteria define when the work is done, and suppliers are therefore all pricing the same thing.
The manual also advises reconsidering why you need a feature if you are struggling to articulate its goal. A feature that is never built costs nothing to develop or maintain.
A prototype reduces uncertainty. Where there is none, or where it can be reduced more cheaply, a prototype is an unnecessary cost.
According to GOV.UK, stopping a project at the end of the discovery phase is not a failure if the research shows that this is the best decision: it saves both time and money. So when deciding whether to build a prototype, look at where the greatest uncertainty in the project lies and how much a mistake would cost.
Free prototype
Describe your project and within days you hold a working prototype built on your real data. We build it at our own cost: the work should convince you, not a presentation.
No payment, no commitment. You pay once you decide to continue.
Free consultation
Pick a slot and tell us how your company works today. We'll show you the three places where you lose the most time, and which of them we can take over first. No slide decks, no commitment.

Juro
jur0.com
A website, an app, an AI system or automation. Describe what you are dealing with in two sentences and I will get back to you within 24 hours with a concrete proposal. We build anything that saves your company time.
Or directly: WhatsApp · juro@jur0.com