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)

Errata

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.