The DevOps space is growing tremendously and significantly, but it’s proving to be a real challenge to address the inevitable enterprise concerns of standardization and governance without disrupting creativity and innovation. There’s still some debate about the best team structure, and DevOps is rapidly expanding beyond development and operations to include security, testing, business, and project management. It requires a mix of new skills, tooling, and a culture change to succeed.
How does an enterprise spread the knowledge that’s required for DevOps across a diverse set of team members with varying skills and experience levels? We can find some valuable insights from those who have been there and done it. Let’s take a look at 10 best practices for implementing and scaling DevOps.
Relate to company goals
It's vital that everyone buys into the DevOps vision if it's to be properly supported. In order to do that you need to create a real business case that relates what you are doing with your core business goals. There has to be a clear argument for how DevOps will deliver value in your organization.
One step at a time
You can't boil the ocean. Take small steps with DevOps and build it from the bottom-up. Start with one or two projects and the right teams and then gradually expand things. There's no need to throw everything away. Fear of failure is a big obstacle, so take it slowly to begin with.
Prove it works
Start small, with an enthusiastic team, and prove the business value. Demonstrating success will encourage others to get on board, and help you to win the approval you need. Clear business value brings top-down support.
Challenge the status quo
Sometimes things are done a certain way simply because that’s the way they’ve always been done. Silos must be broken down and unnecessary bureaucracy should be stripped away. Challenging gatekeepers and their motivations may be a vital part of changing your company culture.
Direct communication over documentation
The idea of breaking down barriers and encouraging more collaboration starts with proper communication. One direct step towards boosting human interaction is to cut down on documentation. You want everyone at the table, communicating as effectively as possible, to focus on building the best possible software for the customer.
One of the main potential benefits of DevOps and more frequent software releases is the ability to experiment. If you want to be truly successful and innovate, then you must be free to try new things. They often won’t work, but with the right apparatus and a shared understanding that experimentation involves some overhead, you can sweep what doesn’t work aside quickly and replace it with something that does.
Automation, visibility, and control
If the team has a big picture view and understands why a certain feature has been requested, they'll do a better job of delivering it. DevOps shouldn't be a magic black box; you need windows into what's going on inside and the ability to change direction when you feel it's needed.
Measure and analyze
You have to understand what you’re expecting DevOps to deliver at the outset and put the right metrics in place to determine how well your implementation is progressing. This is a shift that can take a long time, especially within a large enterprise, and so the ability to measure, analyze, and tweak your approach is absolutely vital.
Don't forget quality
You can get too focused on the delivery process and ensuring that everything is running smoothly, but it's important to stop and take stock of what you’re actually delivering. The benefits of maintaining a high level of quality are sometimes less tangible, but it must be part of your DevOps foundation before you look to build on top. Building in test automation can help give you the confidence needed to move forward from traditional QA processes.
Adapt for your ends
DevOps and Continuous Delivery are really just a collection of the latest and greatest learning about how to improve as professionals, teams and organizations. It’s evolving all the time, it’s not written in stone, so it’s possible to take what you need and adapt it for your purposes. DevOps may not be perfect and it won’t always work, but it’s the best thing we’ve tried so far.
About the Author
Andrew Phillips, VP of DevOps Strategy for XebiaLabs, a provider of software for Continuous Delivery and DevOps. The author is a cloud, service delivery and automation expert and has been part of the shift to more automated application delivery platforms. He contributes to a number of open source projects including Apache jclouds, the leading cloud library, and is a co-organizer of the DynamicInfraDays container community events.