Software Requirements Document: How to Write One That Works
A software requirements document tells your developers what to build and how you will accept it. Learn the sections, a worked example and common mistakes.
Summary of this article
- Defines a software requirements document and explains who uses it and why writing it before development cuts rework and quote confusion.
- Lists the sections a practical SRS needs, from purpose and users to integrations, data, constraints and acceptance criteria.
- Shows how to write functional requirements as testable statements, with an order-approval example in a table.
- Explains non-functional requirements and the India-specific topics to cover, including GST, data protection and WhatsApp or UPI integrations.
- Gives a seven-step process for writing the document, a list of common mistakes and a note on how Arham Technology turns requirements into a phase-one build.
Summarised by AI from the full article. Check figures and prices against the article before you act on them.

Quick answer
A software requirements document, or SRS, is a written agreement on what your software must do and how you will check it. Cover purpose, users, functional requirements, non-functional requirements, integrations, data and acceptance criteria. For a typical business system, 5โ15 clear pages are enough to get comparable quotes and avoid rework.
Key takeaways
- Write the requirements document before you request quotes, so every vendor prices the same scope.
- Describe outcomes and rules for each user role, not screen layouts or technology choices.
- Give every requirement a testable acceptance criterion, such as a number, a role or a clear pass/fail condition.
- Include non-functional requirements like speed, security, backups and data retention, because they change cost and design.
- Mark each item Must, Should or Could, and keep a visible phase-two list so phase one stays small.
On this page
- What is a software requirements document?
- What should a software requirements document include?
- How do you write functional requirements that can be tested?
- What are non-functional requirements and why do they matter?
- What should Indian businesses add to the requirements?
- How do you write a software requirements document step by step?
- What mistakes make a requirements document fail?
- How does a requirements document connect to the build?
- How Arham Technology approaches requirements
- What should you do next?
Most software projects that go over budget do not fail because of bad code. They fail because the team built something slightly different from what the business expected, and nobody wrote down the difference. A clear software requirements document is the cheapest way to prevent that.
This guide shows what to put in the document, how to write each requirement so it can be tested, and which mistakes to avoid. If you are earlier in the process and still explaining the business goal, start with our website development brief template, then return here for the detail.
What is a software requirements document?
A software requirements document is a written description of what a system must do, who will use it and how you will confirm it works. In engineering it is usually called a software requirements specification (SRS), and the international standard for it is ISO/IEC/IEEE 29148, published in 2018.
The document serves three groups at once:
- Business owners use it to confirm the system matches the real process.
- Developers and designers use it to estimate, build and ask questions early.
- Testers use it to decide what "done" means.
A requirements document is not a design. It says what the software must achieve, not which database or screen layout to use. Those choices come later and can change without rewriting the requirements.
What should a software requirements document include?
A practical requirements document includes purpose, scope, users, functional requirements, non-functional requirements, integrations, data, constraints and acceptance criteria. The ISO/IEC/IEEE 29148 standard lists a longer set of sections, but most business systems need only a compact version.
| Section | What to write | Example |
|---|---|---|
| Purpose and scope | The problem, the goal and what is out of scope | "Replace the order-approval spreadsheet; billing is out of scope" |
| Users and roles | Each role and what it needs to do | Sales executive, branch manager, accounts, admin |
| Functional requirements | What the system does, one testable statement each | "A manager can approve or reject an order from the pending list" |
| Non-functional requirements | Speed, security, uptime, backups, usability | "Pages load in under 3 seconds on a 4G connection" |
| Integrations | Tools it must connect to and the data exchanged | Tally export, Razorpay, WhatsApp notifications |
| Data | What is stored, imported and retained | "Import 3 years of orders from Excel" |
| Constraints and assumptions | Budget, deadline, hosting, legal limits | "Hosted in India; launch before the festive season" |
| Acceptance criteria | The evidence that proves each requirement is met | "Approval is logged with user, time and reason" |
Add a short glossary if your business uses its own terms. "Dispatch", "challan" and "booking" can mean different things to different teams, and developers will not guess correctly.
How do you write functional requirements that can be tested?
You write a testable functional requirement as one short statement about one behaviour, tied to a role and a clear pass or fail condition. Vague words such as "easy", "fast" or "user-friendly" cannot be tested, so replace them with something you can observe.
Use this pattern: "A [role] can [action] so that [outcome], when [condition]." Then add the acceptance criterion beside it.
| ID | Requirement | Priority | Acceptance criterion |
|---|---|---|---|
| FR-01 | A sales executive can submit an order with customer, items and discount | Must | Order appears in the manager's pending list within 5 seconds |
| FR-02 | A branch manager can approve or reject an order and add a reason | Must | Decision is saved with user, time and reason in the audit log |
| FR-03 | Orders above โน1,00,000 need approval from a second manager | Should | Order cannot move to dispatch until both approvals exist |
| FR-04 | Accounts can export approved orders in a format their Tally setup accepts | Should | Exported file imports into a test Tally company without errors |
| FR-05 | The customer receives a status message when the order is dispatched | Could | Message is sent once, with the correct order number |
Notice three habits in the table. Each row has a unique ID, so tests and change requests can refer to it. Each row has a priority such as Must, Should or Could, which keeps phase one small. And each row has a pass or fail condition, so nobody argues at the end.
What are non-functional requirements and why do they matter?
Non-functional requirements describe how well the system must work, covering performance, security, availability, usability, backups and data retention. They matter because they change architecture and cost, even though no user sees them as a feature.
Two examples show the difference. "Users can upload a document" is functional. "A 10 MB document uploads in under 10 seconds and is scanned for malware" is non-functional, and it needs extra design work.
Cover at least these areas:
- Performance. Expected number of users, records and requests, and acceptable response times.
- Security. Login rules, role-based access, password policy, audit trail and encryption of sensitive data.
- Availability and backups. Acceptable downtime, backup frequency and how fast you must recover.
- Usability and devices. Mobile or desktop use, languages, and any accessibility needs.
- Data retention. How long records are kept and who can delete them.
- Maintainability. Documentation, code ownership and handover expectations.
Be honest about scale. A tool for 15 office staff and a portal for 5,000 dealers need very different designs, and saying so early avoids an expensive rebuild.
What should Indian businesses add to the requirements?
Indian businesses should add GST handling, data-protection duties and the local tools their teams already use. These are easy to forget in a generic template, and they affect design and cost.
- GST and invoicing. State whether the system must calculate GST, store GSTIN, or export to your accounting tool. Our guide to Tally and ERP integration covers how those exports behave.
- Payments. Name the gateway or UPI provider you expect, such as Razorpay, and what happens on failure or refund.
- Messaging. If staff or customers should get alerts on WhatsApp, say which events trigger them. The WhatsApp Business Platform needs approved templates for business-initiated messages.
- Personal data. If you store customer or employee data, note consent, access and deletion needs. The Digital Personal Data Protection Rules, 2025 were notified on 13 November 2025, and most duties for businesses that handle personal data start on 13 May 2027, according to the MeitY rules document. Ask your legal adviser what applies to you.
- Language and devices. Many field teams work on Android phones with patchy networks, so say whether the system must work in Hindi or another language, or tolerate slow connections.
How do you write a software requirements document step by step?
You write it by starting from the process, not the screens, and by reviewing it with the people who do the work. Follow these seven steps:
- State the goal. Write one paragraph on the problem and the result you want, with a number if you have one, such as "cut approval time from two days to four hours".
- Map the current process. List each step, who does it, which tool they use and where delays or errors happen.
- List the roles. Name every type of user, including admins and external parties such as customers or dealers.
- Write requirements per role. Use the statement pattern above, one behaviour per line, with an ID.
- Add non-functional needs. Write the speed, security, uptime and retention targets that matter to you.
- Define priorities and phases. Mark Must, Should and Could, then draw a line: everything above it is phase one.
- Review and sign off. Walk through it with operators and managers, then fix gaps. Keep a version number and a change log.
A review session with real users is the most valuable step. Ask each person to describe a normal day and an unusual one, and check that both are covered. Exceptions such as returns, cancellations and partial deliveries are where most hidden requirements live.
What mistakes make a requirements document fail?
A requirements document fails when it is vague, too technical, or written once and forgotten. These are the most common problems:
- Describing screens instead of needs. "A blue button on the left" says nothing about the rule behind it.
- Skipping exceptions. Returns, edits after approval, missing data and permission changes are real daily events.
- Leaving out non-functional needs. Teams discover the speed or security requirement only after launch.
- No priorities. If everything is a Must, phase one grows and the budget with it.
- No owner. Without one person who answers questions and approves changes, decisions stall.
- Treating it as fixed forever. Requirements will change once users see a prototype, so agree a change process instead of pretending they will not.
If requirements are unclear, quotes will vary widely, and so will final costs. Our guide to custom software development cost in India shows how scope, roles and integrations move the price.
How does a requirements document connect to the build?
The requirements document becomes the backlog, the test plan and the contract baseline for the project. Each requirement turns into one or more work items, each acceptance criterion turns into a test, and each change request is checked against the document.
It also helps you decide what to build at all. If your requirements read like a standard CRM or accounting tool, a packaged product may be cheaper, and our custom software vs off-the-shelf guide helps you decide. If the requirements describe your own approvals, rules and exceptions, a workflow automation system is likely worth building.
How Arham Technology approaches requirements
We treat requirements as a shared working document, built from how your team actually works, not a form to fill in. Our custom software development service follows these steps:
- Ops shadowing. We watch a live week of work to catch hidden handoffs that workshops miss.
- Priority backlog. Pain points are ranked by frequency and business risk, so phase-one scope stays honest.
- Prototype in context. Clickable flows are validated with end users before heavy engineering begins.
- Build and data migration. Core modules ship with careful import of historical records and parallel-run support.
- Adoption coaching. We train champions and fix friction before full cutover.
The deliverables include process maps with exception paths, role-based requirements with acceptance criteria, and a ranked backlog. Where the system needs APIs, databases or integrations, our backend development team specifies those with you before build starts.
What should you do next?
Pick the one workflow that costs you the most time today, write its goal, roles and ten to fifteen requirements using the table above, and mark what belongs in phase one. That single page is already enough to start a useful conversation and to get quotes you can compare.
If you want help turning notes, spreadsheets and WhatsApp threads into a clear scope, explore our custom software development service or contact our team. Bring whatever you have, and we will help you shape a phase-one requirements document and an indicative plan.
For a reference on structure, the ISO/IEC/IEEE 29148:2018 standard is outlined in its official preview.
Frequently asked questions
What is a software requirements document?
A software requirements document is a written description of what a software system must do, who will use it and how success will be judged. It is also called a software requirements specification or SRS. Developers, testers and the business owner all work from the same document.
How long should a software requirements document be?
For most business systems, 5 to 15 pages is enough. A single-workflow internal tool can be covered in 3 to 5 pages, while a multi-role platform with integrations needs more. Length matters less than whether each requirement is clear and testable.
What is the difference between functional and non-functional requirements?
Functional requirements describe what the system does, such as a manager approving an order. Non-functional requirements describe how well it does it, such as responding within a set time, staying available or protecting personal data. Both must be written down and tested.
Who should write the software requirements document?
The business owner or process owner should lead it, with input from the people who use the process every day. A software partner or business analyst can help structure it and ask the questions you might miss. A document written only by developers often misses real working conditions.
Do I need a requirements document if I use agile?
Yes, but it can be lighter. Agile teams usually keep a prioritised backlog of user stories with acceptance criteria instead of one long document. You still need agreed goals, roles, integrations and non-functional needs before the first sprint, so budget and scope are clear.
Is a requirements document the same as a project brief?
No. A brief explains the business goal and context so a partner can propose a solution. A requirements document is more detailed and describes the behaviour the finished software must have. The brief usually comes first, and the requirements document grows out of it.
Want Custom Software Development done right?
Get a free consultation and a clear plan โ scope, timeline and cost โ from our Mumbai team.



