Skip to content
Resources

Working with developers

How to Brief a Developer: A Non-Technical Owner's Guide to Getting a Straight Scope

"I thought that was included" is the most expensive phrase in software. It almost always comes from a brief that described what the system should look like, not what it needs to do — which is how anyone would write one the first time, because nobody hands you a template. A vague brief forces interpretive calls that can cost you half the budget. Here is what goes in one that does not.

9 min read · Updated June 2026 · By Anthony Garces — 17+ yrs in IT, principal-level architect

A carefully built wooden staircase rising to a blank wall, with two spare timbers left on the floor.
Built exactly as described. Described exactly wrong.

Start with outcomes, not features

There is a natural way to write a brief: describe what the system should have — a dashboard, a login screen, a reporting page. It reads like a clear specification, and it leaves out what problem those things are solving and who is using them. A developer who receives a list of features will build exactly those features. What they will not do is tell you that two of them do not solve the actual problem.

One sentence at the top changes what you get back. Describe the outcome, not the system: 'We need to stop our team from manually re-entering customer information that our booking system already holds' is more useful than 'We need a dashboard.' The outcome sentence gives the developer context to ask the right questions and propose the simplest solution — which is often not the most obvious one.

Describe your users, not your wishlist

Every piece of software is used by specific people in a specific context, and you already know yours better than any developer will after three meetings. A field technician using an app on a site with poor connectivity has completely different requirements than an office manager using the same system on a desktop at a desk. Those differences determine which technical choices are correct and which are expensive mistakes.

For each type of user in your system, write: who they are, what they are trying to accomplish, what device they use, and what happens when the system fails them. This is not a design exercise — it is scope control, and it is the part only you can supply. Unclear user context is one of the primary causes of scope growth during a build.

Document the current process, not the ideal system

Before you describe what you want the system to do, write down what your team currently does. Step by step. Where does the information come from? Who touches it and in what order? Where does it end up? Where does it get entered twice? Where does it fall on the floor?

That one document does three things for you: it lays your own process out in one piece, which is the version you will be working from for the rest of the project; it surfaces the constraints a developer needs to work around (the accounting system that only exports CSV, the supplier's API that only sends webhooks — a system pushing data out when something happens, rather than answering when you ask); and it gives a developer what they need to estimate accurately rather than guess.

The one-page brief that works

Write: (1) the business problem in one sentence; (2) the three to five most important things the system must do; (3) the two or three things it must not do or must not touch; (4) who the users are and how many; (5) what it has to connect to; (6) what a successful outcome looks like in 90 days. One page. Every line of it is something you already know and no developer does. That is enough to generate an accurate scope conversation.

How to read a quote — and what vague ones are hiding

You do not need to be technical to read a quote well. A quote that arrives as a single number with no breakdown tells you the developer has not broken the work into components — which either means they have not thought it through carefully, or they are reserving the right to redefine scope when the work starts. A quote that arrives as a line-item breakdown — feature A: X hours, integration B: Y hours, deployment and testing: Z hours — is a quote you can have a real conversation about.

  • Ask for a breakdown by feature or phase. If the developer cannot provide one, ask why.
  • Check what is explicitly excluded. A quote that does not mention testing, documentation, deployment, or post-launch support assumes you will handle those separately — or assumes you will not notice they are missing.
  • Look for the word 'approximately.' Approximate quotes become actual invoices. Ask what assumptions the approximation depends on.
  • Ask: what would cause this to go over budget? A good developer has a specific answer. A vague answer ('if requirements change') is not reassuring.
  • Ask for a fixed-price quote or a capped time-and-materials arrangement. A purely open-ended time-and-materials engagement transfers all budget risk to you.

The questions that separate good developers from expensive ones

The quality of a developer's questions tells you more than their portfolio — and judging questions needs no technical knowledge at all. A developer who asks 'how many users will this need to support in year three?' and 'what happens to the data if someone makes a mistake?' is thinking about the real system. A developer who immediately starts talking about the technology stack without first understanding the workflow is more comfortable with the technology than with your business.

  1. 1Ask: 'What would you need to understand better before you could be confident in this quote?' A developer who has no questions has not thought about it carefully enough.
  2. 2Ask: 'What is the most common way a project like this goes over budget?' Good answer: a specific scenario (unclear requirements around X, scope growth in Y). Bad answer: 'when clients change their minds.'
  3. 3Ask: 'Is there a simpler way to solve this that I haven't considered?' A developer who suggests a less expensive approach has earned more trust than one who builds exactly what you asked for.
  4. 4Ask: 'What would you not recommend about this approach?' If the developer has no concerns, they have not thought about failure modes.
  5. 5Ask: 'Who will be doing the actual work?' You need to know whether you are dealing with a solo developer, a team lead, or a sales person who will hand the project to someone you have never spoken to.

Red flags that signal a difficult engagement ahead

  • The developer will not provide a written scope document — verbal agreements on scope become disputes at invoice time.
  • The quote arrives within hours of the first conversation, without follow-up questions.
  • The developer insists on owning the code repository or hosting accounts.
  • There is pressure to sign or pay a deposit before a scope document exists.
  • References are not available or the developer deflects when you ask for them.
  • The developer's response time during the sales process is slower than you would tolerate during the project.

You are entitled to a written scope

No reputable developer should expect you to sign a contract without a written scope of work that specifies what is being built, what is excluded, how changes are handled, and who owns the code and credentials. Asking for it is not being difficult — it is the normal shape of this transaction. If a developer cannot produce one before a deposit is paid, that is a structural problem, not a personality one.

What to remember

  • Start with the outcome — what the system must solve — before listing any features.
  • Document your current process before asking a developer to improve it. They can't scope what they don't understand.
  • A quote without a line-item breakdown is a number, not a scope. Ask for the breakdown.
  • Judge the developer by their questions. You can read those without any technical knowledge.
  • Never sign or pay a deposit without a written scope that specifies what is included, excluded, and owned.

Common questions

  • In practice, briefs run vague far more often than detailed. The risk of over-specification is that a developer builds exactly what you specified rather than what you need; that risk is far smaller than the risk of under-specification, where the developer fills the gaps in ways that cost you money. Write the detailed version — a good developer will flag anything in it that does not make sense rather than build it blindly.

  • You can get a rough order-of-magnitude estimate, but not a reliable quote — and not knowing yet is a normal place to start, not a failing. A reliable quote requires a documented understanding of the scope. The right first step from where you are is a paid discovery or scoping engagement — typically a few days of a developer's time to work through requirements with you and produce a documented scope. That scoping cost is usually recouped many times over in reduced change orders.

  • Ask them to break the timeline down by phase or milestone — then do one piece of arithmetic yourself. Add up the individual phase estimates. If the total is substantially shorter than the overall timeline quote, ask where the buffer is. If there is no buffer, the timeline is optimistic. Software projects almost always encounter unexpected complications — a vendor API that behaves differently than documented, a browser compatibility issue, a performance problem that only appears at scale. A realistic timeline includes time for those.

  • Yes, and most reputable developers will provide one when the scope is documented. Fixed-price quotes require a clear scope — which is why the scoping work matters. A fixed-price quote on a vague scope is not a promise; it is an invitation to a dispute over what was and was not included. On a properly documented scope, a fixed-price arrangement is entirely reasonable and protects both of you.

Want a second opinion on your own situation?

Start with a free project diagnosis. You leave with a clear, honest read on what is worth doing — and an honest no if it is not the right time. No obligation to build.