Architectural Runway

Incrementally prepare the architecture to support upcoming features and other requirements. Strike a balance between Big-Up-Front (BUF) and No-Up-Front (NUF). Set up architectural collaboration between the teams as the project gets bigger.

Why

It’s important to understand different architectural approaches for someone to appreciate the need for an architecture runway.

Big Up Front (BUF)

BUF (also known as BDUP) usually results in over-engineered unrealistic architectures that are not flexible to adapt the incremental knowledge and market dynamics.

No Up Front (NUF)

NUP is real-time, just-in-time architecture practices that can result in costly re-architecting efforts due to lack of planning. It’s not recommended for products that have long-term ROI expectations.

Emergent Agile Architecture

The idea of an emergent agile architecture is to do just enough, at the “last responsible moment". It should be noted that agile architecture principles recommend only "intentional" architecture, not just-in-time architecture.

Architecture Runway

Emergent architecture may work for simple solutions and at the start of the product development. Once the teams grow and the systems get complicated, you need a more structured approach to architecture. All teams should coordinate and agree on the architecture approach and do some level of planning. But at the same time, you need to avoid falling to the BUF trap.

Architecture Runway assists you to define how much of planned architecture is needed. Also, it creates a process outline to coordinate architectural efforts. It's the SAFe process who coined the term and lead the thinking around Architecture Runway.

Metaphor

Read the source article of the above image to understand the RunWay concept through a good metaphor.

How

  • Usually, a product's initial architecture blueprint is laid-off by a single team lead by a system architect. To this infrastructure one or few agile teams add architectural components required by the next immediate functional features.
  • Depending on the phase of the development, your team should determine the length of the Runway. It depends on the speed of development, team size, team distribution, etc. As the SAFe website points out; the bigger the aircraft (system) and the faster the flying speed (velocity), the more runway is needed to land the PI safely.
  • Architecture Runway should be continuously maintained, not just during the initial phases of the product development. Measuring velocity, conducting periodic ceremonies are important to carry out a stable velocity and the length of Runway.
  • The team should take precautions not to have a lengthy Runway (BUF) to overly constrain development work. At the same time, a too-short Runway will block the teams from meeting immediate feature goals and results in a lot of architectural rework.
  • Changes to the product goal may require building more Runway or to invalidate already built Runways. That’s why changes to the product goals should be continuously assessed to see the potential impacts on architecture.

References