Ultimately, just one fundamental metric matters when evaluating the competence of software architects: the ability to identify, assess and ultimately contain complexity.

PNW Snowpocalypse, 2021

Recently, I had the distinct pleasure to present once again for my hometown technology user group on a topic that is near and dear to my heart - Software Architecture as Complexity Containment.

From the Presentation

The Sources of Complexity

  • Technological Complexity
  • Integration Complexity
  • Organizational Complexity
  • Operational Complexity
  • Market Complexity

Complexity Containment Strategies

  • Identify Capabilities
  • Enforce Constraints
  • Clarify Communication
  • Commit to Vigilance

Additional Resources

Righting Software, by Juval Löwy (ISBN-13: 978-0136524038)

Exploring Requirements, by Gause and Weinberg (ISBN-13: 978-0932633132)

Software Fundamentals, Collected Papers by David Parnas (ISBN-13: 978-0201703696)

Simple Architectures for Complex Enterprises, by Roger Sessions (ISBN-13: 978-0735625785)


All mistakes are my own and not the responsibility of any authors or practitioners mentioned during the presentation.

  • When referring to a 7 node, acyclic graph, I stated that it allows for 5,040 combinations. This actually applies to the 7 node network with no constraints on connections between them.

Please contact me if you find any other errata from the presentation.

Be sure to Subscribe via RSS to keep up to date with the latest content!

If you liked this post, you can share it with your followers or follow me on Twitter!