Questions about specifying software
How do I spec an app before hiring a developer?
Last updated
Write down the problem, who the app is for, what it must do and the rules it must follow, then have the people who actually do the work check it before any developer sees it. A good spec answers a developer's questions before they are asked, so the quotes you get are comparable and the build doesn't stall waiting on answers.
You don't need technical training to do this. You need the knowledge that is already in your business, written down in a form someone else can build from. Here is how to get there.
1. Start with the problem, not the features
Describe what goes wrong today, in plain words, and what should be true when the app exists. "Tools go missing from the tool room and nobody knows who had them last" is a better starting point than "we need a check-out app with barcode scanning." The problem keeps everyone honest about which features matter.
2. Name the people
List everyone who will use the app and what each of them needs to do: the technician checking out a tool, the manager reviewing who has what, the person in accounting who replaces lost equipment. Then name who decides when people disagree. Every project needs one person who can settle a question.
3. Walk through the work as it happens today
Follow one real case from start to finish and write down each step, including the exceptions. The exceptions are where most of the cost hides: the tool that is out for repair, the contractor who isn't in the system, the approval that happens by phone on weekends. The people who handle them every day often don't mention them unless asked.
4. Write each requirement as one testable sentence
"The app should be fast" can't be tested. "A technician can check out a tool in under 30 seconds" can. Give each requirement a number so it can be referred to later, and say how anyone would check that it works.
5. List the data and the systems it touches
What information does the app keep (tools, people, check-outs, locations)? What does it need from systems you already have, and what does it send back? A developer can't estimate an integration nobody mentioned.
6. Ask each expert separately, then compare
Operations, finance and the front line often describe the same process differently, and each is sure they are right. Ask each person about their part on their own, then compare the answers. Where they disagree, for example on who can approve what, take it to the person who decides and write down the decision and the reason.
7. Decide what is out of scope
A short list of what the first version will not do prevents most arguments later, and it makes quotes from different developers comparable.
8. Decide who will own it after it's built
Someone has to host the app, keep it secure, support its users, and one day retire it. Decide who before the build starts. An app nobody agreed to own becomes a problem quickly.
9. Get it signed off
Have the experts confirm the parts they supplied and the decision-maker approve the whole thing. Changes after sign-off are fine, as long as everyone can see what changed and why.
What should I hand the developer?
The approved document; the list of numbered requirements with how to test each one; the decisions and the reasons for them; the data and integrations list; what is out of scope; and who owns the app after launch. If the developer will use AI coding tools, a structured version of the same information helps those tools build from it directly. Ask every developer you talk to for a quote against the same spec.
What are the most common mistakes?
Specifying features instead of the problem; interviewing only the person who had the idea; skipping the exceptions; leaving disagreements between departments for the developer to discover; and leaving ownership of the finished app for later.
If you would rather not run this yourself, Mochlion runs the interviews and produces the specification; here is a sample of what you get.
More questions
- Can I use Mochlion for product design, or only business apps?
- Can my AI agents use Mochlion, and what can they do?
- Do I need a business analyst or product manager before hiring a developer?
- How do I avoid scope creep on a software project?
- How do I get my team to agree on what to build?
- How do I hand off an app idea to a developer?
- How do I know my developer built what I asked for?
- How do I replace legacy software without losing the business rules?
- How do I turn a spreadsheet process into an app?
- How do I write requirements an AI coding agent can follow?
- How does the free spec check work?
- How is my data and IP protected, and do you train AI on it?
- How is this different from a requirements template or an AI chat assistant?
- How much time do my experts need to give?
- Is vibe coding safe for business applications?
- What are acceptance criteria?
- What does a bad spec really cost?
- What does a software discovery phase cost?
- What exactly do I get with a Build Specification?
- What happens after I buy a credit?
- What if my needs change after handoff?
- What is a build specification?
- What should a software requirements document include?
- What's the difference between a PRD and a build specification?
- What's your refund policy?
- Which builders and AI coding tools can use the spec?
- Who is Mochlion for?
- Who owns the Build Specification?
See a finished specification
The sample is a complete Build Specification for a made-up company, free to read.