- Functional requirements
- Technical constraints & dependencies
- Data & integration mapping
- Acceptance criteria
- Effort estimation & phasing
- Functional requirements
We document what the software needs to do, from the user's perspective. Not in abstract feature lists, but as specific workflows and behaviours that can be designed, built, and tested against.
Every requirement is tied back to a business goal. If we can't explain why something needs to exist, it gets challenged. This keeps scope honest and makes prioritisation much easier when trade-offs come up later.
- Technical constraints & dependencies
Every project operates within constraints: existing systems that need to integrate, infrastructure that's already in place, compliance standards that must be met, team capabilities that shape what's realistic.
We map these out early because they directly influence the technical approach. A requirement that sounds simple can become complex when it needs to work with a legacy API or meet specific security standards. Better to know that now than during sprint three.
- Data & integration mapping
Most applications don't exist in isolation. They pull data from other systems, push updates to third-party services, or need to work alongside tools your team already uses.
We identify every integration point, document what data moves where, and flag anything that could cause problems — rate limits, authentication requirements, data format mismatches, systems with poor documentation. This is where projects frequently hit unexpected delays, so we give it proper attention upfront.
- Acceptance criteria
Every requirement gets clear acceptance criteria: specific, testable conditions that define when something is done. Not "the search should be fast" but "search results return within 200 milliseconds for queries up to 10,000 records."
This protects everyone. You know exactly what you're getting. We know exactly what we're building. And when it comes to sign-off, there's no debate about whether a feature meets the brief.
- Effort estimation & phasing
Once requirements are defined and the technical approach is clear, we estimate the effort involved and break the work into sensible phases. Each phase delivers working software, not just progress reports.
Phasing lets you see results early, adjust priorities as you learn more, and manage cash flow around meaningful milestones rather than paying for months of work before seeing anything tangible.

