Does Agile need Architecture to be successful?
On a recent Agile training course, the instructor opened the session by saying, “Agile without a plan is just plain chaos!” I propose that Agile without a robust underlying architecture will eventually lead to chaos, mainly if organizations try to scale Agile practices without some form of guiding framework.
The fundamental reason is that we all operate within constraints, be them financial, regulatory, technical or customer-driven. While Agile practices have traditionally been confined to software development there is a significant push by organizations, particularly at the Enterprise end of the market, to use Agile methods to manage traditional business functions. This new trend is referred to as “new ways of working.” The benefits of leveraging Agile practices are expansive, with the key benefit that organizations see Agile practices as a way to deliver improved outcomes for customers and stakeholders more efficiently and consistently.
There are many studies citing the achievement of these benefits at a project level, but very few examples (to date) of successful Agile Transformations at Enterprise Scale. Proponents of Agile practices will point to the Spotify Model as proof that Agile Practices can be used to build a $13 billion enterprise. This is true. However, they didn’t do it without architecture. They did it by leveraging architecture and its practices as an enabler and not a governing framework. The way that architecture worked within a silicon valley enterprise like Spotify is quite different from how Architecture currently operates within traditional brick and mortar enterprises.
It is tough to find a clear definition of the role of Architecture in Agile. The SAFe (Scaled Agile Framework) framework has done the most to identify the part of Architecture within an Agile environment. As with all things Agile the focus is to create consistent value and Architecture is no different. In SAFe they define two distinct elements of Architecture:
Emergent Design provides the technical basis for development and the incremental implementation of initiatives. It helps Designers and Architects to be responsive to changing customer/ stakeholder needs to ensure the initiative continually delivers value. At this level, SAFe practitioners see Architecture as a collaborative and interactive exercise through which the design element can emerge.
Intentional Architecture is a much more structured approach and more aligned to what many would identify as being traditional Architecture, which is a set of defined and planned Architectural initiatives that will both support and enhance the performance and usability of the initiative. In effect, Intentional Architecture is a clear recognition that we all need to operate within certain constraints such as choice of technology platform or financial budget. If these constraints are identified and incorporated into the initiative then the probability of the effort being successful and delivering value is increased.
SAFe practitioners proport that by balancing Emergent Design and Intentionality, Agile practices can be scaled to deliver Enterprise level solutions. In Safe this combination is referred to the Architectural Runway, which provides the technical foundation for creating business value, which is in alignment with traditional views of Architecture.
The key to the success of this approach is the level of abstraction at which the balance of Emergent Design and Intentional Architecture occurs. The fundamental behavior that will determine this is collaboration. Architects need to be able to work productively with Agile Teams to provide fast and local support to manage Emergent Design while also helping Agile Teams to appreciate and navigate the constraints defined by the Intentional Architecture. One of the critical attributes of Agile Practices is the fact that Agile Teams are encouraged to provide constant feedback to their stakeholders. As new designs develop Architects can use this information to adapt and improve the Intentional Architecture to ensure that the overall architecture of the Enterprise is evolving with the organization in the medium to long-term.
So does “Agile need Architecture to be successful?” I would say the better question is “What type of Architecture does Agile need to be successful?” Agile requires Architecture that supports the way Agile Practices deliver outcomes (value). The type of Architecture that will do this will be a combination of a nimble reactive style of Architecture supported by a more traditional structured approach to Architecture. The challenge as with many things is to get the mix right.