Costs, Hiring & Planning

How to Write a Software Requirements Document (With Template)

Updated 12 July 2026 · Tech Box

Quick answer

A software requirements document describes the problem, users, and what the system must do: start with goals and success metrics, define user roles, write functional requirements as user stories with acceptance criteria, list integrations and non-functional requirements (performance, security), and explicitly state what is out of scope.

The requirements document is the cheapest place to fix a misunderstanding — every ambiguity you resolve on paper costs 10–100x more to resolve in code. Whether you call it an SRS, a product brief, or an RFP, this guide shows what to include so agencies can quote accurately and your team can hold delivery accountable.

Step by step

  1. 1

    State the problem and business goal

    One paragraph: who has what problem, what the software should change, and how you will measure success (time saved, conversion, revenue, error reduction). Every scoping decision downstream refers back to this.

  2. 2

    Define user roles and their goals

    List each role (customer, staff, admin, partner) with the top tasks each must accomplish. Roles drive permissions, views, and testing — they are a bigger cost driver than screen count.

  3. 3

    Write functional requirements as user stories

    Format: 'As a [role], I can [action] so that [outcome]', each with 2–5 acceptance criteria. 'As a patient, I can book an appointment slot so that I don't need to call' beats 'the system shall support booking'.

  4. 4

    List integrations and data sources

    Name every system the software must connect to — payment providers, CRM, ERP, legacy databases, government APIs — and who controls access to each. Integrations are the most commonly underestimated cost item.

  5. 5

    Specify non-functional requirements

    Performance expectations, device and browser support, accessibility, uptime, data protection (GDPR/HIPAA where relevant), and expected user volumes. These shape architecture and cannot be bolted on later.

  6. 6

    Declare what is out of scope

    The out-of-scope list prevents most disputes: name the features, platforms, and migrations you are explicitly not buying in this phase.

  7. 7

    Prioritize with MoSCoW

    Tag each requirement Must / Should / Could / Won't (this phase). This lets a partner propose a phased plan and gives you levers when budget or timeline tightens.

A one-page template you can copy

For most SMB projects, one page per area is enough:

  • 1. Problem & goal — the paragraph and the success metric
  • 2. Users & roles — table of roles and top tasks
  • 3. Functional requirements — user stories with acceptance criteria, MoSCoW-tagged
  • 4. Integrations — systems, owners, API availability
  • 5. Non-functional — performance, security, compliance, devices
  • 6. Out of scope — explicit exclusions
  • 7. Constraints — budget range, deadline, existing tech stack

Common mistakes that produce bad quotes

Describing solutions instead of problems ('add a dropdown' instead of 'staff must assign a driver in under 10 seconds'), leaving out roles and permissions, omitting reporting needs (reports are features too), and hiding the budget range. Agencies scope to fit budgets — hiding yours produces proposals you can't use.

Send us your draft — or let us write it with you

Tech Box runs structured discovery workshops that turn a rough idea into a requirements document with user stories, acceptance criteria, and a phased delivery plan — a document you can take to any vendor, not just us.

Already have a draft? Send it over and we will return a scoped estimate plus the questions a serious partner should be asking about it.

Frequently asked questions

What is the difference between an SRS and a product brief?

A product brief describes the problem, users, and goals in 1–2 pages; an SRS (software requirements specification) adds detailed functional and non-functional requirements with acceptance criteria. Start with the brief — a good agency helps you develop the SRS in discovery.

How detailed should requirements be before contacting an agency?

One page minimum: problem, goal, roles, must-have features, integrations, budget range, and deadline. That is enough for comparable ballpark proposals; full detail emerges in a discovery phase.

Should I include a budget in my requirements document?

Yes, at least a range. Scope is elastic — agencies design proposals to fit budgets. Hiding the budget produces proposals that are too big, too small, or padded with guesswork.

What are acceptance criteria?

Testable conditions that define when a requirement is done — e.g., 'booking confirmation email arrives within 60 seconds'. They turn vague features into verifiable deliverables and prevent end-of-project disputes.

How to Write a Software Requirements Document + Template | Tech Box