A Philosophy of Software Design

by John Ousterhout

John Ousterhout presents software design as the disciplined management of complexity, with practical principles for creating deep modules and clear abstractions.

Yaknyam Press · 2021 · 196 pages · ISBN 9781732102217

Topics: Design Theory, Systems Thinking, Professional Practice

[ Purchase this book ]
A Philosophy of Software Design book cover

Why it matters

Ousterhout connects the quality of a software system to the way its complexity is divided and hidden. That makes the book relevant beyond programming: it is a precise study of abstraction, interfaces, information hiding, and the long-term consequences of design decisions.

Best for

Best for engineers, technical product designers, and design-minded leaders who work on systems that must evolve. The second edition is concise enough to use as a shared vocabulary during architecture discussions and code review.

What you’ll learn

You will learn to recognize shallow modules, complexity leakage, temporal decomposition, and other warning signs of fragile design. The central lesson is to invest continuously in deep, general-purpose abstractions that make the rest of a system easier to understand.

Related books