The Maturity Model

 by Marko Majkic in Blog Leave a Comment

This is ThoughtWorks Maturity Model for the software development and can be easily translated to the agile environment.

Practice Build management and continuous integration Environments and deployment Release management and compliance Testing Data management
Level 3 – Optimizing:
Focus on process improvement
Teams regularly meet to discuss integration problems and resolve them with automation, faster feedback and better visibility. All environments managed effectively. Provisioning fully automated. Virtualization used if applicable. Operations and delivery teams regularly collaborate to manage risks and reduce cycle time. Production rollbacks rare. Defects found and fixed immediately. Release to release feedback loop of database performance and deployment process.
Level 2 – Quantitatively managed:
Process measured and controlled
Build metrics gathered, made visible, and acted on. Builds are not left broken. Orchestrated deployments managed. Release and rollback processes tested. Environment and application health monitored and proactively managed. Cycle time monitored. Quality metrics and trends tracked. Non functional requirements defined and measured. Database upgrades and rollbacks tested with every deployment. Database performance monitored and optimized.
Level 1 – Consistent:
Automated processes applied across whole application lifecycle
Automated build and test cycle every time a change is commited. Dependencies managed. Re-use of scripts and tools. Fully automated self-service push-button process for deploying software. Same process to deploy to every environment. Change management and approvals processes defined and enforced. Regulatory and compliance conditions met. Automated unit and acceptance tests, the latter written with testers. Testing part of development process. Database changes performed automatically as part of deployment process.
Level 0 – Repeatable:
Process documented and partly autoamted
Regular automated build and testing. Any build can be re-created from source control using automated process. Automated deployment to some environments. Creation of new environments is cheap. All configuration externalized/versioned Painful and infrequent, but reliable releases. Limited traceability from requirements to release. Automated tests written as part of story development. Changes to databases done with automated scripts versioned with application.
Level -1 – Regressive:
processes unrepeatable, poorly controlled and reactive
Manual processes for building software. No management of artifacts and reports. Manual process for deploying software. Environment-specific binaries. Environments provisioned manually. Infrequent and unreliable releases. Manual testing after development. Data migrations unversioned and performed manually.
Marko MajkicThe Maturity Model

Leave Your Comment