A Continuous Delivery Maturity Model

written by


Eylül 10, 2020

The first stage of maturity in continuous delivery entails extending software build standards to deployment. The team should define some repeatable, managed processes that get code to production. Developers shift build and deployment activities off of personal workstations — the usual location for ad hoc chaos — and onto a central, managed system available to all developers and the IT operations team. Teams at this level devote themselves to continuous improvement. They fanatically measure how their changes impact the business bottom line. Also, they have outstanding metrics that allow them to quantify the impact individual releases have on the overall performance of the software.

ML Ops helps Data Scientists with rapid experimentation and deployment of ML models for the purpose of Data Science. Begin to use DevSecOps, Scrum models, lean practices, self-service environments, and continuous integration pipelines. Service Mesh – A service mesh is a dedicated infrastructure layer for aiding inter-service communications between microservices.

continuous delivery maturity model

The application is designed to easily extract sanitized production data. Service virtualization is leveraged for testing components that are unavailable or difficult to access for development purposes. The testing team does not need to wait until the end of sprint/release to verify quality. By level 4, your organization understands your DevOps processes and is fully on board. Your whole organization also needs to get onboard the DevOps journey and adopt these new processes and support your goals.

DevOps maturity requires efficient cross-functional collaborations, as well as realistic and consistent expectations from business leaders. Delivery maturity model, there’s a path to progress higher. The industry has been doing pretty well to enable this and software teams largely are able to work with these principles in mind. With the popularity of containers it’s now a lot easier to clone your local and production environment and test there. A good CI setup speeds up your workflow and encourages the team to push every change without being afraid of breaking anything.

Release to Production is reliable and predictable, but still a manual step controlled by IT. Automated quality processes are in place and your organization is able to report on delivery metrics and business value delivery. Jeffrey helps CIOs and digital leaders succeed by working with them to improve their software delivery capability and by helping them assess the relevance of emerging software technologies.

The practices described at each level of maturity all help you work towards a fast, reliable, repeatable release process that provides rapid feedback on changes. As you continue to build out the pipeline, your team will need to collaborate more closely with other functions and start taking more responsibility for delivering your software. To do that, they need visibility of how the software performs in production and for the rest of the organization to be bought into the approach. For example, if you’re new to CI/CD, the starting point is to ensure all your code is in source control, encourage everyone on the team to commit changes regularly, and start writing automated unit tests. At beginner level, you start to measure the process and track the metrics for a better understanding of where improvement is needed and if the expected results from improvements are obtained.

The Web Hosting Maturity Scale

We see DevOps as a lifecycle with each phase flowing into the other to break down silos and inform key stakeholders along the way. You plan the work, then build it, continuously integrate it, deploy it, finally support the end product and provide feedback back into the system. Building an automated delivery pipeline doesn’t have to happen overnight. Start small, by writing tests for every bit of new code, and iterate from there. Culture is the foundation on which every successful team is built and is a core ingredient of a DevOps implementation.

  • The application is built only once, using a dedicated server, and the output artifact can be deployed without the need to rebuild for each different environment.
  • After a quick review of “Continuous integration tools and best practices”, I also did read more about “Continuous Delivery “, and I found some great articles about it that worth to read by every sysadmin, developer, and DevOps.
  • Which brings us to Nirvana; Continuous Delivery and Innovation all the way into Production.
  • Release to Production is reliable and predictable, but still a manual step controlled by IT.
  • Test automation tools include pipeline software like Jenkins; test automation systems like Selenium or Cypress; and cloud services, including AWS CodePipeline or Microsoft Azure DevTest Labs.
  • Mostly CI/CD buzzwords.AWS Workload OrchestratorA software based upon lock-in to AWS services.
  • One of the first considerations a PM needs to address is the project team’s Release Management Maturity.

More likely is that some series of changes pushes them to a new level and they only recognize the transition in hindsight. Immature teams will approach this process by trying to make a dozen changes at once. More often than not, they find that this means they fall flat on their faces.

