2 Days: Visualising Software Architecture with the C4 Model
GOTO Copenhagen 2024

2 Days: Visualising Software Architecture with the C4 Model

Monday Sep 30
09:00 –
17:00
Tuesday Oct 1
09:00 –
17:00

In 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