Simon Brown: Software Architecture for Developers

Software Architecture for Developers:

Software Architecture for Developers is a practical and pragmatic guide to modern software architecture, specifically aimed at software developers. You'll learn:

    • 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.

Learning outcomes


This 2-day workshop 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.

Target audience


Software developers and architects; all levels of experience.

Pre-requisites


Some experience building software; no laptops needed.

Timings


09:00-17:00


See Simon in Action


Agenda - Day 1

  • [09:00 - 09:15] Introductions
  • [09:15 - 10:00] Architecture
    • What is software architecture?
    • Architecture vs design
    • The importance of software architecture
  • [10:00 - 11:00] Architectural drivers
    • Requirements
    • Quality attributes
    • Constraints
    • Principles
    • Agility
  • [11:00 - 12:30] Software design exercise
  • [12:30 - 13:30] Lunch
  • [13:30 - 14:30] Review and feedback
    • Does the solution satisfy the architectural drivers?
  • [14:30 - 16:00] Architects
    • A definition of the software architecture role
    • Technical leadership and the different leadership styles
    • Technical skills
    • Soft skills
    • Software architecture and coding
  • [16:00 - 17:00] Visualising software architecture
    • Do you understand the diagrams?

Agenda - Day 2

  • [09:00 - 12:30] 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
  • [12:30 - 13:30] Lunch
  • [13:30 - 14:30] Documenting software architecture
    • The importance of documentation
    • Writing lightweight supplementary documentation using a "software guidebook" or arc42
  • [14:30 - 15:30] Managing technical risk
    • Quantifying and prioritising risk
    • Identifying risk with risk-storming
  • [15:30 - 16:30] 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?
  • [16:30 - 17:00] Discussion, questions and wrap-up



About Simon Brown

 Simon is a 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.

You can find Simon on Twitter at @simonbrown or on LinkedIn.  

Upcoming training dates