Agile Process Maturity
- 4.1 Goals of Agile Process Maturity
- 4.2 Why Is Agile Process Improvement Important?
- 4.3 Where Do I Start?
- 4.4 Understanding Agile Process Maturity
- 4.5 Applying the Principles
- 4.6 Recognition by the Agile Community
- 4.7 Consensus within the Agile Community
- 4.8 What Agile Process Maturity Is Not
- 4.9 What Does an Immature Agile Process Look Like?
- 4.10 Problems with Agile
- 4.11 Waterfall Pitfalls
- 4.12 The Items on the Right
- 4.13 Agile Coexisting with Non-Agile
- 4.14 IT Governance
- 4.15 ALM and the Agile Principles
- 4.16 Agile as a Repeatable Process
- 4.17 Deming and Quality Management
- 4.18 Agile Maturity in the Enterprise
- 4.19 Continuous Process Improvement
- 4.20 Measuring the ALM
- 4.21 Vendor Management
- 4.22 Hardware Development
- 4.23 Conclusion
Agile process maturity is a very important consideration when implementing an agile ALM. But what exactly does process maturity really mean in an agile context? Bob Aiello and Leslie Sachs examine the factors that affect agile process maturity from a number of different perspectives and outline how process maturity affects non-agile development methodologies, including waterfall and other process models.
Agile process maturity is a very important consideration when implementing an agile ALM. But what exactly does process maturity really mean in an agile context? We know that agile is defined by specific values and principles,1 so obviously the agile ALM must be—well—agile. To begin with, we know from the agile manifesto that agile ALM values individuals and interactions over processes and tools.2 But this does not mean that we don’t need to focus on processes and tools. Similarly, the agile ALM focuses on creating working software over comprehensive documentation and customer collaboration over contract negotiation. Still, documentation is often absolutely necessary, and signed contracts are rarely optional in the business world. It is equally true that successful professionals do not hide behind a contract and make every effort to delight their customers with excellent value and service.
The agile ALM also emphasizes responding to change over following a plan, although many of the places where we work will not fund any effort without a comprehensive plan. Those who provide the funds for a development project want to know exactly what they are getting into and when they will see results.
In this chapter, we will examine the factors that affect agile process maturity from a number of different perspectives. Many technology professionals find that they must implement agile processes in a large organizational context, including managing teams that are composed of many scrums, totaling scores or even hundreds of developers working from a variety of locations. Scalability is certainly an essential aspect of agile process maturity. Mature agile processes must be repeatable for each project in the organization and have sufficient support for project planning. We also need to understand how process maturity affects non-agile development methodologies, including waterfall and other process models. There are other important considerations as well and any discussion of ALM should start with a clear understanding of the goals involved.
4.1 Goals of Agile Process Maturity
This chapter focuses on helping you establish an agile development process that is light but effective and, most importantly, repeatable. This is not an easy goal to accomplish. In many ways, agile shifts the focus away from implementing processes that contain comprehensive controls, or as agile enthusiasts describe as being high in ceremony. Ceremony, in this context, really means bureaucracy or, more specifically, laden with excess controls and “red tape.” The goal of this chapter is to help you implement agile processes that are Lean,3 repeatable, clearly defined, measureable, and adhere to the principles defined in the agile manifesto.4 We will also discuss how to coexist (or perhaps survive) in non-agile environments. The first step is to understand process maturity in an agile development environment.