Copy the blank template
Select the text below and paste it into your own document. Replace each bracketed prompt, and delete any line that genuinely does not apply rather than leaving it blank.
SOFTWARE REQUIREMENTS DOCUMENT
Project: [name] Version: [0.1] Date: [date]
Owner: [name, role] Approver: [name, role]
1. DOCUMENT CONTROL
Change log: [version] [date] [what changed and why]
2. BACKGROUND AND GOALS
Problem: [in the words of the people who have it]
Why now: [what has changed or what it costs]
Goals and measures: [goal] -> [how it will be measured]
Not goals: [what this project will not try to do]
3. USERS AND ROLES
[Role] | needs to: [...] | may see and change: [...]
4. SCOPE
In scope: [...]
Out of scope: [...]
Later: [...]
5. FUNCTIONAL REQUIREMENTS
FR-01 (Must/Should/Could)
As a [role], I want [action], so that [outcome].
Acceptance criteria:
- Given [situation], when [action], then [result].
6. DATA
Main records and how they relate: [...]
Personal / special category data: [...]
Retention and deletion: [...]
Data to migrate: [source, format, volume, quality]
7. INTEGRATIONS
[System] | direction: in/out/both | frequency: [...] | API confirmed: yes/no
If unavailable: [...]
8. NON-FUNCTIONAL REQUIREMENTS
Performance: [...]
Availability: [...]
Security: [...]
Accessibility standard: [e.g. WCAG 2.2 level AA]
Devices and browsers: [...]
Hosting region, backups and recovery: [...]
9. CONSTRAINTS, ASSUMPTIONS AND DEPENDENCIES
Budget range: [...] Deadline and reason: [...]
Must use / must not use: [...]
Assumptions: [...]
10. RISKS AND OPEN QUESTIONS
Q-01: [question] | owner: [...] | answer by: [date] | affects: [IDs]
11. ACCEPTANCE AND SIGN-OFF
Testers: [...] Environment: staging Test window: [...]
Blocks sign-off: [...] Signed off by: [...]