Planning
Before writing code, understanding what the system has to solve.
- Requirements gathered with the people who use the system daily
- Architecture and data modelling meant to last years, not months
- Scope, timeline and acceptance criteria agreed in writing
- Honest estimates, with the risks stated up front