Agile Architecture is a set of values, practices, and collaborations that support the active, evolutionary design and architecture of a system. This approach embraces the DevOps mindset, allowing the architecture of a system to evolve continuously over time, while simultaneously supporting the needs of current users. It avoids the overhead and delays associated with the start-stop-start nature and large-scale redesign inherent with phase-gate processes and Big Up Front Design (BUFD).
Agile architecture supports Agile development practices through collaboration, emergent design, intentional architecture, and design simplicity. Like Agile development practices, Agile architecture also enables designing for testability, deployability and releaseability. It is further supported by rapid prototyping, domain modelling, and decentralised innovation.
“While we must acknowledge emergence in design and system development, a little planning can avoid much waste.” —James O. Coplien, Lean Architecture
The architecture of a system can either accelerate or impede the ability to provide frequent, independent releases for the business to meet its objectives. Agile architects support business alignment by optimising the architecture to support the end-to-end value stream. This enables the business to achieve its goal of continually delivering ‘value in the shortest sustainable lead time’. Agile architects lead this process by supporting “just enough” architectural runway to support evolving business needs. They continually invest in legacy modernisation initiatives and know where to re factor to eliminate bottlenecks. They communicate the need for these ongoing technical objectives in clear business terms.
To support the continuous flow of value through the Continuous Delivery Pipeline, Agile architecture:
- Evolves over time while supporting needs of current users
- Avoids overhead and delays associated with phase-gate and BUFD- methods
- Ensures the ‘system always runs’
- Balances emergent design and intentionality
- Takes a systems view across the full value stream