Part I. A System of Thinking
This book is unabashedly about abstract thinking and reasoning. It describes practices, principles, tools, and ways of looking at your circumstances that increase your capacity for doing hard things. Software professionals are increasingly faced with relationally complex circumstances; these circumstances require systems thinking. Software is becoming systems of software. Here, you’ll find a system for thinking about systems.
We have been taught to think linearly. We need that skill to develop software. We also need to think nonlinearly and develop approaches that support us when our usual reductionistic approaches fail. As knowledge workers in the systems age, we are developing approaches that help us think about, and improve, the systems we design and deliver.
Our thinking generates the concepts that we rely on when designing our systems. When our concepts work together in harmony, supporting a system’s purpose, they have integrity. Fred Brooks says that “conceptual integrity is the most important consideration in systems design.” Without conceptual integrity, our software systems are built by “many good but independent and uncoordinated ideas.” Whether we recognize it or not, the coherence and interconnectedness of our concepts shape our technological systems.
To think in systems and create conceptual integrity, you need to become adept at shifting your perspective. Practices like learning, modeling with others, and discovering the root causes of ...
Get Learning Systems Thinking now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.