Software Architecture for Developers

The workshop is aimed at software developers and architects, and is a guide to modern software architecture that's pragmatic rather than academic, and lightweight rather than "enterprisey".

What you'll learn

  • An introduction to what software architecture is.
  • The importance of software architecture
  • Architectural drivers
    • Requirements
    • Quality attributes
    • Constraints
    • Principles
    • Agility
  • A definition of the software architecture role
    • Technical leadership and the different leadership styles
    • Technical skills
    • Soft skills
    • Software architecture and coding
  • How to visualise software architecture
    • 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
  • C4 model - supplementary diagrams
    • C4 and UML
    • System Landscape diagrams
    • Dynamic diagrams
    • Deployment diagrams
  • Documenting software architecture
    • The importance of documentation
  • Software architecture in the delivery process
    • Quantifying and prioritising risk
    • Identifying risk with risk-storming
    • The conflict between architure and agile
    • Approaching software architecture in a pragmatic, lightweight way
    • How much up front design is enough?

About Simon Brown

Simon is an independent consultant specializing in software architecture, and the author of Software Architecture for Developers (a developer-friendly guide to software architecture, technical leadership and the balance with agility).

He’s also the creator of the C4 software architecture model and the founder of Structurizr, which is a collection of open source and commercial tooling to help software teams visualise, document and explore their software architecture.