How to Write a Software Requirements Document (Free Template)
Learn how to write a software requirements document in 7 steps, with a filled example for an Indian business and a free SRS template you can download.
Rakesh runs an electrical contracting business in Pune. He wants an app that makes quotations faster, so he sends the same WhatsApp message to three developers. The quotes come back at ₹2 lakh, ₹6 lakh and ₹15 lakh for "the same app".
Nobody was cheating him. Each developer imagined a different app. One pictured a simple quote maker, another added customer logins, and the third planned full job tracking with a Tally sync.
A software requirements document fixes this. It is a short, written description of what your software must do, so every developer prices the same thing. This guide shows you what goes in one and how to write it in seven steps, with no technical knowledge needed. You can also download our free template and fill it in.
Free download: Software Requirements Template The same 12-section format we use with clients, in plain English. You can fill it in over a weekend. Download the free template →
What is a software requirements document?
A software requirements document is a plain-language description of what a piece of software must do, who will use it, and the limits it must work within, such as budget, timeline and devices. Developers use it to estimate the cost, plan the work and check the finished product.
It is often called an SRS document (software requirements specification). The job is simple: it moves the idea out of your head and onto paper, so that you and the developer agree on the same thing.
It matters more to you than to the developer. If a feature isn't written down, you can't hold anyone to it.
SRS vs BRD vs PRD: what's the difference?
| Document | Full name | Answers | Usually written by |
|---|---|---|---|
| BRD | Business Requirements Document | Why build it? What business result do we want? | Owner or business analyst |
| PRD | Product Requirements Document | What should the product do for users? | Product manager |
| SRS | Software Requirements Specification | Exactly how must the software behave? | Analyst or tech lead |
Large companies write all three. For most small-business projects, one simple document that covers the goal, users, features and constraints is enough. That is what our template does.
Do you need one for a small project?
Yes, but it can be three pages, not fifty. Even a ₹1.5 lakh project takes weeks of someone's time, and most small-project disputes come from things nobody wrote down. If you're still deciding whether to build at all, read when small businesses actually need custom software first.
Why a requirements document saves you money
- More accurate quotes. Developers add a safety margin for anything unclear. The vaguer the brief, the bigger the margin.
- Apples-to-apples comparison. When every vendor quotes the same document, you can compare their prices line by line.
- Less scope creep. Scope creep is when a project keeps growing after the price is fixed. With a written scope, every addition becomes a visible decision with a visible price.
- Faster development. Developers spend less time waiting for your answers.
- Fewer disputes. At handover, you test the software against the document instead of memory.
- You own your idea. If you change vendors midway, the next team doesn't start from zero.
To see how scope turns into rupees, read our guide on what custom software costs in India.
What to include in a software requirements document
Our running example is Rakesh's quotation app. His business has 2 site supervisors, 10 electricians and a small office team.
1. Project overview & business goal
This is the problem the software solves, in one paragraph. Tip: write down the problem, not the solution you have in mind.
Example: "Quotes take 1–2 days after a site visit and we lose jobs to faster competitors. We want to send quotes within an hour."
2. Users & roles
A role is a type of user with its own permissions. Tip: remember the people behind the counter: office staff, your accountant and you.
Example: Owner (sees everything), Supervisor (creates quotes on site), Office staff (sends quotes and follows up).
3. Functional requirements
Functional requirements are what the software must do. Write them as user stories in this format: "As a [role], I want to [action] so that [benefit]." Tip: the "so that" part tells the developer why you need the feature, and they may suggest a simpler way to get it.
Example: "As a supervisor, I want to pick items from a saved price list so that I don't retype rates."
4. Non-functional requirements
Non-functional requirements describe how well the software works rather than what it does. They cover speed, security, uptime (how often it must be available), number of users, languages and offline use. Tip: use numbers. "Fast" can't be tested, but "the PDF opens in under 5 seconds on 4G" can.
Example: "Supervisors can create a quote with no internet at the site, and it syncs later."
5. Integrations
An integration is a connection to another system, such as UPI or Razorpay, WhatsApp, Tally, GST invoicing, SMS or Google Sheets. Tip: each one adds cost, so mark which ones phase 1 truly needs.
Example: "Share the quote PDF on WhatsApp. Export accepted quotes to Tally."
6. Platforms & devices
This covers where the software runs: a web app (opened in a browser), Android, iOS or tablet. Tip: check which phones your team actually carries. An iOS app that nobody uses doubles the work for nothing.
Example: "Android app for supervisors, web dashboard for the owner and office."
7. Data & reports
This covers what the software stores and which reports you need. Tip: list your reports early, because they shape how the data is structured.
Example: "Monthly report: quotes sent, accepted and total value, per supervisor."
8. Design & branding expectations
This covers your logo, colours and any apps whose look you like. Tip: share two or three screenshots and say what you like about each.
Example: "The quote PDF shows our logo, GSTIN and bank details."
9. Must-have vs nice-to-have
The MoSCoW method sorts every feature into Must have, Should have, Could have or Won't have (this time). Musts go into phase 1 and the rest wait. Tip: if more than half your features are Musts, you haven't really prioritised yet.
Example: "Must: price list, quote PDF. Could: e-signature. Won't: inventory."
10. Budget range, timeline & constraints
This covers your budget range, your deadline and any fixed limits. Tip: sharing a range lets a good vendor tell you what fits instead of guessing. Our custom software cost guide for India can help you set a realistic one.
Example: "₹3–5 lakh. Phase 1 live before March. Must work with our existing Tally."
11. Compliance & data privacy
If you store personal data such as customer names and phone numbers, the Digital Personal Data Protection Act, 2023 (the DPDP Act) applies. Tip: write down what personal data you collect and who can see it. See MeitY's official DPDP page or our DPDP overview.
Example: "Customer phone numbers are visible only to the owner and office staff."
12. Success criteria
This is how you'll know the project worked. Tip: pick two or three measurable outcomes.
Example: "Within three months, 80% of quotes go out the same day as the site visit."
How to write a software requirements document: step by step
- Write down the business problem in one paragraph.
- List every type of user.
- Walk through a day in each user's life and write down what they do.
- Turn those actions into features (user stories).
- Mark each feature must-have or nice-to-have.
- Add integrations, platforms and constraints.
- Review it with your team, then share it with vendors.
Step 1: Write down the business problem in one paragraph
Write down what is going wrong today and what it costs you, in the words you'd use with a friend over chai. Add a number if you can, such as hours lost, jobs missed or mistakes per month.
For Rakesh: "Supervisors write quotes by hand at night, the office retypes them, and rate mistakes eat our margin."
Tip: if you can't explain the problem in one paragraph, you aren't ready to ask for quotes.
Step 2: List every type of user
Write down everyone who will open the software, then group them into roles. Ask yourself who approves things, who needs reports and who fixes mistakes.
At first Rakesh listed only his supervisors. Then he remembered the office staff who send quotes, and himself. That makes three roles, and each one changes the design.
Tip: note roughly how many people have each role. Five users and five hundred are very different projects.
Step 3: Walk through a day in each user's life
For each role, write down what they do today, in order. Don't think about software yet.
A supervisor visits a site, measures, notes the items needed, checks the rate diary, calls the office and writes the quote at night. Every one of those steps is a place where software could help.
Tip: sit with the person for an hour, or ask them for voice notes through the day. People forget their own routine steps.
Step 4: Turn those actions into features (user stories)
Turn each painful step into one user story. Keep each story small enough to test in a few minutes.
For example, "checks the rate diary" becomes "As a supervisor, I want to search a saved price list so that I quote current rates."
Tip: number every story (US-01, US-02…) so that everyone can refer to "US-07" instead of describing it again.
Step 5: Mark each feature must-have or nice-to-have
Give each story a MoSCoW priority. Ask: "If this were missing on launch day, could we still use the app?" If the answer is yes, it isn't a Must.
This step brings quotes down more than any other. A lean phase 1 goes live sooner, and real use will tell you what phase 2 needs.
Tip: let your team vote. Supervisors and owners often disagree, and the disagreement is useful.
Step 6: Add integrations, platforms and constraints
List the connected systems, the devices, the languages and the hard limits such as budget, deadline and offline use. These swing the cost the most, so be specific.
"WhatsApp integration" could mean a share button, which is cheap. It could also mean automatic messages through the WhatsApp Business API, which is more work and adds Meta's per-message charges. Say which one you mean.
Tip: if you're unsure about an integration, mark it as a Could and ask vendors to price it separately.
Step 7: Review it with your team, then share it with vendors
Show the draft to one person from each role and ask, "What's missing?" Then add a version number and date, and send the same file to every vendor.
Ask each vendor to quote against your story IDs and to list their assumptions. The ₹2 lakh and ₹15 lakh quotes can now be compared.
Tip: ask vendors what they would change. The ones who ask sharp questions are usually worth hiring.
Get the template these seven steps fill in Every section, table and checklist from this guide in one editable file for Google Docs or Word. Download the free Software Requirements Template →
Sample requirements document (filled example)
This is a short version of Rakesh's document. A full one would run three to four pages.
Project: QuoteFast, a quotation app for an electrical contractor (v1.0)
Overview: Supervisors create and send a GST-ready quotation from the site within an hour of the visit, using a price list the owner controls.
| Role | What they do | Users |
|---|---|---|
| Owner | Sets prices, sees all quotes and reports | 1 |
| Supervisor | Creates quotes on site | 2 |
| Office staff | Reviews, sends and follows up on quotes | 2 |
| ID | User story | Priority |
|---|---|---|
| US-01 | As an owner, I want one central price list so that every quote uses current rates. | Must |
| US-02 | As a supervisor, I want to pick items and quantities so that I don't retype rates. | Must |
| US-03 | As a supervisor, I want GST and totals calculated automatically so that there are no mistakes. | Must |
| US-04 | As a supervisor, I want to create quotes offline so that I can work at sites with no signal. | Must |
| US-05 | As office staff, I want a branded PDF so that quotes look professional. | Must |
| US-06 | As office staff, I want to share the PDF on WhatsApp so that customers get it instantly. | Must |
| US-07 | As office staff, I want to mark quotes sent, accepted or declined so that nothing is forgotten. | Should |
| US-08 | As an owner, I want a monthly report per supervisor so that I can see conversion rates. | Should |
| US-09 | As a supervisor, I want to duplicate an old quote so that revisions take a minute. | Could |
| US-10 | As a customer, I want to accept a quote online so that I don't need to call. | Won't (phase 1) |
Non-functional requirements: works offline on Android 10+ and syncs later · PDF ready in under 5 seconds · customer data visible only to the owner and office staff · English and Hindi screens.
Integrations: WhatsApp share (Must), Tally export (Should). Platforms: Android app, web dashboard. Budget: ₹[] to ₹[] lakh. Timeline: phase 1 live by [date].
Common mistakes to avoid
- Describing solutions instead of problems. Write "quotes take two days" and let the developer propose the fix.
- Copying a competitor's app feature by feature. List only what your users need.
- No priorities. Give every feature a MoSCoW label.
- Forgetting admin and staff users. The back office often needs more screens than customers do.
- Ignoring reports. List the reports you need on day one.
- No budget range. Give one so that vendors can size the solution.
- Too much technical jargon. Plain words are more precise than buzzwords.
- Not updating the document. Give every agreed change a new version number and date.
Requirements document checklist (before you send it to developers)
- The business problem fits in one paragraph
- Every user role is listed with an approximate user count
- Every feature is a numbered user story
- Every story has a MoSCoW priority
- Phase 1 is separated from phase 2
- Non-functional needs have numbers
- Integrations are marked Must or Nice-to-have
- Platforms and devices are named
- Required reports are listed
- A budget range and target date are included
- Personal data, and who can see it, is described
- The document has a version number and date
What happens after you send it to a developer
A typical project goes like this: clarification call (questions and gaps) → estimate (tied to your story IDs, with assumptions listed) → scope freeze (the agreed phase 1 version, with later changes handled as change requests) → design (you approve the screens) → development (demos every week or two) → testing (you check each story before sign-off).
A good development partner will question and improve your document, not just price it. Be careful with a vendor who quotes without asking a single question. At Xolro, we review requirement documents for free and point out gaps before quoting. It's how we approach custom software development, including for field-service businesses like Rakesh's. For more on the quoting problem itself, read why field-service quotations take so long.
Requirements engineering also has a formal international standard, ISO/IEC/IEEE 29148. Large organisations follow it, but a small project doesn't need it.
Frequently asked questions
What is the difference between an SRS and a BRD?
A BRD (Business Requirements Document) explains why a project exists and which business results it should deliver. An SRS (Software Requirements Specification) explains exactly what the software must do to deliver those results. Large companies keep the two separate. For small projects, one document that covers both is enough.
How long should a software requirements document be?
For a small-business app, three to eight pages is normal. Coverage matters more than length. It should include every user role, every feature as a prioritised user story, integrations, platforms and a budget range. A clear three-page document beats a vague thirty-page one.
Who should write the requirements document: the client or the developer?
The client should write the first draft, because only you know the business problem and your users. The developer should then review it, ask questions and add the technical detail. The best documents are finished together, but they start with the person who owns the problem.
Can I write a requirements document without technical knowledge?
Yes. A requirements document describes what your business needs, not how to code it. If you can describe your team's daily work and what goes wrong in it, you can write one. Use plain words and user stories, and leave the technical decisions to your developer.
What are functional and non-functional requirements?
Functional requirements describe what the software does, such as "create a quote PDF". Non-functional requirements describe how well it does it: speed, security, uptime, number of users, languages and offline use. Both affect the price, and people forget the non-functional ones most often.
Is there a free SRS template I can use?
Yes. Xolro's free Software Requirements Template covers all 12 sections from this guide in plain English. It includes tables for users, user stories, integrations, reports and the timeline, plus a pre-send checklist, and it works in Google Docs or Word. Download it here.
Start with the document, not the quote
Three very different quotes for "the same app" usually mean three developers imagined three different apps. A software requirements document fixes that. It puts your idea on paper: the problem, the users, the features in priority order, the integrations, the platforms, and your budget and timeline.
You don't need technical knowledge or fifty pages. You need an honest afternoon, input from your team and a clear structure. Follow the seven steps and run through the checklist before you send the document. Every vendor will then quote the same project, which means fairer prices and fewer surprises.
Download the free Software Requirements Template →
Want an expert to review it? Send your document to Xolro for a free requirements review. We'll point out the gaps before anyone quotes.