Facilitating Software Architecture book cover showing a green female and a red male European White-Winged Crossbill.

About the Book

About the Author

Supporting Material

Community


Get the book (& more)

Bookstores

Amazon

O'Reilly Platform

Further Reading Around Facilitating Software Architecture

While there was nothing I could find that dealt solely, or even substantially, with the topic of architectural decisions, there were books which dealt with decisions more broadly, or on deciding in parallel disciplines. These included Joseph Bikart’s “The Art of Decision Making”, Daniel Kahneman’s “Thinking Fast and Slow” and, most substantially, the previously mentioned “The Principles of Product Development Flow” by Don Reinertsen. Alongside these, others provided additional color, light and shade. “Working Backwards” by Colin Bryar and Bill Carr was one such source, as was “The Art of Scalability” by Michael L. Abbot and Martin T. Fisher.

More general sources of inspiration when it comes to creativity in (technical) deciding, I have taken a lot from the TV show Halt and Catch Fire (All five series contained loads of great examples). I also found inspiration in the Netflix Series about Spotify, The Playlist. Books of technical history can also prove inspirational such as Where Wizards Stay Up Late by Katie Hafner and Matthew Lyon (about the creation of the internet), Michael A. Hiltik’s Dealers of Lightning (about Xerox PARC), Turing’s Cathedral by George Dyson (about the Institute for Advanced Study at Princeton), and Petzold’s Code (about the development of software and hardware in general)

Blog posts, especially engineering blogs by companies such as Netflix, Facebook, Github, LinkedIn, Spotify and Etsy are also incredibly inspirational. Conference talks can also contain a great deal of things to think about. My personal favorites are Adrian Cockroft’s, but I’ve also been inspired by technical breakdowns by Catie McCaffery, Alice Goldfuss and Valentina Servile (google them for their latest) and public post-mortem posts can also be incredibly insightful. Knowing why something worked is great, but knowing the challenges it overcame, including the downsides which resulted, and perhaps even how things ultimately failed are even more enlightening.

I’ve also been surprised to stumble across essays like famous film director, Alexander Mackenderick’s “A Technique for Having Ideas” in his book “On Film-Making” which is remarkably down to earth and practical (Step 1: Collecting Data. Step 2: Organizing the Data. Step 3: Incubating the Material. Step 4: Preserving the Spark.) There is also Brian Eno and Peter’s Schmidt’s card-based method for promoting creativity, Oblique Strategies. (You draw a card which has a challenge on it. For example: “What to increase? What to decrease?” and “Try faking it!”). There is even a mobile app.

The more general architectural works are also very inpiring. Christopher Alexander’s A Pattern Language, The Timeless Way of Building and Notes on the Synthesis of Form. There is also Gregor Hohpe’s The Software Architect Elevator.

As you pratice more and more collective architecture you will become increasingly aware of the sociotechnical systems around you. In order to understand and work with these effectively I strongly recommend Diana Montalion’s Learning Systems Thinking and Donella Meadow’s Thinking in Systems: A Primer. Books like Matthew Skelton and Manuel Pais’ Team Topologies also offer reams of information on how to make various systemic changes. If you really want to get deep you could even dip your toe in Modern Forms of Laissez Faire Organization by Donald W. de Guerre and Merrelyn Emery.

More generally the following books on agile software practices have been incrdibly useful to help me and others get the architecture work down into code: Jeff Patton’s User Story Mapping as well as User Stories Applied: For Agile Software Development by Mike Cohn. There is also Steve Freeman and Nat Pryce’s Growing Object-Oriented Software, Guided by Tests

With regards to strategy I’ve found Simon Wardleys Wardley Mapping blog posts to contain a lot of wisdom and also Holacracy: The New Management System for a Rapidly Changing World by Brian J Robertson; and (Henry Holt and Co, 2015). Additional thinking about strategy can be found in Enterprise Architecture as Strategy: Creating a Foundation for Business Execution by Jeanne W. Ross, Peter Weill, and David Robertson (Harvard Business Review Press, 2006), Open Group Agile Architecture sections on Strategy, and Good Strategy Bad Strategy: The Difference and Why It Matters by Richard P. Rumelt (Profile Books, 2011). Roger L. Martin’s article “The First Question to Ask of Any Strategy” is also enlightening.

More generally to support your decentralized architecture practice, I’d encourage you to take a look at Agile Retrospectives by Esther Derby and Diana Larsen but with a specific focus on the key aspects of empathy and honesty to really get down to underlying, often societal, problems that Sophia Katsaouni pulls out in her Newcrafts Paris 2024 talk “Bring Meaning back to your Retrospectives (No Matter Your Role)”.

Other tools I’ve used to great success have been many of the practices described in Evelyn van Kelle, Gien Verschatse, and Kenny Baas-Schwegler in their book Collaborative Software Design; specifically the chapters “The Influence of Ranking”, “The Impact and Opportunities of Cognitive Bias” and “Resistance and Conflict Resolution”. There is also a great deal in Jitske Kramer’s Jam Cultures that I had no space to fit in. The same goes for Turn the Ship Around! and the classic The Fifth Dicsipline: The Art and Practice of the Learning Organization by Peter M. Senge. Finally, I’ve had great support with Team Canvasses, and Heidi Helfand’s Dynamic Reteaming also has many great tips and tricks.

Finally, although its really hard to get a hold of, Patterns of Anarchy edited by Leonard Krimerman and Lewis Perry opened my mind to many things.