This means that every commit made to the workspace is a release candidate for production. This release however is still a manual process and require an explicit push of a button. This manual step may be essential because of business concerns such as slowing the rate of software deployment. Or maybe your organization or team is starting to plan to fully embrace DevOps and your team is researching what is exactly what to need to install in order to have the perfect toolchain. Perhaps you have a gap in some processes that you are not even aware of. Establishing a good and solid DevOps toolchain will help determine ahead of time the grade of the success of your DevOps practices.

Add production-scale readiness for load testing, deployment, performance assessment, etc. Make sure all teams start working with product-oriented and user-centric thinking for application development. Every strong building is mapped out first on a blueprint before meeting concrete and cement. Similarly in DevOps, the foundation needs to be strong and resilient, as agility and rapid delivery are the essential elements of the DevOps paradigm.

What Is Continuous Deployment?

The result is a system that is totally reproducible from source control, from the O/S and all the way up to application. Doing this enables you to reduce a lot of complexity and cost in other tools and techniques for e.g. disaster recovery that serves to ensure that the production environment is reproducible. Instead of having a separate process, disaster recovery is simply done by pushing out the last release from the pipeline like any other release. This together with virtualization gives extreme flexibility in setting up test and production environments with minimum manual effort. The next level in the continuous delivery maturity model entails defining the activities for the entire move-to-production process, along with the file and system locations plus tooling to automate it.

DevOps isn’t a destination, it’s a journey towards a frequent and more reliable release pipeline, automation and stronger collaboration between development, IT and business teams. This maturity model is designed to help you assess where your team is on their DevOps journey. Level 1 of DevOps maturity is for teams who are just beginning to test the waters of DevOps. That doesn’t mean that they’re immature engineering organizations. Instead, their processes are usually static and familiar, but they might not be serving the organization well. Teams at this level will regularly experience projects that go way over time and budget.

Your thinking about how to develop features most probably will change. As every small change will be tested automatically and the whole team can know about these changes you will want to work on small, incremental changes when developing new features. This results in less assumptions as you can build features quicker and test and deploy them automatically for your users to see as soon as possible, thus gaining valuable feedback from them faster. Continuous Integration is a software development practice that aims for a frequent integration of individual pieces of work. Commonly each person integrates at least once per day giving place to several integrations during the day. Each integration should be verified by an automated Build Verification Test .

continuous delivery maturity model

Degree in Software, Systems and Services Development in the Global Environment from the University of Oulu Finland in 2017. She is currently a doctoral candidate who perusing a Ph.D. degree in Information Processing Science at M3S Research Unit of the University of Oulu. Her research interests include empirical software engineering, software test automation, software process improvement, data science, and natural language processing. She has worked on the TESTOMAT project (2017–2020), which gathered 34 academic and industrial partners working on the next level of test automation. At the expert level, some companies opt to make a bigger effort and create complete cross functional teams that could be entirely autonomous.

The Continuous Delivery Maturity Model

Those selected practices have been distributed across the model’s five levels of maturity. Project management teams should continue to refine their processes to focus on releasing the minimum viable product for each release. Along with changes to the operations, QA, and compliance timelines, the release continuous delivery maturity model cadence should speed up so that more, smaller releases are happening more frequently. A team at this level should look at each facet of DevOps maturity and seek to improve incrementally. The best place to start is to recognize the team’s strengths and weaknesses as it pertains to continuous improvement.

This gives management crucial information to make good decisions on how to adjust the process and optimize for e.g. flow and capacity. Beginner level introduces frequent polling builds for faster feedback and build artifacts are archived for easier dependency management. Tagging and versioning of builds is structured but manual and the deployment process is gradually beginning to be more standardized with documentation, https://globalcloudteam.com/ scripts and tools. At a base level you will have a code base that is version controlled and scripted builds are run regularly on a dedicated build server. The deployment process is manual or semi-manual with some parts scripted and rudimentarily documented in some way. A typical organization will have one or more legacy systems of monolithic nature in terms of development, build and release.

