Guide
What a software specification should contain: a checklist for agencies
A checklist of what a specification for a client app should cover — screens, behaviour, data, server operations, quality requirements and open questions — so developers can build without guessing.
Updated · By the Throughplan team
What a specification is for
A specification is the agreement between what the client expects and what developers build. A good one lets a developer who was not in the meetings build the right thing, and lets the client check that what was built is what they asked for.
It does not have to be long. It has to be complete enough that nobody has to guess. Use the checklist below to find what is missing before the specification is handed over.
Behaviour and acceptance criteria
For each screen, describe what it does in a way that can be tested.
- Required fields and their validation rules.
- What happens on success, and on each kind of failure.
- Limits such as time windows, quotas or maximum file sizes.
- Acceptance criteria that someone can check: when this happens, the app does that.
Data model
- The entities the app stores, and their fields.
- How the entities relate to each other.
- Who owns each record, and who may change it.
- What has to be kept, archived or deleted, and when.
Server operations and integrations
- The operations the frontend needs from the server — the API endpoints.
- Who may call each operation, and how they sign in.
- External services such as payments, email, maps or identity providers.
- Background jobs and the notifications the app sends.
Security, privacy and quality requirements
- The personal data the app processes, and why it needs it.
- Expected load and response times, where they matter.
- Supported devices, browsers and languages.
- Accessibility requirements.
Open questions, assumptions and exclusions
Every specification has gaps. Mark them instead of hiding them.
- Assumptions you made that the client still has to confirm.
- Questions that are waiting for an answer.
- What is explicitly out of scope for this phase.
Keep it current
A specification written once in a document goes out of date with the first change request. Tie it to the plan it describes, keep its versions, and compare them when the scope changes, so that everyone works from the same one.
How Throughplan writes the specification
Throughplan writes the frontend, backend and database specification from the project’s screens and data, together with the findings of its review agents. Each finding becomes a requirement the specification has to answer.
When the wireframe changes, the specification is marked out of date until it is written again, so you always know whether you are reading the current version.