How to write a software requirements specification
Complete guide for UK businesses with practical examples and common mistakes to avoid.
Free SRS template for UK businesses.
We've created a practical SRS template designed specifically for UK SMEs commissioning bespoke software. Unlike the bare-bones templates you'll find elsewhere, ours includes:
Free download, no signup required. Available in Word and HTML formats.
Best for:
Best for:
A well-structured SRS follows a logical flow from high-level business context through to detailed technical requirements. Our template includes all 8 sections:
Project overview, objectives, and boundaries. What's included and explicitly excluded.
The business problem, current situation, and desired outcomes with measurable success criteria.
Who will use the system, their roles, goals, and technical capabilities.
What the system must do. Features, user stories, and acceptance criteria.
How the system should perform. Includes security (GDPR compliance), performance, accessibility (WCAG for public sector), and reliability.
Systems to connect with, data flows, and API requirements.
Data sources, structures, migration needs, and governance requirements.
Budget, timeline, technical limitations, and assumptions made during requirements gathering.
Tip: Don't try to complete the template alone. The most successful SRS documents result from collaboration:
Research shows that 37% of software projects fail due to unclear requirements. Avoid these common mistakes:
Avoid words like "user-friendly", "fast", or "easy". Instead, specify measurable targets: "Page loads within 2 seconds" or "Users complete checkout in under 3 minutes".
Document a clear change process upfront. New requirements that emerge during development should be formally assessed for impact on timeline and budget.
Don't assume one person knows all requirements. Involve representatives from each user group and department that will use the system.
Security, performance, and accessibility are just as important as features. 48% of projects have issues because these were treated as afterthoughts.
Use this checklist to ensure your SRS document is ready to share with development partners:
Scope and context
Requirements
Non-functional requirements
Ready to share
Read the complete template below, or download it in HTML or Word format.
[Describe the business problem this software will solve. Be specific about current pain points and their impact on the business.]
| ID | Objective | Success Metric |
|---|---|---|
| OBJ-1 | [Objective description] | [How will you measure success?] |
| OBJ-2 | [Objective description] | [How will you measure success?] |
| OBJ-3 | [Objective description] | [How will you measure success?] |
| Name | Role | Responsibilities | Contact |
|---|---|---|---|
| [Name] | Project Sponsor | Final approval, budget authority | [Email] |
| [Name] | Business Owner | Requirements sign-off, acceptance testing | [Email] |
| [Name] | Project Manager | Day-to-day coordination | [Email] |
| Attribute | Description |
|---|---|
| Description | [Who are they? What is their role?] |
| Technical Ability | [High / Medium / Low] |
| Frequency of Use | [Daily / Weekly / Monthly] |
| Primary Goals | [What do they need to accomplish?] |
| Attribute | Description |
|---|---|
| Description | [Who are they? What is their role?] |
| Technical Ability | [High / Medium / Low] |
| Frequency of Use | [Daily / Weekly / Monthly] |
| Primary Goals | [What do they need to accomplish?] |
| ID | Priority | Requirement | Acceptance Criteria |
|---|---|---|---|
| FR-1.1 | Must Have | [The system shall...] | [Given... When... Then...] |
| FR-1.2 | Should Have | [The system shall...] | [Given... When... Then...] |
| FR-1.3 | Could Have | [The system shall...] | [Given... When... Then...] |
| ID | Priority | Requirement | Acceptance Criteria |
|---|---|---|---|
| FR-2.1 | Must Have | [The system shall...] | [Given... When... Then...] |
| FR-2.2 | Must Have | [The system shall...] | [Given... When... Then...] |
| ID | Requirement | Measurement |
|---|---|---|
| NFR-P1 | Page load time | [e.g., All pages shall load within 3 seconds on standard broadband] |
| NFR-P2 | Concurrent users | [e.g., System shall support 50 concurrent users without degradation] |
| NFR-P3 | Search response time | [e.g., Search results shall return within 2 seconds] |
| ID | Requirement | Measurement |
|---|---|---|
| NFR-S1 | Authentication | [e.g., Users shall authenticate via username/password with MFA option] |
| NFR-S2 | Data encryption | [e.g., All data shall be encrypted at rest and in transit using TLS 1.3] |
| NFR-S3 | GDPR compliance | [e.g., System shall support data export and deletion requests] |
| ID | Requirement | Measurement |
|---|---|---|
| NFR-R1 | Uptime | [e.g., 99.5% availability during business hours (Mon-Fri, 8am-6pm)] |
| NFR-R2 | Backup | [e.g., Daily automated backups with 30-day retention] |
| NFR-R3 | Recovery | [e.g., Full system restore achievable within 4 hours] |
| ID | Requirement | Measurement |
|---|---|---|
| NFR-U1 | Accessibility | [e.g., WCAG 2.1 Level AA compliance] |
| NFR-U2 | Mobile responsiveness | [e.g., Fully functional on tablets; read-only on mobile phones] |
| NFR-U3 | Browser support | [e.g., Latest versions of Chrome, Firefox, Edge, Safari] |
| System | Integration Type | Data Exchanged | Frequency | Owner |
|---|---|---|---|---|
| [e.g., Xero] | [API / File / Manual] | [e.g., Invoices, customers] | [Real-time / Hourly / Daily] | [Who provides access?] |
| [e.g., Salesforce] | [API / File / Manual] | [e.g., Contacts, opportunities] | [Real-time / Hourly / Daily] | [Who provides access?] |
| Data Type | Source | Volume | Format | Notes |
|---|---|---|---|---|
| [e.g., Customer records] | [e.g., Excel spreadsheet] | [e.g., ~5,000 records] | [e.g., CSV] | [Any data quality issues?] |
| Type | Constraint | Impact |
|---|---|---|
| Budget | [e.g., Fixed budget of £X] | [How does this affect scope?] |
| Timeline | [e.g., Must launch before March 2026] | [Why is this date important?] |
| Technology | [e.g., Must integrate with existing Azure infrastructure] | [Any technical implications?] |
| ID | Assumption | Risk if Wrong |
|---|---|---|
| A1 | [e.g., Xero API will remain stable during development] | [Integration rework required] |
| A2 | [e.g., Client will provide test data by Week 4] | [Testing delayed] |
| A3 | [e.g., Existing customer data is clean and complete] | [Data cleansing effort required] |
The software will be considered complete when:
| Test Scenario | Description | Expected Outcome | Tester |
|---|---|---|---|
| UAT-1 | [e.g., Create new customer and order] | [e.g., Customer and order appear in system and sync to Xero] | [Name] |
| UAT-2 | [Test scenario description] | [Expected outcome] | [Name] |
| Milestone | Deliverables | Target Date | Payment |
|---|---|---|---|
| Discovery Complete | Approved SRS document | [Date] | [Amount or %] |
| Development Complete | Working software in test environment | [Date] | [Amount or %] |
| UAT Complete | Signed-off user acceptance testing | [Date] | [Amount or %] |
| Go-Live | Production deployment and training | [Date] | [Amount or %] |
Changes to requirements after sign-off will be managed as follows:
| Term | Definition |
|---|---|
| [Term 1] | [Definition - explain any business-specific or technical terms] |
| [Term 2] | [Definition] |
| [Term 3] | [Definition] |
By signing below, the parties confirm that they have reviewed this Software Requirements Specification and agree that it accurately represents the software to be developed.
| Name: | |
| Role: | |
| Signature: | |
| Date: |
| Name: | |
| Role: | |
| Signature: | |
| Date: |
Get a ballpark cost for your bespoke software project. Answer a few questions about your requirements and get an instant estimate.
Calculate how much legacy code is costing your business annually. Build a business case for modernisation with hard numbers.
Whether you have a completed brief or just an idea, we're happy to talk through your requirements. Free, no-obligation conversation about what you're trying to achieve.
Get in touch