one can except to move to Level 2 status, all practices associated with Agile Level 1 must be achieved (or achievable).
The 5 Levels of Agility are designed to represent the core qualities of the Agile Manifesto rather than the qualities related to any particular agile method. After careful analysis of the manifesto, five essential agile qualities have been identified. Those qualities comprise the 5 Levels of Agility that are used by the SAMI:
- Level 1: Collaborative. This level denotes the fostering of communication and collaboration between all stakeholders . Collaboration is the foundation of agile software development.
- Level 2: Evolutionary. Evolutionary development is the early and continuous delivery of software . It, too, is fundamental because every agile method assumes its presence.
- Level 3: Effective. The focus in this level is to increase efficiency of the development process by adopting engineering practices that will lead to the development of high quality working software . This is needed to prepare the development process for the next level where it can respond to constant change without jeopardizing the software system being developed.
- Level 4: Adaptive. This level constitutes establishing the agile quality of responding to change in the process . Defining and responding to multiple levels of feedback is essential in this level.
- Level 5: Encompassing. Agility is essentially a culture, and it is important to have an environment that is reflective and supportive of the agile nature of the software development process. This level concentrates on establishing an all-encompassing environment to sustain and foster agility throughout an organization.
Each of the agile levels is composed of a set of agile practices that introduce and sustain the agile quality pertinent to that level. The selection of agile practices and concepts assigned to each agile level is guided by the second component of the measurement index, agile principles .
Agile principles are the essential characteristics that must be reflected in a process before it is considered Agile. For example, two key agile principles are human centric , which refers to the reliance on people and the interaction between them, and technical excellence , which implies the use of procedures that produce and maintain the highest quality of code possible. The Agile Manifesto outlines 12 principles that characterize agile development processes. After careful grouping and summarization, five agile principles emerged that capture the essence of the 12. These five principles guide the refinement or tailoring of the SAMI:
- Embrace change to deliver customer value .
- Plan and deliver software frequently .
- Human centric.
- Technical excellence.
- Customer collaboration.
In effect, agile principles are used to ensure that the agile levels embody the essential characteristics of agility. Figure 2 illustrates the relationship between agile levels and agile principles. Each agile level should contain agile practices associated with most, if not all, of the agile principles. The principle reflects the approach that the agile practice uses to promote the agile quality pertinent to a level. For example, all the practices in Level 3 (Effective) are promoting the agile objective of developing high quality, working software in an efficient an effective manner. How that objective is achieved though, is determined by the practices associated with agile principles spanning each level. Along the same lines, practices associated with the technical excellence principle will promote its agile objective by focusing on enhancing the technical aspect of the process, while practices associated with the human centric principle promote enhancing the human aspect of the process.
The real essence of the SAMI, however, is in