ThoughtWorks Agile Maturity Model

The ThoughtWorks Agile Maturity Model applied to building and releasing software. Five maturity levels for five categories.
Read more
Article

ThoughtWorks Agile Maturity Model


Level / Practice Build management and continuous integration Environments and deployment Release management and compliance Testing Data management
Level 3 – Optimizing: Focus on process improvement Regular meetings to discuss integration issues addressed by automation, faster feedback, and visibility. Environments are effectively managed. Provisioning fully automated. Virtualization use if applicable. Operations and development teams regularly collaborate to manage risk and reduce cycle times. Rare production rollbacks. Defects are found and fixed immediately. Release to release feedback of database performance and deployment process.
Level 2 – Quantitatively managed: Process measured and controlled Build metrics are collected, visible, and acted on. Builds are not left broken. Orchestrated deployment managed. Versions and rollback process are tested. Environment and applications health monitored and proactively managed. Monitored cycle time. Quality metrics and trends tracked. Non-functional requirements are defined and measured. Database upgrades and rollbacks tested with each deployment. Database performance is monitored and optimized.
Level 1 – Consistent: Automated processes applied across the whole application lifecycle Automatic build and test cycle every time a change is committed. Dependencies are managed. Re-use of scripts and tools. Fully automated push-button deployment process. The same deployment process to all environments. Change management and approval process defined and applied. Regulator and compliance conditions met. Automated unit and acceptance tests. Testing is part of the development process. Database changes are made automatically as part of the deployment process.
Level 0 – Repeatable: Process documented and partly automated Regular automatic build and testing. Any build can be recreated from version control using an automated process. Automated deployment for some environments. Creating new environments is inexpensive. All configurations are versioned. Painful and infrequent, but reliable releases. Limited traceability from requirements to release. Automated tests are written as part of the story development. Changes in the database are made by automated scripts, versioned with the application.
Level -1 – Regressive: Processes unrepeatable. poorly controlled, and reactive Manual processes for building software. No management of artifacts and reports. Manual process for software deployment. Environment-specific binaries. Environments provisioned manually. Infrequent and unreliable releases. Manual testing after development. Data migration unversioned and performed manually.