Get Free Shipping on orders over $79
Simplifying Software Design : The Genius of Bureaucracies, or How Not-My-Job Sharpens Your Design - Alistair Cockburn

Simplifying Software Design

The Genius of Bureaucracies, or How Not-My-Job Sharpens Your Design

By: Alistair Cockburn

Paperback | 19 March 2026

At a Glance

Paperback


RRP $59.39

$54.75

or 4 interest-free payments of $13.69 with

 or 

Ships in 5 to 7 business days

Simplifying Software Design: The Genius of Bureaucracies, or How Not-My-Job Sharpens Your Design addresses a deceptively simple question at the heart of software development:

  • Where should this line of code go?

Every system is the accumulation of answers to that question. Each decision about responsibility, knowledge, and communication shapes whether a system remains understandable, maintainable, and adaptable-or becomes tangled and fragile.

In this book, international software design guru Dr Alistair Cockburn offers a practical answer using an unexpected metaphor: design your software the way you would design a bureaucracy!

While bureaucracies are often criticized, they excel at defining clear responsibilities, limiting who needs to know what, and structuring communication between roles. These same properties are essential for effective software design.

Two familiar human reflexes become precise design tools:

  • "Not my job" - keeps responsibilities sharply defined
  • "No need to know" - limits unnecessary dependencies

Using these principles, developers can decide where behavior belongs, reduce coupling, and create systems that remain clear as they grow.

Just as relevant at this time, they question arises: "How do we train AI systems to produce maintainable code?" It turns out that AI have read all our complaints about bureaucracies and understand "Not my job" and "No need to know" very well. These questions make for excellent dialog with them.

Building on responsibility-driven design (Ward Cunningham, Kent Beck, Rebecca Wirfs-Brock), the book presents a compact starter kit for software design. It introduces responsibility statements, scenario-based evaluation, and interaction diagrams as practical techniques for exploring and improving designs.

Cockburn also presents six design tests-Abstraction, Responsibility Alignment, Evolution,Communication Patterns, Data Connectedness, Data Variations-to help compare alternatives and reason about how a system will respond to change. Rather than defining a single "correct" design, the book focuses on how different designs support different futures.

These ideas are connected to familiar architectural styles, including Model-View-Controller and hexagonal architecture (ports and adapters), showing how responsibility and boundary management apply at every scale-from subsystems to individual classes.

Written as part of the Simplifying series, this book focuses on the small set of techniques that deliver the greatest practical value. It is accessible to newcomers while offering a clear framework for experienced developers and architects.

In an era of AI-assisted programming, where code can be generated rapidly, clear boundaries and responsibilities remain essential. These techniques help teams-and the tools they use-produce systems that are modular, understandable, and resilient over time.

Industry Reviews

What a synthesis, longstoryshorting the whole thing.

-- Ricardo Guzm¡n Velasco

I will never forget the design simplicity principles you taught me when we were developing the CMS for your website about 100 years ago. Any time, every time I introduced a constraint, dependency, or seemingly poetic code embellishment, you would slap my hand (figuratively): "Where did that requirement come from?", 'Why does that class need to know about that thing?', or "What's that thing doing there?" Timeless lessons.       

-- Nate Jones

As an agile coach I have been fighting bureaucracies for years. Thanks to this book, I finally understand the value of bureaucracy. Thank you, Alistair, for making me understand the intrinsic value of Not-my-job and No-need-to-know, both object oriented design concepts I knew and used before, yet never gave a name, and for that in many cases not really understood their power.

-- Yves Hanoulle

Loving this book. The content and style are amazing.

-- Kevin Steffensen

I wish someone had told me this a long time ago.       

-- Ricardo Guzm¡n Velasco

More in Object-Oriented Programming or OOP

Introduction to Statistical Computing and Visualization Using R - Megha  Rathi
Design Patterns : Elements of Reusable Object-Oriented Software - Erich Gamma
PHP, MySQL, & JavaScript All-In-One For Dummies : For Dummies - Richard Blum
Programming Rust : Fast, Safe Systems Development 2nd Edition - Jason Orendorff
Refactoring 2ed : Improving the Design of Existing Code - Martin Fowler
C++ For Dummies - Bradley L. Jones

RRP $60.95

$50.75

17%
OFF
C# Programming in easy steps : Master C# fundamentals! - Mike McGrath
Head First PHP & MySQL : A Brain-Friendly Guide - Lynn Beighley

RRP $104.75

$83.80

20%
OFF
C++ Primer - Stanley Lippman

Paperback

RRP $97.60

$76.75

21%
OFF
Effective Rust : 35 Specific Ways to Improve Your Rust Code - David Drysdale
Deep Learning with R, Third Edition - Tomasz Kalinowski
Reactive Programming with RxJava - Ben Christiansen

RRP $85.75

$68.60

20%
OFF