Architecting Systems. Concepts, Principles and Practice
What do the Wall Street "Flash Crash", the 2003 invasion of Iraq, and the community on the remote Scottish island of St Kilda, have in common? They're all complex systems that failed in unexpected ways because critical interdependencies weren't understood properly. Why do so many big projects overspend and over-run? They're managed as if they were merely complicated when in fact they are complex. They're planned as if everything was known at the start when in fact they involve high levels of uncertainty and risk. In a rapidly changing world, how do you plan for success and create adaptable, resilient, sustainable systems that will achieve their purpose without adverse unintended consequences? Based on the author's extensive experience as a practical engineer and thought-leader in the systems business, this book provides a highly readable synthesis of the foundations for architecting systems. Starting from a clear set of systems principles and insights into the nature of complexity, the "six step architecting process" will help you to unravel complexity and to architect systems of any type, scale and socio-technical mix. It's illustrated with numerous examples ranging from familiar domestic situations through software-dependent products and services to ultra-large-scale sociotechnical networks spanning the planet. This book is required reading for engineers, managers, clients and leaders of change faced with the challenges of developing systems for the 21st Century. It gives architecting teams and their stakeholders a common understanding of the why, the what, and the how of architecting systems fit for the future.