What Is DevOps? The million-dollar question, it is. Much like the trailer for “Star Wars: The Last Jedi,” it seems like everyone is talking about DevOps. It has made waves in the technical community, bringing with it promises of increased development speed and business agility. And while we can’t really tell you what’s up with the melodramatic shots of Mark Hamill in the trailer (okay, we’ll stop it for now), we can confidently say that the benefits of DevOps are contingent on a business’ ability to both understand and implement certain concepts across the organization.
So, what exactly is a DevOps team, then?
Unlike traditional development or operations concepts, there are many nuances to DevOps roles and responsibilities. One thing is for certain: there is no such thing as a singular “DevOps.” DevOps means many different things to many different people. Ultimately, however, your definition of DevOps is all about how your organization can use and benefit from certain concepts. Let’s review.
What’s in a word?
Without dwelling on the obvious, DevOps is a combination of the words “development” and “operations.” Under this model, development and operations teams are no longer siloed as two disparate departments. If “Ops” is a blanket term for engineers, operations, and system administrators, then “Dev” expands beyond developers, and includes everyone developing the product (including QA and product). DevOps acknowledges the importance of collaboration between development and operations.
Often, these two teams are merged into one in which engineers work across the entirety of an application’s lifecycle. From this practical standpoint, the term is a cross-disciplinary practice in which operations and development engineers participate in the entire lifecycle of an application or product. However, it also includes design, development, support—and everything in between.
Okay, so how is DevOps different than engineer roles?
For starters, software engineers are primarily concerned with the production and delivery of applications. These roles deliver specific, predetermined business requirements and objectives. Traditionally, both developers and operations professionals have leveraged similar techniques, ranging from testing to Agile development. Therefore, DevOps leans heavily on Agile and Lean methodologies, right? It does. However, DevOps extends beyond the simple coding principles of Agile principles to include the overarching concept of service delivery.
DevOps roles are concerned with building infrastructure that improves the process of developing applications. To this point, CAMS (culture, automation, measurement, sharing) is an acronym designed to describe the core values of DevOps:
- Culture: As mentioned, DevOps attempts to break down silos across a team. Culture is concerned with communication and collaboration throughout the software supply chain to ensure the best possible outcome.
- Automation: Because DevOps is basically built on the concept of automation, this aspect is straightforward. By leveraging automation, DevOps is designed to optimize productivity, prevent defects, and create consistency.
- Measurement: This concept centers around the idea of continuous improvement through data, because without measurement, automation is not possible. Data should be transparent and accessible.
- Sharing: Sharing is caring at organizations with a DevOps culture. Sharing tools and code with team members helps new features get implemented.
What is DevOps not?
Software these days is a central component of a business. And companies interact with customers well beyond the development and implementation processes. While some may think that DevOps roles are largely developers taking over operations, the demand is largely initiated by operations teams. Simply put, businesses need more agility. That’s why DevOps roles cannot be pigeonholed.
DevOps is not just concerned with development and operations. As we’ve mentioned, the term should be as flexible and inclusive as possible. Consider security professionals, network admins, and anyone in between—and look to them when building a DevOps team. And it’s more than a job title. You need developers who can deploy code, system administrators who can dive into code, and team members who can work across platforms, tools, servers, networks, and databases.
One more thing: DevOps is not everything. While we’ve remained admittedly laissez-faire about our definition of the term, it can be tempting to write it off as an extension of Lean or Agile thinking. While there are many parallels between these concepts, it’s important to look beyond the terminology. Sure, DevOps is about increasing collaboration and culture, but it’s more so about integrating operations into the mix.