CMMI Institute

Newsroom

The latest information for media, analysts, and others interested in the CMMI® Institute and process improvement.

Capability Counts Series: Reaching CMMI Engineering Practices With DevOps

By Analia Irigoyen and Mariano Montoni, Founding Partners of ProMove

Many believe that the only use for DevOps is to help implement engineering practices such as product integration and technical solutions. But DevOps can be a strategy to help organizations implement processes more efficiently. It can also improve verification, validation and more, which helps better measure the automation of processes, increasing quality and reducing costs.

Organizations have also observed significant quantitative results related to quality and performance objectives, and qualitative results related to the implementation of a process that adheres to CMMI.

We have completed real-life implementations of high maturity processes in CMMI Maturity Level 5 organizations using DevOps practice. The outcomes can be helpful for organizations trying to reach high maturity status and for organizations that are starting their CMMI implementation initiative. DevOps offers benefits such as gains in productivity and quality, and reduced rework, regardless of CMMI maturity level.

Reinforce the “Why”

With a DevOps mindset you can ask teams to improve toward perfection and base these improvements in metrics and best practices. Coaching and training the “why” of each step is critical. This will accelerate the implementation and gains.  

Teams need to understand what they are doing when you automate processes and when you configure tools. When they understand what is happening and what best practice is being implemented, they will understand, correctly configure and better select the tool that best suits the processes and context within the organization.

It is important to implement changes toward excellence and focus on metrics. Teams must know that they are going to get improvements such as better codes. When teams understand what they are doing, they will suggest more ideas and feel like they own the process. This can create a positive work environment and provide your employees with a better quality of life.

Tips to Improve the Process

Make sure you don’t start with a critical project. With a critical project, failure is not an option, so it's important when beginning a deployment of DevOps to obtain buy-in and the acknowledgement that there might be missteps. Learn from these missteps and continually improve.

Start small and understand that implementing DevOps is not a project, it’s a journey. It is not an easy task. An important aspect is to change the culture and the teams’ mindsets to focus on automation.

Begin by automating simple things like unit test and then move to integration tests, functional tests and regression tests. It is important to think the better tests strategy for your project/product at the beginning of each Sprint, such as: what kind of tests will be automated or manual. Then think about continuous integration and possibly continuous deployment. The journey of implementing automation based on DevOps practice takes several steps and doesn’t have a specific end.

Restrictions faced by the organization are a consideration because sometimes it is not possible to implement continuous deployment, for example, because of laws. It is important to observe these restrictions and work in small steps to accomplish process improvement.

Another aspect that accelerates a team's performance is a paradigm shift from document-based implementation to tool-based implementation. When organizations start implementing DevOps practice, they focus more on tools, which can bring value to the whole process. Beyond creating documents, it is important to focus on tools and integrated practices that can bring value to the process, including real-time verifications with faster quality feedback to the teams. For example, if a process is supported by tools, then the configuration of the tools is evidence that the company needs to provide during a CMMI appraisal. As teams are guided by the process flow, it makes the process simpler and allows people to focus on top priorities.

It is great when teams own the process and know it will give better results. That's why metrics are so important in this pathway. When you automate the metrics, people are confident in their metrics and their work. When the measures are not good, there is no argument because the metrics show that teams need to analyze the cause and work together to find a solution. DevOps brings teamwork with all the specialists involved, and this is a gain organizations can achieve with this practice.

Improving Results

One improvement we could have made in the beginning of these implementations was to bring in internal operational and security professionals. That’s our work for the future. If we had brought these specialists in this process, we could use DevOps to create environments automatically and used infrastructure as a service and as a code. This would reduce environment and security defects.

In CMMI adoption we can also start looking at DevOps practices regardless of the CMMI level of the organization. We are starting it in an organization that probably will achieve Maturity Level 2. They saw benefits of improving their maturity levels, but we must remember that there are many gains when implementing DevOps in organizations of all maturity levels.

Our path forward includes using CMMI Services to guide automation. DevOps can help build a bridge between CMMI Development and CMMI Services. We also want to collect more results and focus on support areas, especially in the use of robots.

DevOps is a forever journey, but it's a good journey for teams and for organizations.