Figuring out the most optimal way to enable agility and rapidly deliver services to customers—without compromising quality—continues to be one of our industry’s biggest challenges. Many IT leaders agree that implementing DevOps practices can significantly accelerate software releases while still assuring our applications meet quality objectives.
If you’re considering a move to a DevOps delivery model, here are six approaches I’ve found to be critical for ensuring a successful DevOps adoption within an organization.
1. Embrace a DevOps Mindset
DevOps doesn’t begin by just stating, “Let’s do DevOps,” and jumping in with tools. Your entire organization needs to have a clear understanding of what DevOps is and what specific business needs it can address, and, most importantly, everyone needs to be willing to change the way things have always been done.
One way to begin this process is to identify your current application value streams—the series of activities necessary for moving your products from development all the way into production. Understanding where in this delivery process there are constraints, bottlenecks, and wait queues will allow you to which activities you should concentrate on improving.
Identifying areas where your current delivery process is inefficient and must be improved is your opportunity to truly make change in your organization. But in order to do so, you must be willing to experiment. Short-term failure is acceptable, as long as you’re learning from it and improving. Instead of accepting inefficient ways of doing business because that’s the way it’s always been done, you will need to encourage your organization to ask questions like: “Why do we do this [process]? What’s its business value? How can we make it more efficient?”
Organizations often equate DevOps with automation. While automation can help accelerate manual processes, DevOps is fundamentally about collaboration and communication. If you don’t embrace strong communication and collaborative practices among everyone in the software development, testing, delivery, and operational process, automating your processes will not yield the business benefits you desire.
2. Make the Most of Metrics
One of the most overlooked initiatives in DevOps adoption is selecting the right metrics to record and track progress. Establishing the right baseline DevOps metrics early on and not being afraid to measure things that might initially not make you look very good is the key to being able to show demonstrative progress over time and real business benefits to senior leadership.
From my experience, these are some of most useful DevOps metrics:
- Production failure rate: how often the software fails in production during a fixed period of time
- Mean time to recover: how long it takes an application in production to recover from a failure
- Average lead time: how long it takes for a new requirement to be built, tested, delivered, and deployed into production
- Deployment speed: how fast you can deploy a new version of an application to a particular environment (integration, test, staging, preproduction, or production environments)
- Deployment frequency: how often you deploy new release candidates to test, staging, preproduction, and production environments
- Mean time to production: how long it takes when new code is committed into a code repository for it to be deployed to production