Discussion of what distinguishes DevOps engineers is all over blogs, articles and government forums. There are a number critical points, an example, pushing coders — not just code — over the wall into operations.
On this, Amazon CTO Werner Vogels said in an interview about developers take on more responsibility for Digital Transformation, including operations, (technology and service customers management) that, "the traditional model is that you take your software to the wall that separates development and operations, and throw it over and forget about it. Not at Amazon. You build it, you run it. This brings developers into contact with the day-to-day operation of their software. It also brings them into day-to-day contact with the customer."
According with Aliza Earnshaw, Puppets´ blogger specialising in technology, “there’s no formal career track for becoming a DevOps engineer. They are either developers who get interested in deployment and network operations, or system admins who have a passion for scripting and coding, and move into the development side where they can improve the planning of test and deployment”.
In order to carry out Digital Transformation in a productive way, companies need to implement DevOps as a requirement to fit the organisations and goals. However, DevOps is more efficient if parallel organisations develop an agile philosophies, being implemented and managed by two different groups: ‘business capabilities teams’ who work on the application in question and ‘agile operations teams’. These two teams map to an organisational layering characterised in cloud native organisations. Both shared roles and responsibilities in Digital Transformation processes for DevOps and agile implementations. The most important roles and responsibilities being the following:
- Build new apps
- Build new and modify existing build packs
- Manage continuous delivery process for apps
- Install, configures, upgrades and scale cloud services underlying IaaS infrastructure.
The role of a DevOps Engineer is not only coding, as they need to manage the operations knowledge needed to support the application in production with help of other colleagues. Thanks to the practice of pairing, knowledge and expertise are quickly spread amongst teams. Developers are not expected to be experts at operations concerns, but they have to support operations staff to perform operations management tasks to deploy applications and achieve company´s goals.