Simon is an independent software development consultant specialising in software architecture; specifically technical leadership, communication and lightweight, pragmatic approaches to software architecture. He is the author of two books about software architecture; “Software Architecture for Developers” (a developer-friendly guide to software architecture, technical leadership and the balance with agility) and “The Art of Visualising Software Architecture” (a guide to communicating software architecture with sketches, diagrams and models). Simon is also the creator of the “C4 software architecture model” and the founder of Structurizr, a SaaS product to create web-based software architecture diagrams using code.
Software architecture diagrams are a fairly common sight within the teams that I visit around the world. Some are hand-drawn collections of boxes and lines on a whiteboard, others are Microsoft Visio-style block diagrams on a wiki. The one thing that unites most of these diagrams is that they are abstract, out of date and typically don’t reflect the code. It’s 2016 though, why are most software development teams still hand-drawing software architecture diagrams using general purpose diagramming tools such as Visio? Not even the building industry does this! This article explores this topic and presents a simple approach for creating software architecture diagrams using code, so that the resulting diagrams actually reflect the code.