A netizen on Reddit has this confusion:
Obviously, there are not enough good engineers in any field, but why are DevOps / SRE talents particularly difficult to find?
This question triggered everyone's discussion, and the answers in it summarized these points:
"DevOps Engineer": Overused term
Leaving aside the old talk of "DevOps is a culture rather than a role",
DevOps engineers need to do anything: including local server system management, build engineering, release management, cloud infrastructure management, internal tool development, IT Support, distributed system engineering, cultural promotion or almost anything related to technology. The range of skills that DevOps engineers have to master is so wide and they carry so many responsibilities that the requirements for skills and tools when screening resumes for the team are too confusing.
For DevOps team managers, some people tend not to use the word
DevOps, but it is now very popular. The best thing a company can do is to look for decent system administrators and people with development skills (or have good ability + good attitude). Many people value attitude and willingness to learn more than hard skills. As long as there is an excellent senior tutor, these people who are willing to learn can learn a lot. The extra benefit is that this person learns your way of doing things and best practices so that you can avoid an employee who is too selfish.
There is no traditional educational pathway to
DevOps
The diversity of experience and background is one of the strong advantages of the DevOps community, but talent is difficult to be discovered early. An excellent DevOps engineer can come from anywhere: many DevOps engineers do not have a formal computer professional diploma, and some even come from non-technical backgrounds such as law or accounting. It would be great if there were better certifications/degrees that really verified the "DevOps" skills, but the current status quo can only be like this.
There are also some excellent candidates who have technical strength and good soft skills, but in some cool interviews (such as whiteboard interviews, etc.), they are not well displayed. Some people mentioned that the best way is "trial" Work: Candidates come in to work with the team. If they perform well and communicate well, they can stay. But this is difficult to achieve.
Popular tools are relatively young
Obviously, you hire engineers with 20 years of AWS experience and people with 10 years of
kubernetes production management experience. But if everyone has less than three years of experience with these tools, it is difficult to determine who is more capable.
Why are DevOps and SRE positions so difficult to recruit?
Yes, all tools are very new. So looking for smart, motivated people (people with good operational skills and some development background) may not have all the skills now, but you can take the time to cultivate them slowly.
Some people may have only two years of experience, but they actively set up the company’s entire Azure infrastructure, Arm templates, and automated testing. If someone shows the initiative to innovate and the company will run more smoothly from a technical point of view, they should be given the opportunity to give them a trial period of 3-6 months to prove that they are worth keeping.
For job seekers, the following points are generally mentioned.
Salary and benefits
It is difficult to recruit a developer who can write good code.
Want to find developers who understand the infrastructure? That's almost impossible.
Want to find developers who understand infrastructure, automation, deployment, networks, operating systems, databases, etc., do not want to pay enough salaries? good luck.
A netizen mentioned that an excellent
DevOps engineer in his area (Denver) starts at about $125,000 a year. Senior DevOps engineers earn approximately US$165-185K.
Stack Overflow's latest developer survey results in 2018 show that DevOps experts have the highest income in many countries, and the median annual salary of DevOps experts in the United States is close to $100,000. Looking at the various accidents that caused the failure to delete the library, it is known that a senior DevOps person is really worth the money.
If your Title is devOps and your annual salary is less than $100k, congratulations, either you are a release engineer or a system administrator.
Second, culture/welfare/work-life balance. SRE is in great demand. Even if you can meet the salary and experience needs in your area, how is the company's culture? If it is worse than my current working environment, why should the applicant consider you? Salary is important, but more experienced engineers know that money is not everything.
In summary, the reason for this problem is that DevOps/SRE is now very popular. If you want to recruit high-level talent, you must give more attractive salary and benefits than their current job. Alternatively, it can also recruit a junior talent to slowly cultivate.
Full stack myth
SRE / DevOps is considered a "part-time" job. Even though they managed hundreds of services and thousands of instances/containers, they did not build microservices in Java in their skill set. Or they don’t know the whiteboard data structure and binary tree because they don’t need work.
But the company hopes that they can understand everything: "There must be 5 years of programming experience, must understand CI/CD, will use docker, kubernetes, linux, windows, Azure, GCP, AWS, jenkins, understand octopus deployment, VSTS, etc."... …
The company is not clear about the positioning of DevOps/SRE
For this, the main problem is that the company believes that they need a DevOps or SRE person to fill multiple vacancies that require people from different backgrounds.
Hiring DevOps is difficult because employers often don’t know what kind of
DevOps people they want. About DevOps, it can be roughly divided into three categories:
DevOps with partial operation and maintenance-system administrator, has some network skills, and can proficiently write scripts in at least one language other than shell / powershell. They deploy and automate various components of the IT infrastructure and can help solve problems with these components. They can also determine the infrastructure requirements for the next project and can set up CI/CD pipelines to deliver infrastructure artifacts.
DevOps with partial development-they are skilled developers and understand the company's development stack. They can delve into and troubleshoot build/deployment failures. They can also identify resource requirements (such as JVM settings) and potential frameworks to use. They are familiar with build scripts and setup builds, and know how to add and utilize performance indicators for applications that are being used or created. They can support things such as application software development best practices and can start/use existing CI/CD pipelines to provide software artifacts.
DevOps tool experts-They are proficient in the management of DevOps pipelines and can assist local development or other IT members to use the tools. They can keep abreast of the latest information on DevOps tools in the IT industry and can help build and guide the implementation of DevOps pipeline changes.
Advanced system operators may not have X years of experience in X Cloud, but they may have been using cloud-based tools. Anyone with experience in VMWare, Chef, Docker and other tools should be able to transition to other virtual and cloud technologies.
Lack of recognition
The reality is that most managers do not understand everything about DevOps. For pure software developers, they have a set of indicators-the number of check-ins, the number of lines of code written, the number of JIRA issues solved, etc., but they don't know how to measure the level of DevOps staff. It’s important to keep everything running properly and ensure smooth deployment through automation, but managers don’t understand how this happens and how to measure it.
There are also many managers who view DevOps as a cost rather than a source of revenue. They treat DevOps personnel as one-time and interchangeable objects and refuse to invest in the resources required for DevOps personnel to work smoothly. In addition to the lack of support, DevOps personnel may also be doing dirty work: the automated tools that are trying to use are sometimes bugs everywhere, which is really tiring.
From the perspective of company managers, anyway, if you haven't trained excellent DevOps personnel from within your own engineering staff, then you should ask yourself why. If you don’t value DevOps, no one else will, and it will be difficult to recruit people.
Employers who are really looking for DevOps / SRE should return to the question of "who is responsible for production interruption". If the answer is a DevOps / SRE position, then this employer's recruitment has many challenges. If they say the entire product team, then at least their understanding of the real situation is correct. If something goes wrong, they will not just want to find someone to cheat on, so it is easier for such a team to find the right talent.