By Necco Ceresani from XebiaLabs
DevOps is one of those transformative concepts that falls under the painful classification 'easier said than done.' No matter how you define it—and, yes, there are plenty of definitions to muddy the waters and frustrate even the most ardent enthusiast—DevOps is quite a nasty challenge in the real world.
At its simplest, DevOps brings together disparate teams that traditionally might not communicate, or want to communicate with each other. Those teams are: development people, QA people, and operations people. The core idea of DevOps is to bring those teams together to improve collaboration and share understanding of the entire application lifecycle—with the goal of building more scalable, higher quality software that delivers better service to customers.
However you slice and dice it, DevOps is always going to be a complex mixture of processes, people, tools and—(let's not ignore the elephant in the living-room) fiefdoms. The keys to making DevOps happen are harmony, consistency, and transparency.
Many enterprises struggle to blend teams together, fail to separate vendor hype from tool functionality, and aim too high too quickly.
Having worked in the DevOps space for many years with hundreds of enterprise clients, I've noticed a recurring series of mistakes that companies make in implementing DevOps.
DevOps Mistake #1: Not Getting Early Approval from All Parties
This is a variation on the idea of setting your sights low and reaping the predictable rewards of a lack of vision. As the innovator behind your company's push to DevOps (whether you are a business executive, Dev person, or Op person), you've got to get all parties on the same page at the same time. Oh yes, don't ignore the QA people, because they will be pivotal in ensuring your software meets the rigors of market readiness. It doesn't matter which team you consult with first as long as you share your vision with the other teams and relay the concerns of each team to all involved.
Make sure that everybody buys into the goal of streamlining and simplifying the process of developing market-ready software.
DevOps Mistake #2: Not Spending Vital Time to Create a Transition Plan
Your first pilot or full-blown software release will be your blueprint for creating a plan that helps all teams transition from legacy software development to DevOps automation. Make sure you document the process, get the buy-in of all parties, and use the accumulated knowledge to draft a transition plan that everyone can accept.
DevOps Mistake #3: Failing to Automate Two or Three Apps from Development Through Production
The smart approach to implementing DevOps is to automate two or three small apps upfront so your teams can discover all of the nuances of the application delivery process. This approach will enable you to identify what's involved in the entire process, who the main people are, and what the requirements are for getting software from A to Z.
DevOps Mistake #4: Only Implementing 'Basic DevOps'
Can Lead to Disaster
Doing basic DevOps (implementing some automation functionality in the Dev and Integration environments) is relatively easy for most enterprises. However, incorporating all interested parties—notably QA, Stage, Pre-PROD, and PROD into your DevOps plans—requires considerable thought and effort. If your DevOps initiative cannot operate smoothly across the entire delivery pipeline, you can expect your initiative to crash and burn!
DevOps Mistake #5: Falling Into the Trap of Creating a Special DevOps Team
In theory, the logic is fine: Establish a dedicated team to focus on feeding and watering the newest beast in IT. The migration to full DevOps should be smooth and painless, right? Two problems typically rear their ugly IT heads:
- This new team can become another bureaucratic silo that exists in a vacuum.
- Existing teams in Dev, Ops, and QA feel left out and do their best to derail the efforts of the new team.
DevOps Mistake #6: Missing the Big Picture
As trite as it sounds, it is true: People are the backbone of your DevOps implementation. People literally make all the difference, especially in terms of how well they interact with each other, share knowledge, and understand and agree with the common goals of DevOps.
Getting all interested people on-board the DevOps train is always hard, even for small companies. The task becomes extremely hard in large enterprises because hundreds of people and several layers of business structures are typically involved. Think: Messy politics and massive resistance to change of any sort.
On the surface, implementing DevOps in an enterprise seems relatively straightforward: Buy some new tools, get the Dev and Ops people on board, create a plan, and go for it. Major problems can arise when enterprises fail to do their homework, such as getting early approval from all parties, creating a special DevOps team, and generally 'missing the big picture.' However, the positive takeaway is this: Your implementations of DevOps can be quite painless if you avoid common mistakes.
About the Author
Necco Ceresani is the community marketer at XebiaLabs, a provider of automation software for DevOps and Continuous Delivery, helping companies to accelerate the delivery of new software.