“The key to following the continuous delivery path is to continually question your own assumptions about what’s possible.” — Jeff Sussna
The benefits of DevOps are clear — high-performance, faster deployment, and quicker response to crisis. Businesses today are either getting started with DevOps or have it in pockets but find it difficult to scale up to an enterprise-wide implementation.
As DevOps has emerged as the new ALM methodology and a generation beyond agile, we look at some of the most practical and basic things that enterprises need to do to successfully make the DevOps adoption. In a previous post, we pointed out the three must-knows about DevOps; here we take a look at practices that can get your ball rolling smoothly.
Start small and focus on doing all things continuous
Identify a person such as director of operations, chief architect, or director of development, who can be the champion of your DevOps project. Start with a pilot project, set goals, and achieve the results, thus showing to the rest of the teams that you can scale up slowly. A good practice is to pick a regular process in place and improve on it — developing an inspect-and-adapt cycle is key to DevOps success. DevOps gurus have always emphasised that the shift to DevOps should start small, but neither too small nor too big. You need to know what the business problem is and the anticipated benefits, therefore measuring every factor that contributes to DevOps success.
DevOps promises an array of automation. This can't be achieved in a single attempt or overnight. Enterprises have to focus efforts on continuous integration, following it with continuous delivery and eventually continuous deployment. Your continuous delivery pipeline is an opportunity for you to inject automated quality testing into your process. But don't stop at continuous delivery. Continuous improvement is also another step to doing all things continuous. It is imperative that teams spend some time every day deliberating about small things that can be improved and over time these small, daily changes can earn profound results.
Create an environment of experimentation and learning
While smaller organizations or start-ups may find it a lot more organic to create an environment of experimentation and learning, it can be adopted by a larger organization with some careful steps. Gene Kim, co-author of The DevOps Handbook, explains how one of the key principles of DevOps is fostering continual experimentation, taking risks and learning from them, and understanding that repetition and practice are prerequisite to mastery. This enables you to improve and also tread onto paths that are untraversed, giving team members opportunities to share their learning with stakeholders, both upstream and downstream, in a process. There is no checklist to what tools you should acquire or where you should begin — you make a plan as to where you want to go, experiment and learn on the go. In most DevOps implementation, things fall in place as you move ahead with resilience and adaptivity.
Build resilient systems
Building resilient systems allow teams to collaborate better and work together, knowing how to respond to failure. When an enterprise begins DevOps, it should scrap non-scalable and traditional change management approaches to tackling failure. DevOps is a response to increasing process complexities and the best way to handle complexities is to build resilience. Instead of trying to cut out failure enterprises have to learn to become resilient to failure. This should begin with the top leadership and trickle down.
Emphasize the importance of collaboration
To make a DevOps transformation successful, enterprises need to get everyone on the same page — from individual contributors to the top management. This begins with making sure that there is motivation, incentive, and most importantly the right mindset and culture for cross-team collaboration. We live in a service economy and everything today is about delivering top-quality applications to customers, emphasizing the crucial need to work together and therefore continuous delivery. Organizations should also help teams visualize end-to-end workflow that gives them a breakdown of what they need to work on next, how much work is in progress, where the bottlenecks are, and more. This acts as a catalyst for a relationship-building environment as everyone knows who is working on what part of a service at a given time and how much each person is contributing to the overall success.
Break away from a culture of blame
One of the key steps to getting rid of silos is to make sure that information about failure or a problem is passed on in a non-blameful manner across a team. DevOps success hinges a lot on people working effectively together, and enterprises have to get rid of environments that breed on blame culture. The need is to make sure that the teams understand the problem and its solution and not focus on who caused it.
We hope these ideas will help you get started. If you've tried out some of them, tell us your story. Meanwhile, don't miss out to check out our reading list for DevOps. Happy reading!