Agile Maturity
Agile software development is all about frequent delivery of products
Each tactic has a positive value/cost ratio by themselves. Used together with other tactics and strategies it is possible to gain a lot more value. A side-effect/synergy-effect is the feedback-loops (see section below) and the effect the tactics can have on the work processes.
The main goal is the ability to release to production at the least effort, cost, and time, in order to effectuate needed changes efficiently, as well as deliver frequently throughout a development project. See Release process and agility.
Maturity Levels
-
Control at the application level - application acceptance
-
Control at System level - internal system acceptance
-
Control at Systems level - customer integration/acceptance
Feedback-loops
The technical aspects are important, but without commitment from the development team and the organization the value gained is limited. Starting with the technical stuff to show the concepts and gain trust might be a good idea. To continously improve overall processes it will be helpful to deploy principles of Learning Organization.
-
Design and architecture
-
Communication between Operations, development, test, business
-
TDD
- let tests drive development and write test for all non-trivial code
- BUT, must constantly maintain architecture and design as well. TODO: ref to Jim Coplien's presentation at JAOO 2007. See The TDD Controversy - JAOO 2007.