The Software Architect Elevator
by Gregor Hohpe
Copyright 2020 Gregor Hohpe. All rights reserved.
Printed in the United States of America.
Published by OReilly Media, Inc. , 1005 Gravenstein Highway North, Sebastopol, CA 95472.
OReilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://oreilly.com). For more information, contact our corporate/institutional sales department: 800-998-9938 or corporate@oreilly.com .
- Acquisitions Editors: Ryan Shaw,
Melissa Duffield - Development Editor: Melissa Potter
- Production Editor: Deborah Baker
- Copyeditor: Octal Publishing, LLC
- Proofreaders: Kim Wimpsett, Justin Billing
- Indexer: Judith McConville
- Cover Design: Randy Comer
- Interior Designer: Monica Kamsvaag
- Illustrators: Rebecca Demarest, Jose Marzan Jr.
- April 2020: First Edition
Revision History for the First Edition
- 2020-04-07: First Release
See http://oreilly.com/catalog/errata.csp?isbn=9781492077541 for release details.
The OReilly logo is a registered trademark of OReilly Media, Inc. The Software Architect Elevator, the cover image, and related trade dress are trademarks of OReilly Media, Inc.
The views expressed in this work are those of the author, and do not represent the publishers views. While the publisher and the author have used good faith efforts to ensure that the information and instructions contained in this work are accurate, the publisher and the author disclaim all responsibility for errors or omissions, including without limitation responsibility for damages resulting from the use of or reliance on this work. Use of the information and instructions contained in this work is at your own risk. If any code samples or other technology this work contains or describes is subject to open source licenses or the intellectual property rights of others, it is your responsibility to ensure that your use thereof complies with such licenses and/or rights.
978-1-492-07754-1
[LSI]
Foreword by Simon Brown
My aspiration to become a software architect stemmed from my interest in the technical side of software design. I really enjoy discussions about how we can best use technology to solve a problem, and how to create codebases that are highly modular, well-structured, and easy to work with.
What nobody tells you though, is that these technical aspects are just one part of the architecture puzzle. Its not just about technology and designing software. Its about designing software and solving problems within a specific organizational context, and being aware of whats happening around you, so that you can successfully navigate and influence that context where necessary. Its crucial, therefore, that architects realize they need to communicate and influence at different levels, with different audiences, both inside and outside of their immediate team environment.
As an industry, however, we do a relatively poor job teaching software developers how to move into software architecture roles, let alone providing help for those who are currently in such a role. This is especially true for the nontechnical aspects. A quick browse of your favorite bookstore will reveal a plethora of books about software architecture, architectural styles, architectural patterns, DevOps, automation, enterprise architecture, Lean, Agile, and so on. Youll find far fewer books related to people and communication. And its even rarer to find a single book that covers all of these topics.
The Software Architect Elevator fills this gap by discussing an architects role from a broader set of perspectives than usual. It will teach you how to avoid the traditional, somewhat dysfunctional business versus IT mindset, how to see the bigger picture to map and influence the organizational landscape, how to make effective decisions, how to deal with vendors, and how to communicate across all levels of an organization. All of this is essential for those who want to be successful in their role as an architect.
References to additional reading complement the practical tips and techniques presented in the book. Many of the relatable stories will, unfortunately, sound far too familiar! Although Gregors stories will relate more to people working in larger organizations with a traditional IT function, many of them are equally applicable to the newer wave of digital companies. Ive been surprised to see some of these situations play out in such organizations, too!
In summary, this is a fabulous book for current and aspiring architects, going beyond what you will find in other books on the subject. Its a great way to fast-track the collection of tools in your architecture toolbox. I thoroughly recommend this book to aspiring software architects and CTOs alike. Whether youre looking to broaden your skills and get a feel for what architecture is all about, or youve been tasked with improving organizational productivity and performance, theres something here for everybody.
Simon Brown, author of Software Architecture for Developers
Foreword by David Knott
I remember the first time I was asked to form an architecture team within an IT function. I didnt know what it meant, but thought it sounded cool, and was confident that I could figure it out. That confidence lasted about five minutes, until a team member asked whether we were going to be technology architects or enterprise architects, and I realized that I didnt know the difference!
Twenty years later, I am privileged to be chief architect of a global organization, and although I still havent found a perfect job description for architects, I have learned that being comfortable with ambiguity is one of the most important attributes of a good architectasking awkward questions, as my team member illustrated, being another!
This book will help you understand what being an architect is like by painting a vivid picture of an architects life and mission in the current phase of the information technology revolution. Riding the architecture elevator is how my team and I spend our time: racing from one part of our organization to another, connecting, explaining, questioning, and trying to make good decisions about complex systems with imperfect information. The elevator takes us from code to business strategy and back again, all within the same day.
Architecture has been intermittently in and out of fashion within enterprise technology, and architects are sometimes accused of not making anything. I believe that architects make two things that are of vital importance and in short supply: they make sense and they make decisions. Whenever architects help their organizations understand a world that is increasingly difficult to grasp, figure out what decisions need to be taken, and help take those decisions in a rational way at the right time, then they have had a good day at the office. And, as this book explains, if youre not taking meaningful decisions (see ), making them explicit, and helping people understand them, youre not doing architecture.
However, these are difficult skills to master. Humans have been shown to be notoriously bad at understanding complexity and at making good decisions with limited information. Architects can help themselves and their companies by adopting techniques and ways of thinking which have been won through years of experience. They can create understanding by making sure that they turn learning curves into ramps rather than cliffs and can make better decisions by adopting the language of the market (see ).
One of the reasons that architecture has been in and out of fashion is that what organizations need from architects has changed. At many points in my career, the organizations I worked for believed that they wanted me to define their current state and future state, and to figure out the path between them. This was an understandable belief: it seems reasonable to want to know where we are, where we want to go, and how we are going to get there. But it was also based on a static view of the world, in which all change was deviation from a steady state.