What is Software Requirements Specification?
A software requirements specification is the written document defining what a system must do: functional requirements as testable statements, non-functional requirements such as performance and access control, plus constraints and assumptions. Its practical test is whether each requirement can be marked pass or fail without argument during acceptance testing.
- Category
- Product & Delivery
- Also called
- SRS, Requirements document, Functional specification
- In our work
- Product strategy
The quality bar is testability. "The system should be fast" can be neither accepted nor rejected; "a search returns results in under two seconds on a standard mobile connection" can. The same applies to permissions, notifications and reporting, where undefined behaviour tends to resurface during acceptance testing as a disagreement about what was always meant.
Weight varies with the project rather than with the methodology. A heavy document suits regulated or integration-dense work; a lighter set of user stories with acceptance criteria suits an evolving product. What does not vary is the need for an agreed baseline recorded where both sides can read it, and an assumptions section, since late-project disputes almost always trace back to something one side assumed and never wrote down.
Common questions.
Do agile projects need a requirements specification?
They need a baseline, though rarely a two-hundred-page one. User stories with acceptance criteria, a written definition of done, and a maintained backlog serve the same purpose: something specific enough to test against and to price a change from. What fails is not the format but the absence of any written record of what was agreed.
Where it comes up.
A Short Defense of the Written Thesis
ArticleWhy Blackbyrds Digital still delivers a written thesis at the start of every software engagement in the Philippines, even in the era of AI-generated everything.
Related terms.
Discovery Phase
Product & DeliveryA discovery phase is a short, paid engagement that precedes a build and produces the artefacts a build needs: a written scope, user flows, a technical approach, and an estimate grounded in something other than a guess.
Scope Creep
Product & DeliveryScope creep is the gradual expansion of a project’s requirements after the scope is agreed, usually through small additions that each seem too minor to renegotiate.
User Acceptance Testing (UAT)
Product & DeliveryUser acceptance testing is the stage where the people who will actually use a system verify it against the agreed requirements before launch, working through real scenarios on a staging environment.
Fixed-Scope vs Time-and-Materials
Product & DeliveryFixed-scope and time-and-materials are the two standard ways to price software work.
Scoping a project?
Reading definitions because you are scoping a project? Skip ahead and just ask.