John Ousterhout’s A Philosophy Of Software Design is one of my favourite books. Very short, well-articulated and pragmatic, Ousterhout manages to explain the rationale behind many practices we usually learn with experience, yet are often not able to articulate clearly. I’ll write a new, complete, review of the book one…