DEV Community

Best Developer Books
Best Developer Books

Posted on

A Philosophy of Software Design — Review and Summary for Developers

John Ousterhout's short, opinionated book argues that the fundamental challenge of software design is managing complexity. He introduces the concept of "deep modules" — modules with simple interfaces that hide significant implementation complexity — as the primary tool for building maintainable software.

The book challenges some popular wisdom: Ousterhout argues that small methods aren't always better, that comments are more valuable than most developers think, and that "clean code" principles sometimes increase complexity rather than reducing it.

At under 200 pages, every sentence earns its place. Key topics include information hiding, interface design, tactical vs. strategic programming, and how to recognize and reduce complexity.

My Review

The most thought-provoking software design book I've read. Ousterhout's "deep vs. shallow modules" framework fundamentally changed how I think about API design.

The controversial takes are the most valuable parts. His argument against tiny methods challenges Clean Code orthodoxy with a compelling alternative: optimize for the reader's cognitive load, not arbitrary line counts.

Who should read it: Every developer with 2+ years of experience. At 196 pages, you can read it in a weekend.

Skip if: You want concrete recipes. This book changes how you think about design; it doesn't give you step-by-step patterns.

Book Details

Detail Info
Author John Ousterhout
Pages 196
Year 2021
Category Software Craft

Get A Philosophy of Software Design on Amazon


Related Reading

Top comments (0)