The problem
Start with the functional requirements: what should users be able to do?
How an attempt works
- Functional requirements
- Non-functional requirements
- Core entities
- API
- High-level design, one step for each requirement
- Deep dives into what goes wrong once it is live
Each step gets feedback before you move on. Suggested times are a guide, not a deadline.