Zenergy’s experts have been helping companies optimize modern software delivery methods well before DevOps became a buzzword. Every time we help a client improve their modern software delivery capabilities, we refine our playbook. What works well for one client, may not be the best solution for another. Every solution needs to fit the culture, the teams’ work style, and the software release goals of the organization. However, there are a few fundamental DevOps pitfalls that are common in the majority of clients we help. Most organizations mature their DevOps and CI/CD pipelines through lots of trial and error, taking longer than it should to reach their goals. We want to share the five most common DevOps pitfalls we encounter in companies so you can avoid them in your organization.
Let’s dive in…
Common DevOps Pitfalls
DevOps Pitfall One: Treating DevOps and CI/CD as the Same Thing
DevOps does include automatic build processes and infrastructure, but it’s much bigger than CI/CD alone. In other words, DevOps and CI/CD are not the same thing. Imagine DevOps as a bicycle wheel with CI/CD as one of its many spokes that helps it run.
Like any highly functioning team, DevOps success relies on the collaboration of key players. Development engineers and operations staff must work together throughout all stages of the development lifecycle, from design to the development process to production support. DevOps is a culture based around a set of behaviors that encompass the entire software development lifecycle, not just software developers and operations folks.
It brings together software development, deployment, information security, QA, release management, and other disciplines to form a cohesive set of behaviors. Focusing mainly on CI/CD does not mean a company is doing DevOps well.
David Dang, Zenergy’s VP of DevOps and Automation says, “The lack of a well-defined DevOps concept within organizations means the teams will suffer under inefficient paradigms of old, where Dev, QA, and Systems Admin are siloed. Teams that lack the true DevOps culture of communication, collaboration, and transparency will not move forward like they want.”
Anytime teams are throwing something over a wall, it’s difficult to pinpoint where failures occur. Properly practiced DevOps help teams overcome these obstacles and accelerate time-to-market.
DevOps Pitfall Two: Focusing Only on Dev and Ops
From Zenergy’s experience, a number of companies get super focused on Dev and Ops only when implementing DevOps. This may make sense because the name is “DevOps,” after all, but there’s more to the story.
As the folks at theagileadmin.com have relayed:
“Ops is a blanket term for systems engineers, system administrators, operations staff, release engineers, DBAs, network engineers, security professionals, and various other subdisciplines and job titles. Dev is used as shorthand for developers in particular, but really in practice it is even wider and means all the people involved in developing the product, which can include Product, QA, and other kinds of disciplines.”
Thinking DevOps is only development and operations leaves out most of the players involved in the production cycle. For example, while infrastructure is part of Ops, it is also a network tool. Going back to our bicycle wheel metaphor, a mature DevOps process relies on:
- Information security
- Tools Group
- Quality Assurance including Automation
- Change Management
- Release Management
- Application Support
There are more areas but you get the idea. Only including development and operations in the DevOps culture will prevent you from obtaining the DevOps optimization and the mature release pipelines you want.
DevOps Pitfall Three: Thinking DevOps is Mainly About Tools
DevOps relies on tools to complete tasks faster and increase collaboration between groups. And picking the right tools is important. But the amount of tools leveraged in the DevOps spectrum—source code control tools, CI/CD tools, communication and collaboration platforms, monitoring tools—are already vast and expanding quickly.
Spending inordinate amounts of time picking the perfect tool, (there is no such thing, by the way), then training teams to use that tool, is wasted time if the tool can’t mirror your ideal process. The tool may be able to get the job done with clever workarounds and some manual intervention, but the experience may be more difficult and frustrating than it needs to be, which often leads to minimal use of the tool.
When companies ask what tools they should use, the answer is, “It depends on your process.” To select the best tool for your organization, you must understand your current process flow, make sure you have optimized it, then determine which tool will work for that process with minimal customization. And, there may be a tool that works great with a minor part of your process but doesn’t work well with another tool you need for a more critical process, then the perfect tool for that small area, may not be the perfect tool when looking at DevOps and your pipelines holistically.
Bottom line is, create your ideal processes first, then find the tools that fit those processes with minimal customization and manual intervention.
DevOps Pitfall Four: Quality as an Afterthought
Many companies build, build, build development code without building critical quality checkpoints into every pipeline stage. These pipelines may release software fast, but do they provide high-value if bad and buggy code gets through? Yes, we want to be as fast as possible, as long as acceptable quality is baked in. In your DevOps initiatives, it’s critical to analyze what each pipeline stage provides you from a quality standpoint. There are many ways to inject quality stages into the pipeline with minimal slowdown, and those stages pay dividends over time when bad code is caught early. Most of us in the development arena know the basics around shifting left, catching errors earlier in the process to save time and money. A DevOps culture for early defect detection where the pipelines boast the maturity of quality checkpoints throughout, will put you ahead of the competition who build immature pipelines that simply release bad software faster. When building a mature pipeline, some of the quality stages you want are:
- Static Code Analysis
- Unit Tests
- Unit Integration Tests
- Code Coverage
- Infrastructure Verification
- Post Deployment Testing
Incorporating these quality stages from the beginning will significantly increase your pipeline’s maturity and value.
DevOps Pitfall Five: Lack of Dashboarding and Reporting
A successful software development pipeline has communication and transparency between all groups. This is vital. Everyone must be on the same page so no group or individual is out of the loop and left behind. The right dashboards help get buy-in from stakeholders and makes the entire process run more smoothly.
Unfortunately, this key component doesn’t get the priority it needs in many DevOps initiatives. Like quality in DevOps Pitfall Four, dashboarding and reporting tend to be an afterthought. When failures start to accrue, and finding the root cause is not simple, companies begin to realize they need something more in the pipeline to help guide decision-making.
The right dashboarding and reporting, with transparency, not only facilitates decision-making, it also helps refine the process and pipelines themselves by allowing the entire team to monitor all stages of the development cycle. When problems crop up, and they will, these issues don’t go unnoticed. And when you’ve coached the team on proper logging and reporting, it helps everyone involved drive to the root cause, which prevents future failures.
Zenergy’s top DevOps expert, David Dang, says, “If certain stages within the pipeline fail a high percentage of the time, the visibility will help make it a priority to find out why.”
These feedback loops are key to DevOps and pipeline success. With proper dashboarding and reporting, you will not only save time, money, and a lot of headaches, you will also save face with customers and end users by producing better software.
Don’t let DevOps Pitfalls Derail You
The software delivery landscape has changed drastically in the last decade. Clinging to the old ways of software development will stunt your organization and leave you behind the companies who embrace modern software delivery techniques. Doing DevOps right will help you become one of those companies embracing modern software delivery. So remember:
- Know the difference between DevOps and CI/CD and treat them accordingly
- Go beyond the Development and Ops group to include the other IT support functions
- Make process a priority and ensure chosen tools support those processes
- Make quality a priority so you don’t simply release bad software faster
- Create the proper dashboarding and reporting into your processes from the beginning
Building a mature DevOps organization depends on much more than these five concepts, of course, but any group incorporating the above ideas into its DevOps philosophy will be on a solid foundation that will provide high value quicker.