Kevlin Henney: Architecture with Agility
Why should you attend?
Every system has an architecture, whether accidental or intentional, and regardless of whether it was put in place by a nominated architect or whether it emerged from the decisions and discussions of a team. All too often the focus of what is often described as architecture is centered around a specific set of platform technologies, which forms only one part of the set of concerns an architecture should. And all too often architecture is seen as a separate concern from development process, whereas the two are intertwined — what you build is influenced by how you build it, and vice versa.
In this Masterclass you will look together with Kevlin Henney (editor of 97 Things Every Programmer Should Know) at the relationship between Agile processes and good architecture, taking in development process models, architectural styles, requirements techniques, sufficient modelling techniques, design patterns and testing practices.
Who is this Masterclass for?
Software architects and lead developers looking to broaden and sharpen their skills in the disciplines touched on by software architecture, not just specific technonlogies. In this masterclass you will:
-
Outline the relationship between development process and architecture.
-
Appreciate the roles and failure modes of testing, modelling and technology platforms.
-
Explore different architectural styles and design patterns.
-
Try out concepts and practices in a series of exercises.
This Masterclass will help you answer questions like the following:
Day 1
- What do we mean by software architecture?
- What is the relationship between development process and software architecture?
- How do agile and lean thinking relate to software architecture?
Day 2
- What are some of the properties of a good software architecture?
- How does organisational structure affect software architecture?
- How can software architecture be evolved and grown?
- How can we handle change and uncertainty?
Day 3
- What role can testing play in software architecture?
- What do we mean by legacy code and technical debt?
- How can we respond to and handle legacy?
-
Define scope of software architecture
-
Explore interaction of interruption of and progress
-
Identify consequences of intentional and accidental design decisions in attendee projects
- List risks and challenges in actual and example projects