From a DevOps bottleneck to a DevOps partner
At CA World in November, I spoke with many customers who mentioned that ITSM is seen as a bottleneck to DevOps’ continuous integration/delivery of new apps.
Let’s take a look at how ITSM and DevOps can work together in continuous integration/delivery of apps.
Organizations undergoing a digital transformation build agile software factories designed for continuous delivery of services. Take, for example, the Politics app that CNN built with CA’s API management and mobile app analytics software. This data-centric app regaled users with every twist and turn of the 2016 U.S. presidential race.
In the scrum agile framework, the leading agile development methodology used by Fortune 500 companies, speed and reliability are key tenets.
Here’s a thumbnail sketch of the agile lifecycle: The app’s product owner works with his/her organization’s liaisons to create a wish list known as a product backlog. A team performs sprint planning by prioritizing a few items in the backlog and determining how to implement those items in a specific amount of time, known as a sprint (usually two to four weeks). The team assesses progress in daily scrums, with the scrum master (facilitator) keeping the team focused on its goals.
When a sprint ends, the team conducts a review, and they should have a working increment of the software ready to hand to a customer or show to a stakeholder. The team then prioritizes a few more items, and the cycle begins again.
Organizations can deliver apps faster and with higher quality by following by following an agile framework, but they also need to leverage DevOps tools that automate the process of moving code from Development to Operations. Sticking with our CNN Politics app example, one sprint would include developers writing APIs, application programming interfaces that are the building blocks of digital transformation, to request CNN polling data.
Developers use a fast, distributed source control system such as Git, and synchronize local filesith a remote repository such as GitHub. The API code is checked into GitHub, which continuously integrates the code with a DevOps tool such as Jenkins, which automates software builds and may orchestrate with other tools to test and deploy code to an application server running in a production
One very important step missing from the process description above is the role of change management in deploying code. Following best practice, a change request must be made and authorized before deployment, and it is change management that authorizes code deployment.
Change management is one of the key processes in the IT Information Library (ITIL), which follows a lifecycle for delivering customer value in the form of services. The goal of change management is to enable and control all changes with minimal impact to IT services. To accomplish this, changes are prioritized, tested, documented and reviewed in a controlled manner, while minimizing risk. So change management is necessary for controlling risk, but how can we also use it to deliver apps faster?
Depending on the priority of the change and your change management process, approvals could be required from several fronts—business reviewers, technical reviewers, the change manager, and/or a change advisory board. Your automated agile/DevOps flow grinds to a halt if the change has to wait in a queue before making it onto the change calendar. This type of change is called a “normal” change.
The answer lies in establishing and implementing standard changes in your change management process. Standard changes reduce change risk, and unlike “normal” changes, they can be prioritized, because they are pre-authorized and automated. I also recommend establishing a continual service improvement process, also known as a 7-step improvement process. I’ll talk about how to do that in a future post.
Taking these two steps will help you reduce “normal” changes and increase the number of standard, pre-authorized changes so that your organization can continuously deploy new services to your customers in a controlled manner, reducing risk and helping to ensure that your organization achieves it desired outcomes.
If you found this post useful, take a look at our blog series about the recently published ITIL and the Information Lifecycle: Integrating Agile, DevOps and ITSM.