A recent report by LinkedIn has revealed that the “DevOps engineer” is the most in-demand, heavily recruited job on the site and that the sky-high demand for employees in this role is set to continue this year.
In fact, according to the report, the top three most hired-for jobs are in technology: DevOps engineer, enterprise account executive, and front-end engineer. This shows just how extensively digital disruption is affecting the international employment landscape.
However, whilst DevOps is firmly in the business zeitgeist, the job title can be somewhat vague and the responsibilities of the role can differ from company to company. Indeed, some engineers argue that “DevOps” is more of a company-wide culture or mindset rather than a single job and that DevOps engineers’ responsibilities can overlap with other types of engineers, such as site reliability experts.
Tackling the pace of change
“Change is the only constant”; this well-worn phrase has special significance for developers. The role of the DevOps engineer is constantly morphing, and as enterprises are increasingly pressured to move quickly, developers are finding themselves taking on more responsibility than ever before.
Indeed, this need for speed is a driving force behind many of the changes we’ve seen in software development, and most importantly in the creation of the DevOps function. Where testers, developers and quality assurance (QA) teams once had distinctly different jobs to do, the functions are quickly merging and streamlined DevOps teams are now tasked both with making apps and services and ensuring they are of the highest quality.
The job has also become increasingly complex. For example, continuous testing for digital now calls for the capability to deal with and leverage mobile and progressive web, augmented and virtual reality and artificial intelligence. And as the pace of change marches on, this ability to flex with new developments is crucial.
But what is the secret to dealing with new tech innovations, while breaking down silos and bridging the gap between development and operations teams? And what are the key skills that developers need to make this happen?
At Perfecto, we believe the most successful DevOps teams (particularly those who are striving to reach test automation maturity) are able to ask themselves – and answer – the following simple questions:
- What is wrong with my test code?
- What is wrong with my lab (be it on-premise or in the cloud)?
- What is wrong with my execution and orchestration?
Asking these fundamental questions calls for an approach where developers continually review their processes, spot faults early, and adapt to change. But calling for changes, and altering testing and development processes isn’t always straightforward, particularly when it involves changing relatively mature strategies or deploying teams differently.
The most successful developers are those with strong leadership skills and the ability to confidently and quickly make a decision in the hustle-bustle of a DevOps environment. They need to be able to react and adapt to change.
Indeed, the ever-changing nature of code means that it’s critical for developers to quickly make decisions on how to fix or change any incoherent or broken elements of code, allowing teams to maintain momentum in a build and to add or update code to power new releases or updates.
A commitment to collaboration and flexibility
The aim of DevOps is to improve the relationship between development and IT operations – advocating better communication and collaboration between the two units is key. This may seem simple on paper, but changing long-standing processes is difficult, and so successful developers have a crucial role in bringing the two teams together.
Anyone working in DevOps must be flexible, able to move fast in an unpredictable and ever-changing world. Engineers must be comfortable moving from one area of software construction to another, be it integration, testing, releasing or deployment. And, of course, Continuous Integration requires the technical skills to manage change quickly and efficiently.
Flexibility is needed in coding, too – to be a successful and effective DevOps engineer you must have the ability to continuously develop and integrate new systems and operations into the code.
A gamut of technical skills
Talk of coding leads us to the discussion around more technical skills, which are varied and difficult in the DevOps environment. Test Driven Development (TDD) for example, is the reverse of the traditional approach of software development where the code is written first and then tested. In a TDD scenario testing is done first, and then, the code is written – a totally different experience and method to learn.
For many, behaviour driven development (BDD) is the key to fixing a defect/bug at an early stage of any development cycle. And Acceptance Test Driven Development (ATDD) is an important technique now used to bring customers into the test design process before coding has even begun.
Indeed, TDD, BDD & ATDD are the terms which have revolutionised the tester’s world in Agile. Learning these skills, and keeping up to date with technical developments in coding and development is vital to the success of any individual working in DevOps, and importantly to wider teams.
In addition to these specific development techniques, broader technology innovations like Machine learning (ML) and Artificial Intelligence (AI) are poised to change the nature of software development and will call upon DevOps to hone new skills. The need to continually update apps brings so many challenges such as needing to analyse more data more quickly, while their margin of error also decreases constantly. By using ML and AI testing solutions, developers can reduce and, in some cases, eliminate false negatives and continuously maintain test code. These tools, as well as predictive analytics, offer a way to address these challenges by being able to process data much more quickly and thoroughly. Today’s tedious and unreliable tasks can be improved, but only if developers can harness the potential of data and turn it into actionable insights.
Whilst DevOps might be the most sought after role for enterprises, the skills and abilities under the hood of this “catch-all” job title are pretty complex.
The technical skills needed to succeed (such as BDD, ATDD, and general coding abilities) come hand in hand with soft skills that leaders often overlook (e.g. the need to be decisive and assertive in teams).
Ultimately, the development world has fundamentally changed over the last decade, and there’s little doubt anymore that DevOps has evolved from being the bright, shiny object that everyone talks about to being the necessary reality. With this in mind, it is important that organisations spend the time and money in not just finding the best people, with the right skills, but investing in their training and development too.
Written By Eran Kinsbruner, the lead technical evangelist at Perfecto