SOLD OUT 2 Days: Visualising Software Architecture with the C4 Model
GOTO Aarhus 2022In this Masterclass Simon Brown (author of Software Architecture for Developers) will give you an introduction to a pragmatic and practical approach to software architecture; including technical leadership, communication and how to balance upfront design with agile approaches. Software Architecture for Developers is a practical and pragmatic guide to modern software architecture, specifically aimed at software developers.
This Masterclass will cover:
- The essence of software architecture
 - Why the software architecture role should include coding, coaching and collaboration
 - The things that you really need to think about before coding
 - How to visualise your software architecture using the C4 model
 - A lightweight approach to documenting your software
 - Why there is no conflict between agile and architecture
 - What "just enough" up front design means
 - How to identify risks with risk-storming
 
AGENDA - DAY 1
Introductions
Architecture
- What is software architecture?
 - Architecture vs design
 - The importance of software architecture
 
Architectural drivers
- Requirements
 - Quality attributes
 - Constraints
 - Principles
 - Agility
 
Software design exercise
Lunch
Review and feedback
- Does the solution satisfy the architectural drivers?
 
Architects
- A definition of the software architecture role
 - Technical leadership and the different leadership styles
 - Technical skills
 - Soft skills
 - Software architecture and coding
 
Visualising software architecture
- Do you understand the diagrams?
 
AGENDA - DAY 2
Visualising software architecture
- Diagramming anti-patterns and typical problems
 - The "model-code gap"
 - 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
 
Lunch
Documenting software architecture
- The importance of documentation
 - Writing lightweight supplementary documentation using a "software guidebook" or arc42
 
Managing technical risk
- Quantifying and prioritising risk
 - Identifying risk with risk-storming
 
Software architecture in the delivery process
- Waterfall, RUP, agile, etc
 - The conflict between architure and agile
 - Approaching software architecture in a pragmatic, lightweight way
 - How much up front design is enough?
 
Discussion, questions and wrap-up
Are there any prerequisites?
Some experience building software; no laptops needed