# Summary
# The six stages and what they produce
1. Discovery and Strategy
Discovery answers: what problem is worth solving, and how will we know it is solved? The useful outputs are concrete and short:
- A specific business outcome, stated numerically where possible.
- The user groups and the tasks each must accomplish.
- Constraints (budget, deadline, compliance, legacy systems).
- Explicit out-of-scope items for version one.
The out-of-scope list is a control mechanism: it prevents a three-month plan turning into nine months by default.
2. Design and Prototyping
3. Architecture
Architecture makes decisions that are expensive to reverse. The critical choices to document and decide early are:
- Data model: how core entities relate (future limits usually trace here).
- Service boundaries: what is a single system versus multiple services and how they communicate.
- Authentication and permissions: who can do what, designed in, not bolted on.
- Integration points: external systems and expected behavior when they fail.
4. Development and Testing
Build iteratively with visible progress: short cycles that deliver working increments. Effective practices at this stage include:
- Deliverable working increments rather than percent-complete reports.
- Automated tests written alongside the features, not as an afterthought.
- Routine code review as part of the workflow.
- A staging environment similar enough to production to be trustworthy.
Testing often gets cut under deadline pressure and is the decision most often regretted. Tests enable safe later change.
5. Integration and Launch
Most systems interact with CRMs, payment providers, ERPs, or internal tools. Integration is a common source of timeline slips because third-party behaviour is discovered during integration. Practical actions:
- Budget time and cost for integrations.
- Migrate data early and validate migrations at least twice.
Monitoring lets you detect issues internally before customers report them.
6. Support and Evolution
The launched system is a first version. Real usage reveals which features matter, which are ignored, and where performance degrades. Plan and budget for support, keep staff with build context available, and treat the initial months after launch as part of the project. Clean code and good practices during build make this phase far less painful.
# Practical checklist for teams and buyers
- Require a discovery artifact that includes a numeric success metric and scope boundaries.
- Insist on clickable prototypes before development starts.
- Document the data model and integration points in architecture reviews.
- Expect automated tests, code review, and a staging environment as part of delivery.
- Allocate time for integrations and a phased launch with active monitoring.
- Reserve budget and staffing for post-launch support and iterative improvement.