Definition of DevOps
According to Ken Mugrage, the Chief Technology Officer at Thoughtworks, an American Technology Consultancy, DevOps is: "A culture where people, regardless of title or background, work together to imagine, develop, deploy, and operate a system". Ken Mugrage
Reason for Coming up with DevOps
Many organizations develop and run products separately with separate teams, which is known as running products in information "silos". Both have conflicting views on the production environment and on how to measure success:
This is an example of standard conflicts between Development and Operations silos inside an organization, each of which act on conflicting goals and different understandings of success:
- The development team strives to get their changes propagated towards production and their end users quickly, as the number of new features and services is what they might be measured by and as they strive to get end-user feedback.
- At the same time, the operations team might do their best to keep the scenario as stable as possible - as outages would endanger their team's goals.
- Here, development and operations are just the two key representatives of all the roles contributing to the success of a product by contributing to its value stream. In addition, you often find experts from other areas directly involved, such as quality assurance managers (QA), user assistants (UA), user experience experts (UX), and product managers (PM).
The biggest challenges do not lie within the silos, but between them. Different silos might metaphorically speak different languages (that is, use different terms and bring a different context) and have different goals, meaning that they lack a shared definition of "done". That might lead to misunderstandings between each silo.
DevOps is an organizational approach that rejects the creation of silos by forming cross-functional, autonomous teams. This means teams are composed of team members who have a direct impact on the creation and implementation of a specific product.
This would end up in a transformation similar to the example in the following video animation:
This cross-functional team has the following characteristics:
- Efficient and direct communication using a mutual language.
- Common goals and principles.
- A common definition of project completion.
These characteristics ensure any changes to a project are standardized, commonly understood by the team, and ensure the product is functional at market scale.
DevOps is a Change in Culture
Going back to the Ken Mugrage definition, click on the highlighted words in his DevOps definition below, to discover more details about the change in culture entailed by the DevOps concept.
You can now describe DevOps, its definition and its purpose in creating cross-functional teams that work towards better products.