The term “DevOps” has been creeping into our collective industry language for some time. It’s to the point where it’s quickly becoming a buzzword. However, while the term may be fairly new, the concept isn’t. In many ways, it’s a return to the roots of computing. A time when engineers (then working on mainframes) were both ‘developer’ and ‘operator’ of nascent computing devices.
The term is a combination of “development” and “operation.” It refers to a methodology which combines software development with IT operations. In short, it’s a practice in which operations and development engineers work in tandem. The goal? To develop, deploy, and improve software throughout the lifecycle of the product or service.
In the past, development and operations teams were often separated. This siloed approach worked to the extent that it allowed individual people, teams, and then entire organizations to specialize in specific parts of the process. However, this approach also has its shortcomings.
DevOps is a broad term that is often used to apply to a variety of tasks. With that in mind, no definition will be 100% accepted by all players across the IT landscape. The US Department of Defense defines ‘DevOps’ as:
“The integration of software development and software operations, along with the tools and culture that support rapid prototyping and deployment, early engagement with the end user, and automation and monitoring of software.”
This is a solid definition. If that’s how you think of DevOps, you aren’t wrong. However, to dive a bit deeper, there are a few foundational principles that we believe almost universally apply to the DevOps space:
- Tactically, a pervasive and disruptive use of automation
- Strategically, a means of aligning all of the constituents in the software development lifecycle, including those who create software and those who manage it
- Culturally, a shift in how people interact in and around technical work as a result of the prior two outcomes
We see DevOps as a set of practices which focus on reliability and repeat-ability. Of delivering technology from “idea” to production to implementation in as fast, efficient, and automated a way as possible.
Applying DevOps practices and principles to your organization can be a powerful asset. First, identify and plan the basics. Regardless of your definition, DevOps in practice entails the coordinated and continued synergy of both development and operations team members.
Work through the process, identifying how you will combine these teams into one cohesive effort. Tools and tactics can be applied later in the process when teams are already working together in a focused manner.
A Final Word
DevOps as a term is sure to go through several more inceptions. As more industries seek to appropriate the practice for their own benefit, new interpretations will follow. However, the one unifying principle that exists regardless of definition is the interaction between what are, or would otherwise have been Development and Operations team members. The critical success factor is how an organization leverages these practices to operate more efficiently and how they capitalize on their operational experience to write, develop, test, and implement better products.