Debates about what DevOps is have been going on for several years. However, rather than being a static entity, with a single definition, DevOps may be closer to a practice, with some underlying principles that remain constant, and with forms and applications that vary according to the experiences of the practitioners.
A DevOps practice is easy to recognize
An example of such a practice is kungfu. The name kungfu does not denote fighting. Instead, kung can be translated as work or achievement or merit. The word fu means man, but can be taken in the sense of human. Translated, kungfu means excellence achieved through long practice of one's skills.
Even though there are many schools of kungfu, someone who practices it is easy to recognize. The same is true of DevOps. Although there are many schools of DevOps, there are some underlying principles that comprise the foundation for all of them.
DevOps is both a cultural and a professional movement
A definition that describes DevOps as a whole is that it is a cultural and professional movement, focused on how we build and operate high velocity organizations, born from the experience of its practitioners. Breaking this definition down into its components:
- DevOps is a cultural and professional movement, just like heavy metal or hip hop is a culture, or otaku. It's also a professional movement, just as lead guitarist, MC, or animator are professions within their respective cultures.
- DevOps is about building high-velocity organizations. Everyone who practices DevOps is doing it to create these types of companies.
- DevOps is born from the experiences of its practitioners. Although many people assume that the original DevOps practitioners were web innovators, that's not necessarily true. What does matter is that DevOps practitioners are alway honing their skills and looking for ways to improve.
The first principle of a DevOps practice
There are several principles that mark someone's practice as a DevOps practice. The first principle is that:
DevOps practitioners design products for the safety, contentment, knowledge and freedom of their peers and their customers.
Safety can mean human safety, it can mean safety of information. It can also have a broader meaning, which is the ability of individuals to act without fear of unintended consequences. DevOps builds organizations where people can express themselves without getting hurt.
Contentment means being satisfied with the things you have. Constant happiness is not a realistic goal for a DevOps practice. You will always have bad days. Contentment is a realistic goal. If you feel good about the people you work with, the systems you're building, and the outcomes you expect, you can achieve contentment. Even on bad days, you'll have a community of people you can rely on to help you get through.
Access to knowledge is a leading indicator of social progress. The goal isn't to minimize the amount of knowledge you need. The goal is to make sure people can access the knowledge they need when they need it. For example, can your engineers see the revenue the company generates and why? If they can't, how can they even begin to understand what products and features will improve the business?
Freedom is the power to act or speak or think without hindrance or restraint. DevOps empowers people to act. DevOps means that you trust the people in your organization, no matter what their job, and give them the freedom to do what they know best.
People over products
A final marker of DevOps practitioners is that they put people over products and companies. DevOps practitioners, when they talk about what they're doing and why they're doing it, talk about people before they talk about the company or the products the company makes. DevOps practice prioritizes the human beings who are doing the work.
This article discusses the relationship between DevOps and Lean principles. It is based on Adam Jacob's talk, Chef Style DevOps Kungfu, delivered at ChefConf 2015.