search menu icon-carat-right cmu-wordmark

Software Architecture as Code

April 2015 Presentation
Simon Brown (Coding the Architecture)

This session looks at how to resolve the conflict between software architecture and code through architecturally evident coding styles and architecture models as code.


Software Engineering Institute

This presentation was created for a conference series or symposium and does not necessarily reflect the positions and views of the Software Engineering Institute.


Over the past few years, I’ve been distilling software architecture down to its essence, helping organizations adopt a lightweight style of software architecture that complements agile approaches. This includes doing "just enough" up-front design to understand the significant structural elements of the software, making some lightweight sketches to communicate that vision to the team, identifying the highest priority risks, and mitigating them with concrete experiments. Software architecture is inherently about technical leadership, stacking the odds of success in your favor and ensuring that everybody is heading in the same direction.

But it’s 2015 and, with so much technology at our disposal, we’re still manually drawing software architecture diagrams in tools like Microsoft Visio. Furthermore, these diagrams often don’t reflect the implementation in code, and vice versa. This session will look at why this happens and how to resolve the conflict between software architecture and code through the use of architecturally evident coding styles and the representation of software architecture models as code.