- Understand what agile architecture is (and is not)
- Explore characteristics of an agile architecture role
- Learn techniques for planning and bounding architecting activities
- Communicate architecture to diverse audiences: The basics of communicating architecture goals and vision
- Recognize and manage architectural debt
Two commonly heard phrases in agile development are “Let your architecture emerge” and “Always implement what you actually need, never what you think you might need.” However, complex software systems have lots of moving parts, dependencies, challenges, and unknowns. Counting on the software architecture to properly evolve without any planning or design investigations can be risky. On agile projects, software architecture activities should not be pie-in-the-sky experiments that slow down the delivery of working code. Yet producing working code based on a shaky architecture isn’t sustainable either.
Effectively Define and Refine Software Architecture
Johanna Rothman and Rebecca Wirfs-Brock provide a hands-on experience applying practices and techniques for effectively defining (and refining) software architecture that support agile values. They focus on methods for balancing software architecture activities with other ongoing development efforts. Learn tactics for creating just enough architecture at the most opportune time.
Who Should Attend?
Enterprise architects, product architects, technical architects, program managers, testers, developers, team leaders, or any interdisciplinary product or cross-functional team working in an agile way.
2-Day Course Outline
Introduction
Agile values
Qualities of good architecture
What is different about architecture on agile projects?
Agile Architecture for Small Projects
Patterns for incremental architecture
Rhythms of development
Design spikes
The Architecture Landscape for an Agile Project
Understanding project and system complexities
Implementation and development support
Operating environment
Release environment
Stakeholder values and needs
Techniques and Practices for Projects and Programs
Defining and using a landing zone
Feature roadmaps
Identifying risks and risk horizons
Critical decisions and “responsible” moments
Alternatives for fitting architecture activities into an agile project: backlogs, architecture tasks, architecture work queues, design spikes
Bounded design investigations and prototyping
Defining acceptance criteria for architecture qualities
Monitoring technical and architectural debt
What Architects Do
Wayfinding
Balance, optimize, and align stakeholder goals
Communicate architecture to diverse audiences
Keep the system “soft” and able to absorb changes
Identify architectural risks
Develop prototypes and common practices
Sell design approaches to decision-makers
Mitigate technical debt






