Writing an SRS — From PRD to Contract-Grade Spec
When a PRD isn't enough — how to write a Software Requirements Specification that banks, regulators and procurement will sign.
- Step 01
Why an SRS exists
A PRD is a product team's working doc. An SRS is a contract artifact. Banks, central banks, defense and large enterprises will not sign an SoW without one. Its job is to remove ambiguity — every requirement is testable, traceable, and uniquely numbered.
- Step 02
Structure (IEEE 830 in plain English)
- Introduction — purpose, scope, definitions, references.
- Overall description — product perspective, user classes, operating environment, constraints, assumptions.
- Functional requirements — numbered, each with a unique ID (FR-001…).
- Non-functional requirements — performance, security, compliance, availability (NFR-001…).
- External interfaces — UI, hardware, software, comms.
- Data model — entities, relationships, retention.
- Traceability matrix — every requirement maps to a test case.
- Step 03
Writing a good functional requirement
Use "shall." Always. Use it once per requirement. One verb, one object, one condition.
FR-014: The system shall lock a user account after 5 consecutive failed login attempts within a 15-minute window. FR-015: The system shall send an email notification to the account holder within 60 seconds of a lock event.Bad: "The system should be secure and lock accounts when needed." (Untestable. No verb. No threshold.)
- Step 04
Non-functional requirements with numbers
NFRs without numbers are wishes. Always include a metric and a measurement method.
NFR-007 (Performance): 95th percentile API response time for POST /transactions shall be <= 400ms under 500 RPS sustained load, measured with k6 in the staging environment. NFR-012 (Availability): The platform shall maintain 99.95% monthly uptime, excluding scheduled maintenance windows announced 7 days in advance. - Step 05
Compliance requirements (FinTech-specific)
Reference the regulation by section. "PSD2-compliant" is not a requirement; "Strong Customer Authentication per PSD2 RTS Article 4" is.
Always include: data residency, retention period, audit log scope, PII handling, and incident reporting timelines.
- Step 06
Traceability matrix
A spreadsheet. Columns: Requirement ID · Source (stakeholder/regulator) · Design doc reference · Test case ID · Status. If a row doesn't have a test case, the requirement isn't done.
- Step 07
Versioning and sign-off
Every SRS has a revision history table on page 2 and a sign-off page at the end. Sign-off is per-section, not just the whole doc — it lets you ship in slices.