By Yaniv Yehuda
DevOps is revolutionizing the workplace. Today an ever-increasing number of organizations are implementing DevOps, fueled by reports of the benefits of DevOps, which include faster time to market, reduced costs, increased security, and higher quality products. This enables DevOps teams to deploy code, in some cases, 30 times more frequently, and with 50 percent fewer deployment failures than their competitors. As a result, companies are rushing to hire DevOps engineers. They are having difficulty finding them, however.
A recent study by Indeed.com ranked DevOps engineers as the hardest hires for tech companies. Lack of talent - as opposed to money or other company resources - is the primary reason major organizations cite as the biggest impediment to implementing DevOps. But where there is a need there is an opportunity, and more people are choosing to steer their careers in the direction of DevOps. Here’s what you need to know to begin your DevOps career.
DevOps is a portmanteau of development and operations. The term first became popular at a small tech conference in Gent, Belgium and has since become a part of high-tech parlance. DevOps refers to a practice that emphasizes collaboration between software developers and other information-technology (IT) professionals while automating the process of software delivery and infrastructure changes.
DevOps is achieved through tools, processes, and automation, but, even more than that, through a change in organizational culture. DevOps requires strong teams, communication, and transparency between departments. Everyone is involved throughout the software creation process and, therefore, everyone gains a sense of ownership over the final product.
DevOps is defined by expertise in three specific skill sets:
- Coding and scripting
- Process re-engineering
- Collaboration with others
Combined, these skills indicate the new way of writing software. Once a lengthy process of creating code from scratch from start to finish, creating new products today can simply be a matter of choosing a stack of components and stitching them together with code. Authorship has become about ensuring that the new software will work across a diverse set of operating systems and platforms immediately. Similarly, unlike in the past, testing and deployment are now done frequently, instead of at the end of specific stages.
DevOps engineers are a valuable part of any company. Kelsey Hightower, head of operations at Puppet Labs, describes them as the “Special Forces” in an organization, adding that “the DevOps engineer encapsulates depth of knowledge and years of hands-on experience.” While it’s true that a major component of DevOps is the mindset within the company, there are definitions of what creates a solid DevOps engineer.
First and foremost, a DevOps engineer must be able to understand and use a wide variety of open-source tools and technologies. Today’s stacks are comprised of dozens of different software solutions and being assertive with each one is vital, from IDEs to databases and source control tools. The ability to make them all work together is also crucial, making the ability to code and script just as crucial.
Other skills necessary for the job are more about mindset. They include:
- Ability to collaborate, communicate, and reach different departments
- Comfort in a fast-paced, ever-changing environment
- Years of experience with systems and IT operations
- Strong emphasis on business outcomes
- Data management skills
Becoming a DevOps Engineer
There is no specific educational or career track for becoming a DevOps engineer. Many DevOps engineers are either developers who take an interest in deployment and network operations, or system administrators who maneuver into the development side of the process. They are individuals who have pushed beyond their defined roles and competences to gain an all-inclusive view of their technical environments.
Some have claimed that a college degree is not necessary for the role, and while that is true in some cases, preference is almost certainly always given to individuals with a computer science degree (CS) or computer science with electrical engineering degree (CSEE).
For those wishing to go from their programming education to a role as a DevOps engineer, there is no way to account for the lack of experience, but there are things one can do to differentiate themselves from others like them. Extending knowledge through services like Linux Academy and Amazon Web Services can result in one faring much better in interviews than someone without these abilities.
The Life of a DevOps Engineer
One who achieves the rigorous requirements to become a DevOps engineer can expect to be greatly rewarded. Because of the shortage of talent, it is not unusual for salaries of $200,000 or more to be offered to team leaders. Even junior team members with only six months of experience can expect anything between $80-90,000 in compensation. Experts working as consultants can expect even higher rates of remuneration.
The job can be stressful at times, but Job satisfaction is high and companies tend to give preferential treatment to engineers who prove to be exceptional in order to keep them from going elsewhere.
It’s never been a better or more profitable time to consider DevOps as a career path or career change.
Also see: 9 Best Practices for DevOps
About the Author
Yaniv Yehuda is the co-founder and CTO of DBmaestro, an enterprise software development company focusing on database development and deployment technologies. Yaniv is also the co-founder and the head of development for Extreme Technology, an IT service provider for the Israeli market.