In recent years, I’m sure you have heard a number of different definitions of the term DevOps, and you are likely just as confused as many of us who are still trying to figure this out. As with many technology buzzwords, “DevOps” has become an overloaded term that means a variety of concepts. Hence, before we can explore whether DevOps is still important for you and your team, let’s first clarify what DevOps really is so that you can decide how much time and attention to invest.
What is “DevOps”?
Many organizations that I have worked with over the past decade or so see the concept of DevOps as one of the following:
- A set of tools
- A process
- A set of principles
- A culture/mindset
This is where the confusion lies – there is no singular definition of what “DevOps” actually means. Since there is no formal definition of “DevOps,” companies have taken the liberty of applying the term wherever it makes sense to them, which is usually one or more of the above. In my experience, tools and process are most commonly mapped to DevOps, while the principles and culture often become an afterthought.
The phrase “DevOps” became ubiquitous around 2007, formed by merging two concepts together – “Dev” for “Development” and “Ops” for “Operations.” While the key idea is that you shouldn’t manage the two functions as separate entities with a handoff in the middle, reality creates a challenging situation for these two activities to co-exist and function as one entity. The reason for this is that “Dev” focuses on implementing changes/innovation while “Ops” focuses on stability and predictability. The idea of “DevOps” was conceived in an effort to blur the line between Dev and Ops and encourage higher level thinking (i.e. systems thinking) and collaboration by breaking down silos.
How does DevOps make a difference?
When you meld together two groups and two collections of activities, friction and conflict might occur. This is a necessary part of change in an effort to achieve meaningful change. What benefit can an organization expect to gain by going through all this effort, which is likely to cause disruption to current processes? The potential benefits of DevOps reside primarily on efficiency and quality gains; by looking at the end-to-end process flow from the perspective of the end consumer/customer, DevOps enables teams to explore ways to reduce waste and improve efficiency gains that can dramatically enhance time-to-market and product quality.
So what does “systems thinking” really mean? It means that an organization must look at the bigger picture and try to optimize the entire system rather than investing valuable time and resources on portions of that system that may not lead to much gain. For example, if you wish to improve the speed of your race car, simply swapping out the engine may not be sufficient if you do not account for other critical systems such as the transmission, the differential, the exhaust and intake system, and the tires. You will likely see some gains in speed by upgrading the engine alone, but you may not reap the benefits of that new engine if you forget about all the other related components that help the engine perform at its maximum potential.
How do teams apply DevOps?
In order to achieve maximum gains from deploying DevOps practices, many components must be addressed. A major process change will only make a difference to the overall effectiveness of that process if the people and tools are there to complement the change. This means teams must work differently, apply different tools, and function within new structures. Many organizations feel that all they need to do to embrace DevOps is add more tools to their technology stack. However, tooling is only a small, albeit important component. More often than not, a successful implementation of DevOps methods will leverage some type of Agile team construct in order to supplement the technical practices.
How do I know if I need to apply DevOps?
In summary, DevOps is no longer a new concept and many companies have already integrated these ideas and practices into their culture. If your organization values continuous learning, customer satisfaction, fast feedback loops, optimal efficiency, and a culture of systems thinking, DevOps will help you make significant strides towards your goals. If you are building a software solution, DevOps is almost mandatory in order for your team to remain competitive against others in the market. As the level of sophistication for tools and processing power continue to grow at an astounding rate, your organization will likely realize the need to transform how you operate sooner or later; taking a proactive approach will improve your likelihood of gaining the competitive edge that others are seeking as well.