Lots of companies are implementing a DevOps strategy to make the communication between developers and operations faster and smarter in order to accelerate the software development phases and to make business more agile. It often happens that during this process, companies are more focused on the DevOps tools without considering the professional resources needed for this change. The DevOps methodology needs the right people in the right role with specific competences.
In our opinion IT leaders should ensure the presence of 7 new professional roles able to drive the passage towards this new methodology to guarantee the success.
According to Stephanie Overby's vision, explained in her article “7 DevOps roles you need to succeed”, given the lead change agent as DevOps supervisor, the 7 main actors should be:
Other experts affirm that it is difficult to define a real DevOps Team, but it is important to understand who the main roles are to drive the transition. “Being DevOps an innovative methodology that takes lots of changes, the competences and characteristics of these roles is continuously evolving” says Marco Bizzantino, CTO at Kiratech S.p.A.
A real unique scheme doesn’t exist, but our experience can help us. “DevOps is not only a set of technologies, but a real cultural change” continues Marco Bizzantino.
The acronym CALMS, explined in the previews post, defines the main DevOps points, Culture, Automation, Lean, Monitoring, Sharing. This journey helps to develop software faster and easier and consists in a set of practices, culture, values and solutions implementation.
A common error is to combine the Dev and Ops silos creating a third silo called DevOps, without thinking about the context. This method is superficial, and it doesn’t work.
The DevOps key consists in the collaboration between developers and operations; to make it possible, it is fundamental to think about the existent development and operations roles and re-assign them for the continuous delivery of software, from the ideas and development to production and maintenance.
The new DevOps roles include already existent resources from the agile, product, engineering, security, IT, quality assurance and operations teams, all orchestrated by a unique company’s focus.
If we think about the basic DevOps aim to increase the software development process velocity, it’s easy to understand that the roles are shifting. All the DevOps collaborators have to acquire a larger and deeper comprehension of what the specific objectives are. A developer is not only a code writer, he has to understand the needs, to write, test and deliver the code. A tester is not only responsible for the functionalities to be as expected. He has to be sure that the user experience of the application is the best that it can be.
The new roles’ definition is not enough for a successful DevOps transformation, but it is a good starting point. For companies it is often hard to understand that people represent the most important component for success, so they hire before defining the strategy and the related needed competences.
Here below you can find a list of the 7 main DevOps roles:
He has to promote the DevOps advantages, identifying and quantifying companies’ benefits deriving from a higher agility. In quality of the “leader of change”, the DevOps Evangelist ensures the collaboration between developers and operations and removes the fear of change. Inside the company it is important to adopt a culture according which failure is certain, but it is also the way for continuous improvement.
You can call him release manager, release engineer or product stability manager but the focus is the same: he cares about the product’s management and coordination, from the development stage to the production one. He supervises the coordination, the integration and the flux, test and implementation development to support the continuous release process. He focuses on the distribution tools and end-to-end applications.
One of the most important DevOps bases is the automation. The Automation Architects, called also integration specialists, analyse, and implement continuous deployment strategies, ensuring a high availability of the pre-production and production systems.
They have a complete automation role involving the DevOps and Cloud solutions.
This role is fundamental because organizations have to provide an extremely reliable and automated environment.
Inside a DevOps organization the new role of Software Developer/Tester stands at the core of the process with lots of responsibilities. DevOps developers are not responsible only for the transformation of new requirements into code, they also have to deal with the testing, distribution and continuous monitoring processes. This passage often includes the execution of more automated tests.
There are some teams that are still thinking to make manual test maintaining a high level of agility. This is not possible, and the situation will be unmanageable if there is the necessity to test manually new builds every day. In these cases, the quality of the product will decrease until the processes won’t change.
As the Quality Assurance functionality is often a part on the software development process, it is necessary to introduce a new type of control after adopting the DevOps methodology. The QA tester will be replaced by the XA experts who will ensure that all the functionalities are released in view of the end user experience.
In the traditional waterfall development process, the security of the system is often an optional, a non-functional requirement and, as the QA, applied only at the end of the system’s development. DevOps organizations on the contrary must have a security engineer working together with the developers, giving his contribute since the beginning. In this case we are talking about “security by design”, to underline that security must be a part of the whole application.
The DevOps environment needs a new type of IT Operations or System Administrators to be involved in the software development process. These operations’ expert, called also DevOps Engineer, ensures that the quality assurance, resources and security are considered as priorities.
It doesn’t matter if they have a development or operation background because organizations are looking for Utility Technology Players (or DevOps Engineer) able to work efficiently on different platforms, like development, tools, networks, servers, databases, which are cross-functional between development and support departments.