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
Developing on a CD 3.0 platform, but the cycle is poorly automated.

NOVICE
Working with basic automation on a reactive level.

INTERMEDIATE
Running average CD 3.0 technologies with proactive elements.

ADVANCED
Working with advanced CD 3.0 tech, that is quantitatively managed.

EXPERT
Increasingly utilizing AI to improve the CD 3.0 development cycle.

INTELLIGENCE
Making business decisions based on gathered used data. 

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 
Automating backlog item creation and prioritization to improve collaboration. 

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 
Automatically building your software to shorten the development cycle. 

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 
Automatically testing newly developed features to avoid tedious work. 

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 
Automatically deploying new builds to scalable environments. 

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

 
 
  1. 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.

  2. 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

  3. 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.

  4. 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.

  5. 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.

 
 

There Is More To Read