continuous delivery maturity model

Continuous Delivery is achieved by building Deployment Pipelines. This is best described in Continuous Delivery book by Jez Humble (@jezhumble). Most common ones are Jenkins from CloudBees, Travis CI, Go from ThoughtWorks, and Bamboo from Atlassian. Arun is a technology enthusiast, avid runner, author of a best-selling book, globe trotter, a community guy, Java Champion, JavaOne Rockstar, JUG Leader, Minecraft Modder, Devoxx4Kids-er, and a Red Hatter. How your organization can move to a higher level of GitOps and what it would look like when you get there.

Urbancode  Inc    ©2013   A Simple Maturity Model Urbancodecom

Semantic Scholar is a free, AI-powered research tool for scientific literature, based at the Allen Institute for AI. Constant feedback about the architecture state is received automatically. Releasing a code change in the application does not require full regression, nor represents the risk of global failure. A report by Gartner indicated that by 2022, three-quarters of DevOps initiatives will fail to meet expectations due to an organization’s inability to resolve issues around organizational and cultural change.

However, it is important to have a well-defined process before automating. Automating an undefined or non-optimal process will only further exacerbate any inherent flaws in the process. Also, the pipeline must also be designed to be scalable over time so that new features and requirements in the automated build process can be added transparently. The most effective improvement processes, whether they streamline manufacturing operations or speed up software development, describe the path to desired improvements — not just the end state. Continuous improvement processes never focus on the end state, because perfection, however it’s defined, can only be incrementally approached, never fully achieved. If you wish to release your product really fast, you should automate your entire workflow, not just the testing.


In the IT world, the best known of these is the capability maturity model , a five-level evolutionary path of increasingly organized and systematically more mature software development processes. We’ve put together a high-level CI / CD Maturity guide to help with these challenges. We list all the processes and practices that need to be in place before you can truly claim that you have made Continuous Deployments possible.

The 5 Levels Of The Devops Maturity Model

You don’t want your tools to be a point of friction in taking your organization to the next level. Each and every company is unique and has its own particular challenges in terms of changing how things work, such as Continuous Delivery implementation. The maturity model gives one a starting point and a base for planning company transformation towards Continuous Delivery. After the evaluation of a business according to the model it should be able to set the goals and determine which practices would give the business the best outcomes. A DevOps maturity model would be what enterprises can use to design, chart, and measure their DevOps journeys.

Code Management

As a 25-plus-year software industry veteran, he’s helped clients improve their development shop culture, apply Agile and continuous delivery best practices, and build successful developer ecosystems. Although infrastructure as code is not explicitly called out as a practice in the CD Maturity Model, many of it’s best practices can be found in the maturity model. For example, the model prescribes automated environment provisioning, orchestrated deployments, and the use of metrics for continuous improvement. Advanced CD implementations have almost completely automated code’s journey from integration testing through various stages of test deployments onto production systems.

We build unstoppable teams by equipping DevOps professionals with the platform, tools and training they need to make release days obsolete. You reach level 2 when your development teams shift their focus to achieving greater agility, and your operations teams begin working towards automation. DevOps isn’t just about technology; it also requires an organizational culture shift. All stakeholders, from engineers to executives, need to unite in support of your DevOps journey.

The DevOps and McKnight models have additional process details that are relevant perhaps to level 3 of the CMMI standard. A near miss was the Azure ML Ops set of guidelines which did address people and model issues by copying some of the McKnight details but ultimately failed to address the processes needed to scale the model’s organization wide. Inject automation and continuous frameworks with an agile project approach.

Imagine that a developer makes a change in the code after this happens you need to promote the code to the integration environments, send notifications to your team members and run the testing plan. The list is quite intimidating so we’ve highlighted the practices we think you should focus on when starting on this journey. The high priority practices were chosen because they give the most impact in terms of productivity, quality, delivery and risk mitigation. Continuous Delivery Maturity Models provide frameworks for assessing your progress towards adopting and implementing continuous integration, delivery and deployment (CI/CD).