The Scaled Agile Framework and its architecture is the most popular method for scaling Agile for enterprise use. It builds upon Scrum, XP and Lean Agile development processes, but in addition provides SAFe architecture necessary to Scale Agile effectively. SAFe® differentiates between three different levels, the Team Level, Program Level and Portfolio Level and architecture can be found at each of these levels.
When dealing with the topic of SAFe Architecture, certain terms can not be avoided, phrases such as Agile Release Train and Architectural Epics and others, the definitions of which define the functional side of SAFe architecture. These architectural terms can be clearly placed within the three levels of SAFe®, but before looking at these in detail it is important to look at the 7 principles of Agile architecture.
- Design Emerges. Architecture is a collaboration
- The bigger the system, the longer the runway
- Build the simplest architecture that can possibly work
- When in doubt, code, or model it out
- They build it, they test it
- There is no monopoly on innovation
- Implement architectural flow
Follow the link for a detail description of each of these 7 principles of Agile Architecture
Emergent design, mentioned above is not only central to Agile Architecture but also hard coded into the Agile Manifesto (Principle no.11). As such it deserves its own explaination.
What is Emergent Design?
An Emergent Design is a consequence of adopting the Agile concept of incremental design, starting from the known elements of the user story at a point in time and extending the design as more is learned over time, – while never adding complexity unnecessarily. Emergent Design was adopted from the XP Simple design, the purpose of which was to implement minimilism in coding, utilizing both coding standards and refactoring. Emergent design is a far cry from the upfront design of the past, which put Software development firmly in the hands of Enterprise architects.
Critics of Agile Development (Enterprise architects amongst them) often point to Emergent Design as one of Agiles weaknesses, – a step too far in deconstructing the upfront planning phases of development of older development methods (such as Waterfall). The Agile community responded to this critisim with the Architectural Spike, the first of the architecture features of the Scaled Agile Framework listed below.
Architecture of the Scaled Agile Framework (SAFe®) by level.
- The Architectural Spike
A testing prototype, – an experiment which provides vital information for developers about the unknown elements in the user story with the aim of finding a solution to a road block in development. For example, the roadblock could take the form of unknown factors within a user story, preventing estimation thus halting feature development. By adding a spike the unknown factors or elements can be investigated with the aim to improve estimation and provide a solution to the road-block as well as providing direction for further development.
- Non-Functional Requirement (NFR)
Where functional requirements describe what the sytem should do (functionality), Non-Functional Requirements do not, – as you might expect. Instead they describe how the system should work. For example, external environmental factors, this would include things like termperature ie heat / cold (operating tolerances). Others include: performance, scaleability, availability and reliability
The code base remains the same but is optimized or reorganized, a process done in small steps that retains a functional system.
The Agile Release Train
The Scaled Agile Framework’s Agile Release Train (ART) comprises of 5-10 teams working on a producing Potentially Shippable Increment (PSI) every 10 weeks or so. Agile Release Trains produce value in what is referred to as a value stream and provides predictability with fixed. The release train planning meeting typically has a well-formulated business and architectual vision and clear team goals as well as pre planning for the next ART.
An Architectural Runway is built incrementally and is most often described as the actual code that enables future business value. Agile teams develop technology platforms to support the business releases. The position of systems architect is focused on achitectual features and non-functional requirements.
The Enterprise architect drives work contained within the portfolio backlog, working with Architectural Epics, these large technology initiatives support current and future business needs. Epic maturity is managed via Kanban, – carefully because they are the economic drivers for the program level.
Intland Software’s CodeBeamer ALM is built for Enterprise use, providing the tools to manage all three levels of the Scaled Agile Framework. codeBeamer accomodates many different Agile methods and hybrid methods of development as well as accomodating all the majar version control systems (GIT, Mecurial, SVN). With the addition of integrated Help Desk functionality, codeBeamer is now ideal for implementing DevOps.