Software Architecture for Developers (Nov 20-21)
Register for this masterclass
Outcome
In this masterclass Simon Brown will provide you with a practical approach to software architecture; including technical leadership, communication and how to balance upfront design with agile approaches.
Why Attend?
The 2 Day Software Architecture for Developers masterclass led by Simon Brown, will provide you with a practical and pragmatic guide to modern software architecture. It will teach you the essence of software architecture and will help you understand the following:
- Why the software architecture role should include coding, coaching and collaboration
- The things that you really need to think about before coding
- How to visualize 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
Course Overview
Day 1: Architectural drivers, Software design exercise & Visualising software architecture
Architecture
- What is software architecture?
- Architecture vs design
- The importance of software architecture
Architectural drivers
- Requirements
- Quality attributes
- Constraints
- Principles
- Agility
- Software design exercise
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?
Day 2: Visualising software architecture, Documenting software architecture, Quantifying technical risk & Software architecture in the delivery process
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
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