Three Misconceptions About DevOps
For a concept that is barely a couple years old, DevOps is red hot. No conversation about software development is considered complete without the mention of this new buzz word. But the growth in its popularity has also given rise to several misconceptions. Misconceptions that, if left unchecked, can ultimately derail an organization's genuine desire to get better.
Below are three of the most popular misconceptions about DevOps.
1. DevOps is only about the tools
Many organizations consider DevOps to simply be a tooling exercise. Where getting the right tool is the key to the DevOps puzzle and that once its implemented correctly, the organization will be well on their way for faster turnaround times. Unfortunately, the reality is a bit more complicated.
What many don’t realize is that - first, DevOps requires not just one tool but an entire chain of tools. Stitching tools from multiple vendors (open source and paid) is not only painful but requires skills and mind set that is usually foreign to the enterprise. Second, for the tools to work effectively the back end infrastructure has to change as well. In many cases dramatically undoing years of organizational process, protocols, and control. Third, and arguably the hardest, changing the people and processes to enable a seamless deployment process across multiple silos that traditionally have had diametrically opposite objectives.
It has been my experience that organization that follow a tool led strategy ultimately end up either buying more tools, being stuck or (worse) frustrated and throw in the towel. Better yet, start with an assessment on your software delivery lifecycle. Indentify your key impediments (the top 5 are given below), prioritize, and attack accordingly.
2. DevOps is only about Automated Deployment
Its easy to fall into this trap. After all, most of the DevOps products / services currently available in the market place focus on deployment - using software to automate the deployment cycle.
However, if you look at the data, there are 5 key impediments to realizing the full benefits of DevOps. The five are (in order of importance), environment availability, manual deployments, test and use case set up, governance, and development practices. In other words, environment availability and configuration causes more delays (i.e “waste” for you lean process buffs) than any of the other four. It is no wonder that organizations that just focus on the automated deployment aspect run into serious obstacles during implementation.
So instead of just solving for deployment, solve for the first two impediments first. The two are closely linked together and doing so will release the bottleneck at the end of the software delivery life cycle, bringing you some benefits early and in turn putting pressure to improve on activities earlier in the life cycle.
3. DevOps is all about improving cycle time
It is true, DevOps is all about speed. Leaders such as Facebook, Netflix, Etsy, Amazon release new code into production multiple times a days. But what good is speed, if it takes an army to deliver bad code. Which brings me to my last point, inherent in DevOps value proposition is not just speed, but also quality and productivity. In fact the three are closely linked, and without any one of them the other two fall apart.
Lets start with productivity first. Most IT leaders get this one, after all if you are using automation you are using less resources and that frees up their time to focus on more value added activities. But quality on the other hand, is not initially apparent. If you dig deeper, you will find that there are four dimensions to quality improvement. First, making small code changes to production dramatically decreases the risk of things breaking. Inserting one new line of code is easier to test rigorously than 100 or 1000 lines. Second, standardized, repeatable, and reliable processes executed by software bring in a level of rigor and quality improvements that is usually unmatched by manual processing. Third, many defects arises due to a mis-match between the dev / test / prod. environments (how often have we heard – “it worked on my box”). DevOps does away with these platform mismatch bugs by automating the configuration so that every environment looks the same. And fourth, due to automation you can ping pong code between dev and test teams frequently, to the point where most bugs are fixed, which in turn greatly increases the confidence that the code will work in production.
So, while you may be chasing the sexiness of speed…make sure you keep an eye on the nuts and bolts. If you do it right, you should be able to enjoy all three for the price of one.