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