- Avoid, at all costs, arriving at a scenario where the ground-up rewrite starts to look attractive
- Aim to be 90% done in 50% of the available time
- Automate good practice
- Think about pathological data
- There is usually a simpler way to write it
- Write code to be testable
- It is insufficient for code to be provably correct; it should be obviously, visibly, trivially correct
![](https://www.pixelsham.com/wp-content/uploads/2025/02/developerphilosophy.jpg)