Back
John Ousterhout: A Philosophy of Software Design (Paperback, 2018, Yaknyam Press)

Designing software is about managing complexity

After reading "Clean Code" as a teenager, I always run into (experienced) people who were strongly opposed to its strict opproach. Although I heard that criticism, I never got a good explanation why that is, apart from "it's bloats the code". With taking about the depth of interfaces and how shallow interfaces add complexity, this books provides a framework to explain that point.

Designing software is about managing complexity, and this book is a great explanation of that, including red flags and guidelines to practically do it.

While I don't agree with every single point made, the book provides an useful consistent philosophy and practical advice. I recommend it to everyone who cares about the design of software.