Complete gig history
It's very likely that most software architecture diagrams you've seen are a confused mess of boxes and arrows. Following the publication of the Manifesto for Agile Software Development in 2001, teams have abandoned UML, discarded the concept of modelling, and instead place a heavy reliance on conversations centered around incoherent whiteboard diagrams or shallow "Marketecture" diagrams created with Visio. Moving fast and being agile requires good communication, yet software development teams struggle with this fundamental skill. A good set of software architecture diagrams are priceless for aligning a team around a shared vision, and for getting new-joiners productive fast. This talk explores the visual communication of software architecture, and is based upon years of experience working with software development teams large and small across the globe. We'll look at what is commonplace today, the importance of creating a shared vocabulary, diagram notation, and the value of creating a lightweight model to describe your software system. The content is based upon the "C4 model", which I created as a way to help software development teams describe and communicate software architecture, both during up-front design sessions and when retrospectively documenting an existing codebase. It's a way to create maps of your code, at various levels of detail, allowing you to tell different stories to different audiences.
The software development industry has made huge leaps in recent years, yet software development teams are often more chaotic than they are self-organising, with the resulting code being more of a mess than was perhaps anticipated. Successful software products aren't just about good code, and sometimes you need to step away from the IDE for a few moments to see the bigger picture. This session is about that bigger picture and is aimed at software developers who want to learn more about software architecture, technical leadership, and the balance with agility. This talk will debunk some of the common myths as we look at five things every developer should know about software architecture - a guide to modern software architecture that's pragmatic rather than academic and lightweight rather than "enterprisey"
"Diagrams as code", as featured on the ThoughtWorks Tech Radar, is becoming a popular way to create software architecture diagrams for inclusion in long-lived documentation. The benefits of creating diagrams from text are well understood - text is version controllable, easy to diff, easy to integrate into build pipelines, and automatic layout facilities allow authors to focus on content. The majority of these tools (e.g. PlantUML and Mermaid) are focussed on diagramming though, and require you to create one text file per diagram, with only a limited ability to reuse diagram elements across multiple diagrams. At scale, this causes maintenance problems, and leads to inconsistencies between diagrams. This talk will introduce and demonstrate the open source Structurizr DSL - a way to create a model of your software architecture using a textual DSL that's specifically targeted towards the C4 model. We'll also see how the DSL separates content from presentation, allowing you to render your diagrams with a number of tools, which in turn offers some answers for the tricky question of how to use the C4 model at scale. SIMON BROWN Simon is an independent consultant specialising in software architecture. He is the author of “Software Architecture for Developers” (a developer-friendly guide to software architecture, technical leadership and the balance with agility), the creator of the C4 model for visualising software architecture, and the creator of the Structurizr tooling. Simon is a regular speaker at international software development conferences, and travels the world to help organisations visualise their software architecture.