Architect Bookshelf: Systems Thinking - Managing Complexity and Chaos

by on November 7, 2008

Systems Thinking - Managing Complexity and Chaos by Jamshid Gharajedaghi

This book is a cornucopia of ideas, patterns, and solutions for looking at complex systems and creating order and structure throughout them. It's a book about organizing businesses and people but applies equally well to software systems, especially those built through domain driven design principles. It's a dense read but full if mind-blowing concepts. It's is a business book but I'm classifying it as a architecture and design book for one good reason - it has the best description of architecture that I've ever encountered.

Here's how he describes it:

Architecture is a general description of a system. It identifies its vital functions, major elements and their relationships, and the organizational processes that define the nature of the whole. An architecture consists of a set of distinct but interrelated platforms (views). Each platform (view) represents a dimension of the system signifying a unique context, output, and mode of behavior controlled by a predefined set of performance criteria and measures. These dimensions and their complementary processes are individually necessary and collectively sufficient to give rise to a viable system capable of realizing its desired specifications.

I could do an entire talk on this definition. Architecture boils down to two things: 1) determining the minimal but necessary set of views you need to define the design of a system (e.g. logical, physical, deployment) and 2) designing the system in question through models for each of those views.



Comments

November 13. 2008 15:48

Shengbo Liu

Nice booklist!

Could you please also recommend a couple of Software Engineering books?

thanks,

Shengbo

Shengbo Liu

November 18. 2008 11:57

Clint Edmonson

Sure will. This is a continuing series and I've been pacing myself with these reviews. Smile

Clint Edmonson