A Philosophy of Software Design
- FINISHED
- Finished October 2018
- First published 2018
Argues that the main job in software design is managing complexity. Ousterhout recommends deep modules with simple interfaces and gives rules for comments and naming.