LF

DevOps Anti-Patterns

24

APRIL, 2019

by Mark Robinson

It’s the normal case with software buzzwords that people focus so much on what something is that they forget what it is not. DevOps is no exception. To truly embrace DevOps and cherish what it is, it’s important to comprehend what it isn’t.

A plethora of resources are available in the form of definitions, principles, and guidelines that explain what DevOps is. But there’s not much that explains why and how most people are wrong in what they see as DevOps. In this post, we’ll look at eight anti-patterns you might hear about DevOps and discuss the truth behind them.

 

Anti-Pattern 1: DevOps Is Merely Merging Development and Operations Teams

I’ve never liked it when I’m asked to summarize an extensive concept in a few words. This anti-pattern is a classic example of why one has to dive deep into something before jumping to conclusions—because “Dev plus Ops equals DevOps” is the sort of answer that’ll probably earn you only grace marks in an exam. It’s not DevOps just because you combine your development and operations teams and call it DevOps.

The collaboration between teams is just a part of the process—not the entire process. The concept of DevOps extends beyond that. It involves employing different practices and processes that hold good and are to be followed across the whole delivery pipeline. DevOps calls for collaboration even on predevelopment and postproduction stages. Doing so enables the teams to help each other with the tools they use.

Anti-Pattern 2: Agile and DevOps Are the Same

DevOps and agile complement each other, but they aren’t the same. DevOps helps you manage your entire engineering process. Agile, on the other hand, comes in handy when you want to deal with complex projects. Agile guides you through how you can go about developing your software. But to seamlessly deploy your software and move to production—you’d want DevOps tools to do that. Agile bridges the gaps between customer requirements and the development/testing teams. DevOps addresses the gap between the traditionally siloed development and operations teams.

Anti-Pattern 3: DevOps Is All About the Tools

Oodles of DevOps tools that serve different primary functions are available in the market. Sure, the more of these you have in your tool kit—and the more you learn how to use them effectively—the better will be the business benefits that you drive out of it.

But DevOps isn’t just about the tools. Just because you employ an automation tool, that doesn’t mean that you do DevOps. You actually have to augment it end-to-end and ensure that continuous improvement is done for a successful DevOps implementation. By selecting the right tools and tool chain, you only initiate your DevOps journey. For it to be fruitful and to achieve the end results, you need people, process, and cultural changes.

Anti-Pattern 4: You Need a Dedicated DevOps Team

The core of DevOps focuses on eliminating silos between the units in an organization. When you bring together a DevOps team, you actually create a new silo. That’s another team now that you’ll have to try and integrate with the other teams. So, the only thing you’ll get if you try to institute a DevOps team for the long run is a bad case of irony.

However, if you’re trying to pioneer DevOps, you can have a short-term DevOps team. Because a lot about DevOps is subjective, there’s usually an element of ambiguity that comes in when you try to embrace it for the first time. During its nascent stage, it makes sense to have a “DevOps team” work on your implementation strategies, the guidelines to adopt, the tools needed for adoption, etc. But once your DevOps goals are clearly defined, you’ll have to dissolve the team to truly embrace DevOps.

Anti-Pattern 5: DevOps Is Only About Automation

There’s no denying that automating tasks is a critical element in DevOps. But DevOps is more than just automation. Automation plays a fine role in enabling you to achieve your end goals. But if your automation strategy isn’t a part of your organization’s DevOps mindset and cultural shift, then it’d be wrong to see it as an entirety of DevOps. Automating a segment of your delivery pipeline may fetch you some worthwhile results. But if you stop at merely automating it and not doing anything else, it’s not accurate to call it DevOps.

Anti-Pattern 6: DevOps and Security Are Foes

DevOps and security aren’t enemies. Sure, the primary focus of DevOps is on continuous delivery. But that doesn’t mean that DevOps completely leaves behind the aspect of security. If you’re a security engineer, you don’t have to detest DevOps.

