Software Architecture for Developers

On-site Masterclass
Simon Brown

Simon Brown

Creator of the famous C4 model, author

Why should you attend?

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

Would you like to join as a group? - Contact us here

View all events

here