- 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
4.16 Agile as a Repeatable Process
Mature agile processes must be repeatable above all else. Even the best process will be of little value if it cannot be used reliably across all of the projects and groups involved with completing the work. Closely related is the need for scalability.
Scalability means that the mature agile process can be used reliably across the enterprise. We often find that this is exactly where organizations struggle the most. We will review some tactics to help ensure that your processes can scale to the enterprise in Chapter 19, “Integration across the Enterprise.” Another key aspect of agile process maturity is ensuring that you deliver on time and within budget.
4.16.2 Delivering on Time and within Budget
We see many agile teams struggling with the reality that no one is going to give them a blank check and tell them to take their time on delivering results. Mature agile processes should provide enough planning and structure to help ensure that the software can be delivered on time and within budget. Unless your senior management team is clairvoyant and just anticipates your team’s every whim, you will need to communicate what you need to get the job done. This should include a clear idea of the timeframe required and the budget that will help ensure success of the project. This is particularly essential when considering the quality of the software that you deliver.
Mature agile processes must ensure that quality is a top priority. This requires a strong focus on robust automated testing and benefits greatly from thorough test planning. Well-written test cases can help supplement even incomplete requirements documents. Mature agile processes cannot survive without a strong focus on quality and testing. W. Edwards Deming, regarded by many as the father of quality management, was well known for explaining that quality must be built in from the very beginning of the software and systems lifecycle. This is particularly true in mature agile processes.