Continuous Delivery 3.0 Maturity Model
Continuous Delivery 3.0 Maturity Model (CD3M)
NISI has recently released the Continuous Delivery 3.0 maturity model, or CD3M. The Maturity Model guides the improvements of Continuous Delivery pipelines and/or software development processes in software organizations. The CD3M maturity model has five levels from Foundation level (1) towards Expert level (5). In each maturity level a number of practices needs to be implemented to advance the CD 3.0 pipeline.
The model consists of five distinct categories.
Continuous Delivery 3.0 Maturity Model
FOUNDATION |
NOVICE
|
INTERMEDIATE |
ADVANCED |
EXPERT |
|
INTELLIGENCE |
Tracking customer behaviour on a server and receive feedback. |
Basic monitoring of app usage and handling customer feedback |
Advanced customer monitoring and A/B testing in place. |
Receiving predefined metrics and reports. Decisions being made based on detailed analytics. |
Real-time data collection analysis and reporting using AI |
PLANNING |
Managing the complete backlog on a centralized server. |
Managing all work by means of a digital backlog. |
Automatically creating items for the backlog. |
Automatically receiving backlog prioritization suggestions. |
Automatically prioritizing and creating backlog items using AI. |
INTEGRATION |
Running a centralized version control system. Running a centralized build server |
Running a workflow orchestrator and receiving reports. Running builds while the company is asleep. |
Triggering builds after the commit of a new feature. |
Running integrations on a scalable microservice architecture. Staged Integrations - compiling the source code that was edited only |
Automatically scaling continuous integration services. |
TESTING |
Running a centralized unit-test server. Manually starting unit tests. |
Running unit tests in a Continuous Delivery pipeline. Manually starting your automated integration tests. |
Triggering integration tests in your Continuous Delivery pipeline. Manually starting your automated acceptance-tests. |
Triggering acceptance tests in your Continuous Delivery pipeline. Manually starting your automated security and performance tests. |
Triggering end-2-end regression tests in your pipeline. |
DEPLOYMENT |
Running a centralized deployment server. |
Running basic deployment scripts. Automatically deploying to a test server after a successful build. |
Automatically deploying to the production server using a pipeline. |
Automatically deploying without any downtime. |
Automatically deploying on endless scalable platforms. |
Brought to you by NISI.NL | Powered by Search4Solutions
Continuous Intelligence
Most companies already have some data gathering in place or have a customer feedback loop to track how their software is perceived by users. Continuous Intelligence is the automation of this software user tracking process, to enable software companies in developing software features that add the most value. One practical example is gather such at is with A/B testing.
Continuous Planning
An Agile team should have organized backlog items with perfect prioritization. Continuous Planning is the automation of the Agile planning process, to enable backlog item prioritization, refinement, allocation and reporting for Agile ecosystems. That automation is enhanced with Machine Learning. AI aids automatic backlog creation and backlog prioritization. Continuous Planning is heavily supported by Continuous Intelligence
Continuous Integration
Continuous Integration integrates the new/changed code into the current system after each check-in without any manual steps. This can be realized by using a workflow orchestrator such as Jenkins or VSTS where you can configure a pipeline to do that for you. Best practices for Continuous Integration are having a build that can be used for all environments and using a microservice architecture. In the most ideal situation you want to automatically up- and down-scale the continuous integration services based on how much you are using them.
Continuous Testing
Continuous Testing (CT) is the process of executing automated tests as part of the software delivery pipeline. The goal of CT is to obtain immediate feedback about the business risks associated with a software release candidate. Basically, an ideal end-to-end pipeline should automatically run all tests created by the team automatically, including regression tests to check the quality of the new software as a whole. CT includes unit testing, acceptance testing, security testing and performance testing, and any other necessary tests for validation and verification purposes.
Continuous Deployment
With Continuous Deployment we imply a software development practice, for which environments are setup and target objects are deployed in an automatic way. In a basic pipeline the build should be automatically deployed to the test environment. At a more advanced level successful deployments are also automated in a acceptance and production environment. Ultimately this would be achieved with zero downtime end-to-end deployments.
Software development is expensive. You can decrease costs and meet your deadlines by...