Make It Work, Make It Right, Make It Fast
Separate correctness, design quality, and performance into sequential phases:
- Get a working solution for the common case
- Refactor for clarity, handle edge cases, clean up design
- Optimize only what measurement proves is slow
Never skip phase 2 to jump to phase 3.