While we must acknowledge emergence in design and system development, a little planning can avoid much waste.
—James Coplien, Lean Architecture
The Architectural Runway consists of the existing code, components, and technical infrastructure needed to implement near-term features without excessive redesign and delay.
Architectural Runway supports the continuous flow of value through the Continuous Delivery Pipeline, providing the necessary technical foundation for developing business initiatives and implementing new Features and/or Capabilities. The architectural runway is one of the primary tools used to implement the Framework’s Agile Architecture strategy.
Since the development of new features and capabilities consumes the architectural runway, continual investment must be made to extend it by implementing Enablers. Some enablers address shortcomings with the current Solution, such as improving the performance or User Experience. Others provide foundational capabilities that will be used to support future functionality.
Agile development avoids Big Design Up-front (BDUF) and replaces it with a simple belief that “the best architectures, requirements, and designs emerge from self-organizing teams .” This yields the practice of emergent design—the process of discovering and extending the architecture only as necessary to implement and validate the next increment of functionality.
However, organizations must respond simultaneously to new business challenges with larger-scale architectural initiatives that require some intentionality and planning. As a result, emergent design alone cannot handle the complexity of large-scale system development, and the following problems start to occur:
- Excessive redesign and delays reduce velocity
- Systems become difficult to integrate, validate, and maintain
- Decline of system qualities, known as Nonfunctional Requirements (NFRs)
- Reduced collaboration and synchronization among teams
- Low reuse of common components and redundancy of solution elements
All of these problems can result in poor solution performance, bad economics, and slower time-to-market.
Intentional Architecture Supports the Bigger Picture
It simply isn’t possible for all teams to anticipate changes that may occur well outside their environment. Nor can individual teams fully understand the entire system and avoid producing redundant and/or conflicting designs and implementations. Simply put, no one team in a larger Enterprise can see the whole picture or reasonably anticipate all the changes headed their way—many of which arise outside their local control.
For this reason, teams need some intentional architecture—a set of purposeful, planned architectural guidelines that enhance solution design, performance, and usability—and direction for cross-team design while syncing implementation.
Applied together, intentional architecture and emergent design allow Agile Release Trains (ARTs) to create and maintain large-scale solutions. Emergent design enables fast, local control so that teams can react appropriately to changing requirements without excessive attempts to future-proof the system. Intentional architecture provides the guidance needed to ensure that the whole system has conceptual integrity and is fit for its purpose. Achieving the right balance of emergent design and intentional architecture is the key to developing large-scale systems effectively.
Enable Continuous Delivery and Release on Demand with Architecture
Architects play a critical role in designing systems that can provide a continuous flow of value to the user. Enterprise Architects define enablers at the Portfolio Level, while System and Solution Architects/Engineering typically define them at the Program and Large Solution levels. The architects who define the enablers help steer them through the Kanban systems, providing the guidance needed to analyze, estimate, and implement them. This support ensures that the affected elements—subsystems, components, functions, protocols, internal system functions—have the architecture necessary to support the near-term features and capabilities on the Roadmap.
To avoid the BDUF approach, the enterprise commits to implementing architecture incrementally. This means that enabler epics must be split into enabler features and/or capabilities, which are ultimately implemented by individual ARTs. Each enabler feature must be completed within a Program Increment (PI), ensuring that the system always runs—meaning it’s potentially deployable, even during its development.
Architecture is a key enabler of the Continuous Delivery Pipeline (CDP) and the architecture runway is concerned with building the CDP. An effective CDP provides teams immediate quality feedback offered through Continuous Integration and Continuous Deployment. It also feeds Continuous Exploration and Release on Demand with direct user feedback and validated learning (see Lean UX. The result is a higher-quality product that is adaptable and fit for purpose.
Building the Architectural Runway
When new platforms are particularly innovative, or in the case of entirely new development, it’s common for the System or Solution Architect/Engineer to play a role in defining and building out the runway. Usually, the new infrastructure is initially put in place with just a few Agile Teams—sometimes with the Architect/Engineer serving as Product Owner during the first few Iterations, as illustrated in Figure 1.
The rules for building the runway are both simple and Agile:
- Teams that build the runway iterate like every other Agile team in the program.
- Credit goes to working solutions, not models and designs.
- Time is of the essence. It should take no more than a few iterations to implement and prove the new architecture.
- Very quickly after that, the program is expanded to add some feature teams who test the new architecture with the initial, consumable features, as illustrated in Figure 2.
In the meantime, the teams build up the additional architectural runway, as illustrated in Figure 3.
To support a stable velocity, the architectural runway needs to be continuously maintained and extended. Capacity allocations (see Program and Solution Backlogs) are used to ensure continuous investments in enablers—the activities required to extend the runway.
Product/Solution Management and Architects/Engineers, in collaboration with the affected teams, define many of these enablers. But implementation is the responsibility of the ARTs. While supporting successful near-term delivery, the architectural runway should not overly constrain development with long-range technical commitments. Just the right amount of architectural runway is required:
- Too much, and the architecture limits the teams and is too disconnected from the current context
- Too little, and the teams will have trouble making and meeting their near-term commitments
Consuming the Architectural Runway
With a new architecture in place, and valuable features already deployed, all is good up to this point. This initial success can be temporary, however, as a number of natural forces will tend to consume the architecture over time:
- Agile teams are fast – They have an unparalleled focus and ability to deliver new features, thus consuming the existing runway
- Product Owners and Product/Solution Management are impatient – They’ve invested some time in internal system capabilities, and they will quickly move backlog priorities to the features that users are willing to pay for
- The architecture itself is fragile and needs to be continuously evolved – Technologies change rapidly and become outdated
- Customer needs change quickly – In today’s fast-paced digital economy, opportunities and threats emerge quickly, and customer requirements are constantly evolving
Unless the Agile teams are really on their game, the result will be what’s shown in Figure 4.
Extending the Architectural Runway
How can teams avoid ending up right back where they started? By realizing that investing in architecture cannot be a one-time or infrequent event. After all, ARTs operate in a continuous flow process using various Kanban systems. Therefore, teams must commit to continuous elaboration, analysis, and implementation of enablers. In addition, Architects/Engineers and Agile teams will need to acquire skills for splitting enablers into small slices that can be implemented during the course of each iteration and PI, resulting in continuously delivering value to the customer (see System and Solution Architect/Engineering and Agile Software Requirements, chapters 20 and 21 , for incremental implementation strategies).
The Architectural Runway in Large Solutions
When building really big systems, the architectural runway takes on an even more critical role as multiple ARTs are contributing to the same Solution as part of a Solution Train. The Business Solutions and Lean Systems article describes eight practices for building large solutions, of which several interact heavily with the architectural runway:
- Continually refine system specifications in the solution intent – The Solution Intent defines many constraints in the form of Non-Functional Requirements (NFRs). Many NFRs are cross-cutting concerns that can be addressed and simplified by intentionally building architectural support for their implementation and testing. Changes in the Solution Intent may create additional work to build more architectural runway or invalidate the existing runway.
- Apply multiple planning horizons – In large solutions, foundational capabilities may take an extended period of time to implement. These systems require a longer architectural runway often implemented with Enabler Epics in the Program and/or Solution Kanban systems.
- Architect for scale, modularity, releaseability, and serviceability – Achieving these goals in large solutions requires intentional architecture to implement an effective Continuous Delivery Pipeline, and ensures simplified operations with strong feedback via application telemetry.
- Continually address compliance concerns – A Lean approach to Compliance automates the testing and generation of compliance data to provide more effective and predictable outcomes. This goal typically requires early engagement with compliance auditors and authorities to agree on an acceptable approach and then creating capabilities through the architectural runway ensures consistency and removes significant compliance risk.
The Backstory of the Architectural Runway
The term ‘architectural runway’ started as an analogy while observing PI-level burn-down charts. Often, when there isn’t enough architectural runway when teams start a PI, any features dependent on the new architecture are a high risk.
ARTs can’t always ‘land those PIs’ (bring the burn-down to zero at the end of the PI). In that case, they don’t meet the PI objectives. A PI, like an airplane, needs enough runway to safely land.
In the SAFe Big Picture, the architectural runway line is drawn going up and down over time, because the team builds up some runway, then uses some, builds some more, and then uses that, too. In short, there has to be just about the right amount at any point.
To extend the runway metaphor, the bigger the aircraft (system) and the faster the flying speed (velocity), the more runway is needed to land the PI safely. Architectural Runway is explained further in Agile Architecture.
Learn More Leffingwell, Dean. Scaling Software Agility: Best Practices for Large Enterprises. Addison-Wesley, 2007.  Leffingwell, Dean. Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise. Addison-Wesley, 2011.  Manifesto for Agile Software Development. http://www.agilemanifesto.org.
Last update: 14 September 2018