Conversely, DevOps actually provides a platform to incorporate the element of security in the early stages of the development process. Doing so administers increased security to the code prior to its deployment. Of course, you’d have to have the right operational and automation tools to do that. In fact, the term “DevSecOps” has been coined and is used extensively. It encompasses the principles and guidelines to embed security into your DevOps approach.

Anti-Pattern 7: DevOps Gets Rid of Operations

The assumption that DevOps completely eliminates IT operations isn’t true. If in your DevOps deployment the production team complains that an app has some issues related to operations, it just means that you’re doing it wrong. It doesn’t mean that DevOps fosters an environment of NoOps. The operations teams continue to play a crucial role.

Traditionally, the development and operations teams have quite different goals. DevOps focuses on streamlining these goals and channeling them to work with common business goals. It provides transparency, which allows the two units to collaborate and build software while having the production configuration at the back of their minds.

Anti-Pattern 8: DevOps Isn’t Feasible with Legacy Systems

A large chunk of enterprises still operates with their legacy systems. So one common reason why people are skeptical about DevOps is that they assume DevOps isn’t for legacy systems.

But that’s not entirely true. DevOps certainly is a present-day concept and is well-suited for organizations to achieve modern-day business goals. However, it’s equally good and goes hand in hand even with long-established legacy systems. A potential barrier is that when legacy systems were architected, there’s a good chance that the aspect of automation was not considered back then. So, going forward with the DevOps approach might translate to large-scale redesign. It, of course, has its own challenges.  But once you get past that stage, you can expect to reap significant benefits out of a DevOps approach in the long run. It’s not a cakewalk, but to say that DevOps simply can never work with legacy systems is incorrect.

I hope this post cleared up some common misconceptions that many people have with DevOps. Of course, I’ve tried to cover only a limited list, and there are a lot more of them out there. As a rule of thumb, don’t simply believe in anti-patterns just because you happen to hear a lot of people talk about them. Remember, if 50 million people say a foolish thing, well—it’s still a foolish thing! The important thing here is not to let anti-patterns—whether they’re outright wrong, partially right, or actually factual—hold you back from making informed DevOps decisions for your organization.

Mark Robinson

This post was written by Enov8 blogger Mark Robinson. Mark graduated from the SRR Engineering College and started his career as an engineer in the manufacturing industry. But he also has years of content writing experience as a freelancer under his belt, so he understands the importance of effective communication in the tech world. Off work, Mark is a sports enthusiast who loves to play chess.

Relevant Articles

5 Red Flags Deployment Management Is Failing

20 MAY, 2019 by Mark Henke It’s a great step when teams deliberately manage their deployments instead of treating them as second-class citizens to writing code. But there are many pitfalls to managing deployments effectively. Many things lurk, waiting to trip us up....

5 Red Flags Enterprise Release Management Is Failing

08 MAY, 2019 by Mark Henke Taking enterprise release management seriously is a great step toward helping our organization flourish. Embracing release management will allow us to make the invisible visible. We’ll be able to effectively manage how work flows through our...

Marrying SAFe and DevOps

04 MAY, 2019 by Rodney Smith If you work in an organization that uses the scaled agile framework (SAFe), chances are it's not a small company. It's enterprise-y. It's probably gone through some growing pains, which is a good problem to have in the business sense. The...

DevOps vs. DevOps at Scale

29 APRIL, 2019 by Carlos "Kami" Maldonado "DevOps at scale" is what we call the process of implementing DevOps culture at big, structured companies. Although the DevOps term was coined almost 10 years ago, even in 2018 most organizations still haven't completely...

Delivering at Scale, Why SAFe Is Essential for Agile Teams

16 April, 2019 by Eric Goebelbecker Your organization is in the midst of an agile transformation. You know that agile is the way to go, and you're looking forward to, or maybe already reaping, some of the benefits. Who can argue with what agile brings to the table?...

Top 5 Container Metrics

28 March, 2019 by Christian Meléndez Even though containers are different from virtual machines (VMs), most of the metrics you get from a container are pretty similar to the ones you get from a VM or a physical server. What’s different is the meaning a metric has in a...