Back to the blog
Web AppPublished 4 min read

How to Write a Software Project Brief That Sets Clear Scope

A clear brief gets you more accurate quotes and fewer rounds of rework. Here is what to prepare before you talk to a developer.

Sheets of paper with a workflow diagram, a product brief, and user goals laid out on a desk
Photo by Kelly Sikkema on Unsplash

The first question many owners ask a developer is 'how much would an app like this cost?'. The honest answer is almost always 'it depends'. It depends on who the users are, which features must be there, what other systems need connecting, and what data already exists. A project brief is a short document that answers those things before the price conversation begins.

A brief doesn't have to be long or technical. Two to four pages in plain language is plenty. What matters is that you and the developer picture the same thing.

Why the brief drives time and cost

Developers estimate time and cost from the scope of work. When the scope is vague, one of two things happens: the quote is padded to cover the risk, or it starts small and grows mid-project as 'oh, we need this too' keeps coming up. Both cost you. A clear brief gives every developer the same basis for quoting, so you can compare offers fairly, and it becomes the reference point whenever a change is requested.

What to put in your brief

  1. Business goal. The problem you want solved, in one or two sentences. For example: 'Prospective students can sign up and pay without waiting for an admin to reply in chat.'
  2. Users. Everyone who will use the system: customers, admins, field staff, the owner. Each group usually needs its own screens and access rights.
  3. Main flow. Describe step by step what a user does, from opening the website to finishing their task.
  4. Must-haves and later. Separate what has to exist at launch from what can follow.
  5. Integrations. Other systems that must connect, such as a payment gateway, email, WhatsApp, Google Sheets, or accounting software.
  6. Data. What data already exists, where it lives, and whether it needs moving into the new system.
  7. Success measures. How you'll know the project worked six months after launch.
  8. Constraints. A realistic deadline, a budget range, and who has the authority to sign off the result.

For success measures, pick something observable, such as 'the admin no longer matches bank transfers by hand' or 'every lead is recorded in one place'. Measures like these show the developer what matters most to you, and help you judge the finished result.

Separate 'must have' from 'later'

Wish lists tend to keep growing. The most effective way to control cost is to ask of every feature: if this isn't there on launch day, can the business still run? If the answer is yes, it goes on the 'later' list.

For a course enrolment system, for instance, the sign-up form, price table, and payment might be must-haves. Promo codes, automated monthly reports, and a mobile app can wait for the next version. A smaller first version also goes live sooner, so you start hearing from real users earlier. The 'later' list isn't a list of discarded ideas; keep it safe as material for the next phase.

Integrations, data, and content: the parts people forget

Integrations are a common source of cost surprises. List every service that needs connecting and who owns the account. Payment gateway, domain, email, and Google accounts should be in your business's name, not the developer's.

For data, explain what already exists and in what form: spreadsheets, a point-of-sale app, or paper records. If the system will hold customers' personal data, say so early so that security and access control are designed in from the start. It's also worth reading up on Indonesia's Law No. 27 of 2022 on Personal Data Protection (UU No. 27 Tahun 2022 tentang Pelindungan Data Pribadi) and consulting a professional where needed.

Content needs preparing too: product photos, prices, descriptions, and policy text. On the website for our client Devans Egg, an automated check blocks a production release while fields such as prices are still empty. A check like that helps, but it's better still to gather content alongside the brief, so launch isn't held up waiting for material.

Questions to ask a developer

  • Which part of this brief do you see as the riskiest or most expensive, and why?
  • What exactly is included in, and excluded from, this quote?
  • How do we handle adding or changing features partway through?
  • When can I try an early version, and how often will I see progress?
  • Who owns the code, the accounts, and the data once the project is done?
  • What are the ongoing costs after launch, such as hosting, domain, third-party services, and maintenance?
  • How is data backed up, and what happens if something goes down?

Next steps

  1. Write the project's business goal in one sentence, then ask a colleague to read it and explain it back in their own words.
  2. Sketch the main user flow on paper, however rough.
  3. List the features, then mark each as must-have or later.
  4. Gather your list of integrations, existing data, and content materials.
  5. Send the same brief to every developer you're considering, so their quotes can be compared fairly.