What is DevOps really?

What is DevOps really?

I’ve been asked that question several times, and I’ve read a lot of completely different answers during the last time as well. I will try to give my version.

DevOps is a new culture (not that new actually), based on communication and visibility. The idea (defined as the “three ways” - covered in books like "The Devops Handbook" or "The Phoenix Project"), is to have a clear understanding of the business impact of every change (flow), then to have short cycles allowing very fast feedback and finally to be able to practice experimentation without restrictions.

Who is going to implement all of that?, probably a lot of people will answer: should be a DevOps Engineer. Well, theoretically it should be the case, but in practice, the person that is called “DevOps Engineer” is nowadays a kind of an "Agile System Administrator". They will set the tools that allow automation of building, testing and deployment of the applications (and the infrastructure where they will run). They will help QA and Developers teams, providing self-service tools, and improving the performance and quality of the released software. They should be included in the development lifecycle from the beginning (enabling short feedback cycles).

On the other hand, since that “Agility” is something implicit in the Cloud, they will also be required to know about Cloud Providers, what services they offer, and how to architect and maintain them. However, the DevOps culture could be applied in an on-premises environment as well.

Taking the question back, who should be implementing DevOps?. It is the responsibility of the team, not only of the guys called DE. It should be a culture that is implemented by the Management, Team leaders, Developers, QA Analysts, and Architects. Just everybody should be aware of that and set their goals accordingly.