From developer to DevOps. 10 areas you need to know.
If we have any hot trends among IT positions and areas of work – then certainly, over the past few years, DevOps methodology is one of them. Those attracted to becoming a DevOps Engineer/Specialist are enticed by the high – even for the IT industry – salaries, the opportunity to broadly increase their range of competencies, and the undoubted job satisfaction. For many experienced Software Engineers, DevOps seems a natural path for further career development. Is that appropriate?
What is DevOps?
In a nutshell, DevOps is a methodology for running IT projects, that combines the areas of development and operations (as the name already suggests), but also automation, and application deployment to the testing and monitoring. It significantly improves the product development process: it facilitates collaboration, saves time, simplifies the introduction of changes and verification of their correctness. Simply put, the product gets to market faster, and in better quality, and there are fewer conflicts within the team. The starting point, for working as a DevOps engineer, can be any of the areas that make up this methodology. In practice, however, the course of re-training may be easier for developers.
Essential competencies.
What skills will we need as DevOps? To what extent, do they overlap with the competences of a developer? To answer these questions, let’s list the most important ones:
- understanding of the software development and delivery process,
- knowledge of tools for building Continuous Integration/Continuous Delivery – CICD processes (Azure DevOps, Jenkins, GitHub Actions, etc.),
- at least basic knowledge of application development (application programming),
- ability to work with a code repository (usually Git),
- implementation of code delivery to the client (application deployment),
- ability to write automation scripts + infrastructure as code (IaC),
- ability to manage servers and implement server infrastructure,
- ability to configure network infrastructure,
- knowledge of virtualisation (servers) and containerisation, e.g. Docker,
- knowledge of monitoring tools.
An experienced developer will have many of these skills, but there are also other areas that need to be completed:
+ An understanding of the software development and delivery process. Typically, developers will have a very good understanding of the process. This is an excellent base for a DevOps person who, knowing the requirements of the developers, will try to prepare an optimal process.
+/- Knowledge of CICD process building tools. Developers usually have knowledge of them, but only from their perspective, e.g. how to check if a deployment was successful, or what the test results are. They may lack the skills to implement the CICD process, itself, in these tools.
+ At least basic knowledge of application development. Developer experience in this area is a treasure trove for DevOps. It will allow the implementation processes to be tailored to the characteristics of the application.
+ Skills in working with a code repository. Developers will also shine in this area. The knowledge acquired so far, will definitely make their work easier.
-/+ Implementation of code delivery to the customer. Usually, developers are only partly involved in the implementation part itself, and with a DevOps team dedicated to the project, they may not have much to do with it.
– The ability to write automation scripts + infrastructure as code. This is an area developers deal with rarely, or may not deal with at all. They need to learn scripting languages, specific configuration solutions, IaC solutions, etc.
– Network infrastructure configuration skills. Every developer should understand how network infrastructure works, and usually does. However, he or she has limited exposure to the design and implementation process.
– Skills in server management and server infrastructure implementation. A situation analogous to the above. The developer should have theoretical knowledge and understanding of this area, but usually requires additional hands-on training in managing multiple servers, configuration, deployment, and task automation.
– Knowledge of virtualisation (servers) and containerisation e.g. Docker. A good developer understands the concepts of virtualisation and containerisation, but here too, he or she may lack the skills associated with deploying, configuring, and maintaining services in production (or larger scale) environments.
– Familiarity with monitoring tools. The developer will need to be familiar with new monitoring tools, in particular, infrastructure-related and network-related monitoring.
A matter of time and commitment.
Analysing the job requirements of DevOps, it is apparent how many areas of the developers’ and DevOps’ work overlap, and the position of Software Engineer is a solid foundation for growth in the new role. The most challenging part for a developer will be the administration, server maintenance, network infrastructure, monitoring, and automation. However, this is knowledge that will be relatively easy for the developer to complete – provided time and commitment is invested.
Challenge – soft skills.
A bigger challenge may be in the area of communication and soft skills. The DevOps engineer often becomes the first line of contact for all team members, working on software development in this methodology. This will not be the story for every developer. It can also be difficult to take on more responsibility. It is no longer just about being responsible for your own code, but also for the maintenance, deployment, and security of the entire infrastructure.
Is it worth it, then?
There is no shortage of jobs for DevOps, and the wide range of competencies is increasingly appreciated in the IT job market. The median earnings of DevOps engineers in 2022 were, according to Awareson, PLN 150-230 net per hour on contract, and PLN 20,600-25,800 gross per month, full-time. Developing and delivering software in this methodology works, which is why more and more companies around the world are adopting it. Demand for DevOps will grow in the coming years, and so will their accompanying rates. This provides such specialists with security, and the work itself, is very rewarding.
DO YOU WANT TO DEVELOP IN THE IT OR SAP AREA? CHECK OUT OUR OFFERS.