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.