I’ve been asked thatÂ question several times, 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”), 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 the practice, the people that is called “DevOps Engineer” is nowadays an “Agile” System administrator.
They will set the tools that allows automation ofÂ the building, testing and deployment of the applications. They will probably help the QA and the Developers, providing self service tools, for making their life easier, improving their performance and quality.
In the other hand, since that “Agility” is something implicit in the Cloud, they will also be required to have knowledge of Cloud Providers, what are the services they offer, how to architect and maintain them. However, theoretically the DevOps culture could be applied in an on premises environment as well.
Taking the question back of who should be implementing DevOps. It is a responsibility of all the team, not only of the guys called DE. It should be a culture that is implemented from the Management, Team leaders, Developers QA Analysts, Architects. Just everybody should be aware of that and set their goals accordingly.