In an article in InfoWorld, Adam Bertram takes a look at some of the most common misconceptions and flawed implementations of DevOps. Chances are, your company has fallen prey to at least one of them so read on.
Sign No. 1: You Need to Buy “the DevOps”
“DevOps” cannot be obtained overnight with a simple check and a little training. It is a transformational approach to core processes, and it takes time, dedication, and especially a team that can implement DevOps practices, many of which will fly against your company’s previous modes of operation.
If your company has a DevOps budget, you’re doing DevOps wrong.
Sign No. 2: You Equate Software and Tools to DevOps
DevOps consists of a number of facets that go beyond configuration management; don’t focus in on only one simply because a solution exists and it’s tangible. If you look for something tangible to latch onto in your journey to be a DevOps ninja, you will fail.
If your company bought Chef or Puppet as a cure-all for its DevOps needs, you’re doing DevOps wrong.
Sign No. 3: You Use Checklists or Runbooks to Manage Code Deployments
DevOps-heavy cultures realize that even though it may take more time to introduce automation up front it will pay off through more reliable and faster code deployments in the future. Your company must understand that everything is on the table for automation. This means deployments, testing, code check-in policies, servers builds — everything.
If your company spends hours poring over checklists to ensure code is ready to be deployed, you’re doing DevOps wrong.
Sign No. 4: You Release Code to Production Every Few Months (or Years)
DevOps is synonymous with concepts like continuous integration and continuous deployment. Notice the key word in both terms: continuous. DevOps is about consistently having developers check code in as often as possible, which kicks off automated tests.
For the true DevOps rock stars, it’s also about taking that code and sending it directly to production through continuous deployment. If your company allows developers to check in code that goes through automated pre-check-in tests, gets handed over to another set of tests to ensure that the code is ready for production, then goes live on your production servers if deemed ready automatically, then you know you’ve achieved DevOps greatness.
If your company releases code changes less frequently than the harvest moon, you’re doing DevOps wrong — no matter how small the changes or how quickly you make them.
Sign No. 5: You Consider Failure Unacceptable
When the code you committed goes on to blow up a production database, what happens to you? Does your boss publicly scold you? Do you get immediately called into a manager’s office for a “closed door” meeting? Is losing your job or your ability to deploy code to production ever again a possible outcome of committing code? If so, then your company is not practicing DevOps.
If you are no longer trusted with commit rights to production because you have made or might make a mistake, you’re doing DevOps wrong.
Sign No. 6: You Blame Others for System Problems
True DevOps practitioners believe that when something goes wrong the fault doesn’t lie with the individual using the system but the system itself. For developers and systems ops to get along, a blameless culture must be supported. Suppose a developer creates an application, tests the application on his computer, and hands the code over to operations. If a problem occurs when ops puts the code into production, ops can’t blame the developer for writing shoddy code, nor can the developer blame operations for not managing servers correctly.
If your company is firing staff simply for bringing down production, you’re doing DevOps wrong — regardless of any presumed role or responsibilities you attribute to those involved.
Sign No. 7: The Developers and Operations Groups Look Like Two Grain Silos
DevOps weds the word “developer” to the word “operations.” If your developers and operations people still aren’t on speaking terms, you don’t have a chance at doing DevOps right. DevOps is all about collaboration. It’s about coming together as a team to help the company, as a whole, achieve its goal. If your operations people refuse to communicate to developers other than throwing work over the proverbial wall, your DevOps dreams are toast.
If your company has developers on one floor and operations on another, with code commit messages as the only means of communication, you’re doing DevOps wrong.
It’s All About the Culture
DevOps is not for every company. There are situations that warrant a more meticulous approach to code management. However, even if your company isn’t fully committed to building a DevOps culture, there are many facets of the DevOps philosophy that can be applied to your practices successfully.
Above all, DevOps is a cultural philosophy. It takes patience, lots of hard work, an understanding of people, and a business that will support it to truly thrive.