DevOps: fundamentally, it’s the collaboration between Development and IT Operations. Okay, but what does that mean exactly? What is DevOps, really? Well, it depends on who you ask.
While DevOps is certainly the buzzword of the software industry, with popularity comes criticism, and many people seem to disagree on what its definition truly is. After extensive investigation, these are a few of the themes we’ve found most people seem to be able to agree upon.
The Age of Agile
Maybe a few years ago siloed contributors could get away with creating high-performing deployments when they were only releasing features every few months, but amid today’s frequent and faced-paced release cycles, having isolated departments just doesn’t fly. This, of course, is because of the massive shift toward Agile development.
Luckily, if you know a thing or two about Agile, you have a basic foundation of what DevOps strives for. In fact, in the Agile Admin, Ernest Mueller says that the best way to understand DevOps is to equate its definition in reference to the philosophies of the Agile Manifesto.
That is to say, if you want to build new features, get fast feedback, ship often, and ensure quality, you have to have a certain infrastructure to make that happen. This includes having values, methods, tools, and teams working in harmony.
We’d like to think that DevOps is pretty just a common sense approach to successful Agile —
“Since the Agile methodology was only implemented during the development phase, the operations department was left behind, leading to deployments piling up faster than it was possible to release them,” noted DevOpsGuys.
By bridging the gap between two departments that instinctively should work together but weren’t, deploying rapidly and efficiently became a more achievable goal.
The Dev + Ops Alliance
Maybe you haven’t noticed, but culture is really big deal in the software development and IT landscape.
It seems like the most successful organizations are putting culture at the forefront, and it makes sense. With so many moving parts and processes, having everyone on the same page is the only way to be productive and proficient.
When we say culture is this scenario, we’re not talking about open offices, holiday parties, and company perks. In DevOps, the talk of culture is more of an encompassment of communication, transparency, collaboration, and respect.
This also means ending the stereotype of Development vs Operations. While the skill sets and day-to-day focus of those in Development and Operations may differ, they should complement each other to act as a united front. There should be investment in innovation and problem-solving across the board.
Additionally, the more developers are willing to improve their own operational knowledge and the more Ops is willing to learn about about best practices in development, the more cohesive the whole workflow will be.
At the end of the day, DevOps is all about being able to work well together. The effect of that, of course, is more frequent integrations, faster deployments, and better results.
Defining What is DevOps
We always come back to this description:
“DevOps is the practice of operations and development engineers participating together in the entire service lifecycle, from design through the development process to production support.”
Like DevOps, Mueller’s explanation is broad. It leaves room for interpretation without limiting teams or defining what a role does or does not do, because that really depends on a lot of things.
People are never going to agree on one version of DevOps because it’s not consistent. You can think about it as a culture shift, an answer to Agile and Continuous Delivery, or simply just an effective approach to the software development life cycle.
Some may say there’s no such thing as a DevOps team, while some may agree it exists and be tempted to leave the term behind forever because of ambiguity and popularity. However, if a team calls itself DevOps and produces great software, there’s probably something we can learn from it.
Maybe the more we try to define DevOps, the more complicated and controversial it’s going to become, and we should simply focus on the principles and the processes that are working — unifying siloed departments, collaborating often, and leveraging a diverse array of strengths.
What’s your definition of “DevOps”? Tell us what you think in the comments!