Decision guide
If you are searching for a software discovery workshop, or for how an agency should write a requirements specification, you are typically in one place: a pile of wishes, a deadline that is already too tight, and a vendor asking for "scope" before they will bid. Someone suggests a workshop. Someone sends a forty-page document. Neither is the work by itself.
We run discovery before we build — especially on an MVP. Not as theatre, and not as a week where everyone talks and nobody decides. An honest week produces what a classic spec rarely can: what is out, who owns the open questions, and what you can show in ten days. Without that the agency guesses, and you pay for the guess later.
TL;DR
The main takeaways
- A requirements specification is an input. It is not a scope you can estimate or contract against until the open decisions are closed.
- An honest discovery week produces screens, interfaces, the out-list and the three risks you must not ignore — not a slide deck.
- The right people in the room beat the right sticky notes. If the decision-maker first arrives on Friday, you held a meeting, not a week.
- Five days is enough if you cut. It is too short if you try to design the whole product.
- An agency that cannot say no in discovery cannot say no in sprint 3 either — and that is where projects drown.
- The output must be hand-overable: you should be able to take it to another team. Otherwise you bought dependency, not clarity.
Why this matters at all
Most software projects that slip do not slip because someone coded slowly. They slip because you started with a list everyone nodded at, and which meant three different products. A forty-page specification can still be that list — just with more words. "The system shall support invoicing" is not a requirement. It is a category. Until you have decided who invoices whom, what happens on failure, and whether it is Stripe, an ERP or a PDF, nobody can honestly say what should be built.
That is why serious agencies ask for discovery before build. It is not a sales trick, and it is not the same as "getting to know you". It is forcing the expensive assumptions into the open while they are still cheap. A week with the right people costs time. A quarter's delay because checkout and roles were never talked through costs a project.
This is also what you need to tell apart when you choose a partner. An agency that promises to start Monday without having seen your data, your users or your "must not happen", is selling you a guess. An agency that will spend five days cutting, and that leaves with something you can say no to, is selling you a scope. The two proposals can look the same on a slide. They are not.
We write this because you should not confuse workshop facilitation with a product. Sticky notes on a whiteboard are a tool. The decision that v1 has no native apps, that admin is one screen, and that you will live with a weekly CSV until the integration is worth building — that is the product of the week.
What a classic requirements spec typically fails at
The classic specification is written to be complete. That is its first failure. Complete means everything is mentioned, so nobody can blame the author for a gap. Estimable means the opposite: what is in is concrete enough to build, and what is out is written down. A complete list is a catalogue. A scope is a cut.
The second failure is that it describes the system as if it already exists. "The user can export to Excel." Which user? Which columns? What happens with 40,000 rows? May the export take two minutes? Should it run overnight? Without those answers the sentence is true and useless at the same time. One developer will fill the holes. Two developers will fill them differently.
The third failure is mixing wishes, policy and edge cases in the same chapter. "Must comply with GDPR" next to "must have a dark theme" next to "must handle bankruptcy estates." The first is a constraint. The second is polish. The third is a domain you may not need to build in v1 at all. When everything sits as shall-statements, you cannot cut. Then reality cuts for you — mid-sprint.
We also see specs written by someone who will not use the system, and approved by someone who will not build it. That is a document, not a conversation. The discovery week is that conversation, with an output you can point at next Monday.
What an honest week actually produces
We do not measure a discovery week on whether everyone left inspired. We measure it on four things you can take out of the room. First: an out-list. Things you said no to, with a sentence about why. Without that list the wishes come back in week three as "that was implicit." Second: the two or three flows a person must be able to complete in v1 — not as user stories in a tool, but as screens and states you drew together.
Third: the interfaces. What comes in from outside (ERP, payments, login, a spreadsheet), what goes out, and what you temporarily do by hand. A CSV every Friday is an honest v1 cut. A "full integration" you have not seen data from is a hope. Fourth: the three risks you must not ignore — data you do not own, a decision that sits with someone who was not in the room, a compliance assumption you have not checked.
That is also what you should demand to have delivered: not a thirty-page inception deck, but something another team can build from. Wireframes or HTML sketches. A list of open questions with an owner and a date. A proposal for the first iteration — typically 1–2 weeks — with a demo you can say no to. If the output only lives in the facilitator's head, you bought a week, not a clarification.
On a Next.js MVP that often means: which roles, which login, which lists and details, and whether you even need a public site in the same repo. On a customer portal: who invites whom, and what happens when a contract expires. On a marketing site: which pages are in, and which campaigns wait. The shape is the same. The content is yours.
Spec PDF versus a week you can build from
What teams typically send
What looks complete and still cannot be estimated.
- Shall-statements without screens, states or an out-list
- Wishes, policy and edge cases in the same chapter
- Approved by someone who will not use or build it
- A bid that is a guess because the holes are invisible
What an honest week leaves behind
What another team can pick up Monday morning.
- Three flows drawn as screens — and an out-list with reasons
- Interfaces: what is a real integration, and what is a CSV
- Open questions with a name and a date, not "to be decided later"
- A proposal for the first iteration you can say no to
Five days — an honest sequence
The sequence is what keeps the week short. If you start with UI colours on Monday, you are behind on Wednesday.
- 01
Monday: the problem and what must not happen
Not features. Who is in pain, what waiting costs, and the scenario you would rather avoid than miss a field. Write the three sentences down. If you cannot, you are not ready to cut on Wednesday.
- 02
Tuesday: users, roles and the real flows
Who logs in. Who may see what. Which two or three jobs v1 must do. Draw them. A persona slide is not a flow. A flow has a start, a decision and a state afterwards.
- 03
Wednesday: cut. Read the out-list out loud
This is the most important day. Native apps, the other market, the clever engine, the full ERP integration — most of it waits. If you have not said no to something on Wednesday, you have not discovered. You have collected.
- 04
Thursday: interfaces, data and the first iteration
Which systems you touch, which you leave, and what the first 1–2 weeks of build will show. Preview deploys and a demo on real screens beat an estimate in a spreadsheet. You should be able to see whether you said yes to the right thing.
- 05
Friday: decisions, open questions and exit
Close what you can close. Give the rest an owner. Pack the output so another team can continue — including without us. If Friday is the first day the decision-maker is in the room, you spent four days preparing a meeting.
“Discovery is not a week where everyone talks. It is a week where someone says no — and writes it down.”
Who should be in the room — and who should not
You need the person who can say no to a market, an integration or a date. Without that person the week is an interview. You need the person who knows the real users — not the one who knows an org chart. And you need the person who knows the data: where customers actually live, what is a mess in Excel, what the ERP cannot do. Three to five people. Not twelve.
You do not need the whole leadership as an audience. You do not need the vendor who is only there to defend the existing system, unless you have explicitly asked them to map interfaces. And you do not need a design team that only arrives once "scope is locked" — because then they design a different product from the one you cut.
The facilitator — us or you — must be able to stop a conversation that has become a feature wish-list, and pull it back to the flow. An agency that can only run a Miro board, but cannot challenge a shall-statement, is a meeting host. That is a different job from discovery.
If the real decision-maker can only give two hours, put those two hours on Wednesday and Friday. Not Monday. Monday you can prepare. Wednesday someone has to cut. Friday someone has to approve the out-list. Anything else is calendar optimisation that kills the week.
What you should typically do in the situation you are in
The left is what you typically say. The right is the next step we typically recommend.
Situation
You already have a forty-page spec and "just want a bid"
Next step
Extract the three flows and the out-list in two days. Bid after that — or admit the spec is still a catalogue
Situation
The decision-maker can only do Friday
Next step
Move the week, or make Friday the cut day. Four days without a no is an interview
Situation
You agree on everything and want to skip discovery
Next step
Write the out-list anyway. If you cannot, you were not aligned — you had not talked about the same thing
Situation
Two vendors bid on the same spec with wildly different numbers
Next step
The spec is unclear, not the market. A week beats three rounds of "can you clarify item 14"
Situation
You want a fixed price on something you have not drawn
Next step
Buy a week that draws it. A fixed price on a catalogue is a guess you will both regret
Checklist before you call the week done
If you are missing several of these, you held a workshop. You have not discovered.
- There is an out-list with reasons — not only a backlog that grew
- v1 is two or three flows as screens, not a chapter in a document
- Every open interface has a temporary cut (CSV, manual, "we do not touch it")
- Open questions have a name and a date. "To be decided later" does not count
- The decision-maker said no to something concrete in the room
- Another team can start Monday without calling the facilitator's memory
Questions we get again and again
Can we just send a requirements spec and get a fixed bid?
You can send it. You will get a bid on what the agency thinks you meant. If the spec has no screens, out-list or interfaces, the bid is a guess with a buffer. Some will take the guess. We would rather spend five days making it estimable. That is faster than three rounds of "item 14 was implicit". A fixed price on a catalogue is not safety. It is a conflict you have postponed.
How long does real discovery take — are five days enough?
Five days is enough to cut an MVP or a bounded site if the decision-maker is in the room, and you are not trying to design the whole platform. It is too short to map a legacy landscape you have never opened. Then we start with a week that finds the three risks, and plan the next one on purpose. Discovery that "just needs three more weeks" without an out-list has become analysis. Stop and cut.
What if we already picked an agency and just want them to start?
Then run the week with them. The spec you sent in the RFP is still only a catalogue until you have drawn v1. A team that refuses to cut because "it was in appendix 3" will build appendix 3. That is rarely what you need in three months. If they cannot say no now, they cannot say no when a stakeholder arrives in sprint 4.
Should designers and developers be there the whole week?
Yes to the person who will draw the screens, and yes to the person who can see whether an interface is real or a hope. No to a whole production team as an audience. Three to five people who can decide beat twelve who can comment. Design that only arrives "once scope is locked" designs a different product. Engineering that only arrives "once design is approved" discovers the impossible interfaces too late.
What do we leave with that another agency could also use?
The screens, the out-list, the interfaces, the open questions with owners, and the proposal for the first iteration. Not an inception deck about your values. If the output only makes sense if we are in the room, we failed. You should be able to take it to another team, to your own, or to a pause. That is also the test we use ourselves: can a developer who was not there on Monday start on Wednesday?
If you have a catalogue and need a scope
Let us run five days that end in a no you can build on.
An honest week with an out-list, screens and a first iteration beats three rounds of bids on a PDF you both know is unclear.
