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.
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.
Software developers and architects; all levels of experience.
Some experience building software; no laptops needed.
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
- Quality attributes
- [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.