Summary
It’s very likely that the majority of the software architecture diagrams you’ve seen are a confused mess of boxes and lines. 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 session explores the visual communication of software architecture and is based upon over a decade of Simon’s experiences working with software development teams large and small across the globe. He’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 using the C4 model, which he 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.
For who?
This workshop is primarily for software developers and architects, but anybody involved with software development will gain some benefit.
Agenda
- Introduction
- Software diagramming exercise 1
- Review and feedback
Diagramming anti-patterns and typical problems
The "model-code gap"
- C4 model - core diagrams
Abstractions and creating a shared vocabulary with a ubiquitous language
An overview of the C4 model
Notation and tips for better diagrams
System Context diagrams
Container diagrams
Component diagrams
- Software diagramming exercise 2
- C4 model - supplementary diagrams
C4 and UML
System Landscape diagrams
Dynamic diagrams
Deployment diagrams
Frequently asked questions
- Tooling
Diagrams vs models
Structurizr DSL demo
- Discussion, questions and wrap-up
Requirements
No prerequisites.