Discover the real problem
Begin with the desired change, the user experiencing the problem and the constraints surrounding it. Avoid naming features too early. The goal of discovery is to understand what the product must accomplish before deciding how it should look.
Define the smallest coherent product
Choose the primary user, core promise and one critical flow. Remove anything that does not need to exist for that flow to deliver value. This protects the build from becoming an inventory of attractive features.
Specify observable behavior
Translate intent into behavior a builder can implement and a reviewer can test. “Make onboarding smooth” is subjective. “A new buyer can complete checkout, verify access and reach the correct first-use state without manual intervention” is testable.
Architect only as far as the next safe build requires
You need enough architecture to avoid predictable rework: data ownership, authentication boundaries, external services, deployment environment and the major interfaces between them. You do not need to design a hypothetical five-year platform before the first useful version exists.
Build in vertical slices
A vertical slice crosses the parts of the system required for one user outcome. It is more useful than building every screen first, then every API, then every database table. Each slice gives you a real product behavior to verify.
Prefer: one complete working path over five impressive but disconnected surfaces.
Verify before you advance
Verification should answer a simple question: did the change create the intended behavior without breaking approved behavior around it?
- Run the relevant automated checks.
- Inspect the exact deployed Preview.
- Exercise the user story on the devices that matter.
- Check the server/data boundary for stateful features.
- Record the exact known-good state.
Advance from evidence, not excitement
Once the increment is proven, choose the next constraint or missing capability that most directly moves the product toward the outcome. Repeat until the product is coherent enough to ship.
IDEA ↓ PLAN ↓ BUILD ↓ GOVERN ↓ TEST ↓ SHIP ↓ SELL ↓ IMPROVE