In scanning the IT landscape, the call for DevOps engineers remains toward the top of many companies’ priorities. A nationwide search through various job posting sites returns literally thousands of DevOps opportunities. However, reviewing these job postings shows that the skillsets required are widely varied. In comparison, software development job descriptions and requirements tend to have a narrower focus – broadly speaking, a language and a particular framework. DevOps job descriptions and requirements range from implementing continuous integration and continuous delivery (CI/CD) processes, to building infrastructure, to configuration management, to cloud operations, to writing code in any number of languages, and so on. It’s an impressive and intimidating list. Have you considered joining the DevOps wave but have been challenged in getting a clear picture of what DevOps is or means? If so, you’re not alone.
What is DevOps?
While many organizations have DevOps teams, even within a single organization, there are likely to be multiple roles within a DevOps team. Why is that? The reason is that DevOps is a process, and various roles within a DevOps team each contribute to the process. The DevOps process is a product of the evolution of Agile development processes. With Agile, production-quality software is iteratively delivered, which drives the need to deploy software more often. The process of getting software into production needed to be streamlined, thus the DevOps movement and process was born.
The DevOps process is a product of the evolution of Agile development processes.
Below is a diagram commonly used to portray the DevOps process. In various situations, names for a given step may be changed, or additional steps may be added. However, the DevOps infinity loop demonstrates that DevOps involves all aspects of producing software, from planning to development through deployment, monitoring and feedback.
The DevOps infinity loop does separate DEV and OPS as they are separate roles – development and operations. At the same time, the diagram depicts an interrelated process. DevOps, the process, works best when multiple roles and disciplines function as a team from the first line of code written to application deployment. There’s often friction between development and operations teams. DevOps aims to eliminate the wall between these groups. When the DevOps process is working well, teams begin to understand the challenges and requirements of others and, as a team, drive toward a singular goal.
DevOps the Process versus DevOps the Team
Even as is seen above, the term DevOps can lead to confusion. DevOps is a process. At the same time, organizations have DevOps teams list of DevOps engineers. Given that DevOps is a process, what role do DevOps teams play? DevOps teams guide an organization with best practices to achieve continuity and predictability in application delivery. Given this definition, alongside the process depicted in the DevOps infinity loop, the skills and experience required to be a member of a DevOps team are broad.
DevOps teams consist of individuals with a desire to be a part of an organization striving to do its best in building and delivering applications.
Does this mean that if you’re interested in joining a DevOps team that you need to intimately know each aspect that makes up the DevOps process? The short answer is no. DevOps teams consist of individuals with a desire to be a part of an organization striving to do its best in building and delivering applications. With that in mind, DevOps teams often consist of individuals from multiple disciplines. Everyone contributes their skills and experience. Does your experience include automating infrastructure? Do you understand how to best configure applications to effectively report via logging and metrics? Are you able to articulate cloud deployment strategies? Can you guide development teams in streamlining an application’s configuration to support deployment flexibility? While one may have exposure to each of these and other application build and deployment attributes, few have in-depth knowledge of all.
This why DevOps is such a broad topic. It encompasses every aspect of an application’s lifecycle.
Joining the DevOps Team
If you’re thinking that becoming a member of a DevOps team sounds interesting, what are the things you need to consider? Having experience in just about any aspect of IT gives you the technical foundation to make yourself a viable candidate. Do some research. What does it take to hone your existing skills to become a successful member of a DevOps team? You’ll likely find that it takes you in a direction well within your reach.
Your technical skills are just the beginning though. Your skills will contribute to the broader objective of the DevOps team. Valuable DevOps team members understand how their role fits into the bigger picture. It’s not necessary to know the details of another team member’s discipline. It is, however, important to understand how each of your roles contributes to the DevOps process. This implies that you take some time to learn about each role’s function.
Becoming an invaluable DevOps team member goes one step further. DevOps engineers who possess or develop the interpersonal skills to work beyond their team in guiding others, become key players within an organization. Building and deploying applications is a “team sport.” The more the team is on the same page, the more successful the team will be. Letting other teams know that your role as a member of the DevOps team is to make them successful builds trust. When working with other teams, allow concepts like perspective and compromise become a part of who you are. This may sound easy. It is not. Personalities and dogma get involved. These are difficult to navigate, which is why the DevOps engineer who has these traits is an invaluable asset to the organization.
This may sound like a tall order. You may be thinking that you’re too junior for this type of role. DevOps engineers are in high demand with no end in sight. Sharpen the knowledge you already have, learn a bit about the other DevOps roles, and ask those around you how you can improve your interpersonal skills. With these in hand, regardless of experience level, you’re a viable candidate for a DevOps team.
Looking for the Right Opportunity
As stated earlier, there are literally thousands of DevOps engineer job postings. If you want to move into a DevOps opportunity, how should you go about doing so? Scan the postings for technologies in which you have experience. Even if you have no prior DevOps experience, an opportunity exists that requires your current IT skills. If you’re interested in a cloud DevOps engineer role but have no cloud experience, take a pass. However, if you are interested in a position for which you don’t have experience, find an opportunity to get in the door with your current experience to then explore the new opportunity from within.
Even if you have no prior DevOps experience, an opportunity exists that requires your current IT skills.
It’s difficult to provide the “five easy steps to becoming a DevOps engineer.” DevOps is a process requiring the cooperation of multiple IT disciplines. At the same time, you already likely have the skill required for a DevOps opportunity. Start there, broaden your understanding of the DevOps process, and develop your interpersonal skills. That foundation will lead you to a successful DevOps career.
Title photo by john labelette on Unsplash