Over the past five years, DevOps has evolved into an integral movement in the fields of software development and delivery. The agile manifesto has become increasingly popular in the tech world due to the business need for fast response times. This pushes IT to streamline development, integration and delivery into one smooth process. While this outlook on DevOps describes the concept, after much debating, I am here to explain why DevOps is in fact not just an important concept but a significant role in the tech world.
DevOps and the HR Hunter
Many HR hunters advertize their searches for DevOps, whether engineers, professionals, experts, or anything else, on twitter or other social media. These searches rarely, if ever, seek DevOps in a general sense of the term, but rather extend out to a persona or an actual person. DevOps is still largely considered a concept, but in reality, it is people who get the job done.
In reality, I find that within hi-tech companies, people use descriptions such as “our DevOps are integrating,” or “our DevOps are testing,” emphasizing the persona rather than the concept. Nevertheless, I respect bloggers around the world who make it their goal to outline DevOps as a practice or a concept. The featured image of this article was taken from an interesting presentation by Matthew Skelton, who evangelizes not building teams of “DevOps Engineers”. I suggest you check it out.
“DevOps Engineers” Annual Salaries in LA – Source – indeed
The Role of DevOps within an Organization
Upon further examination of the different roles within the continuous delivery framework, it is impossible to contest the efficiency of a company that functions with inter-disciplinary workers who oversee a process and ensure that it is automated and streamlined. These people are easily found within the structure of the company, and are entrusted with this important new role. In the past, this was handled by operations or support, who tried to engaged with QA teams or developers. However, that eventually stopped making sense—it is not the role of support to oversee development any more than it is a developer’s job to engage in delivery automation. It is essential, therefore, to have one player in the development game who is responsible for linking everything together and creating one efficient, automated system.
The Holy DevOps Trinity
If we try to break DevOps engineer teams into individual roles, we might find the following three components:
1 – The Senior DevOps Engineer
2 – DevOps Engineers
3 – Developers and testers
The senior DevOps engineer is actually a software architect who plans and designs the system. Looking at the responsibility of this role, it is understandable why it should not be outsourced. DevOps engineers, on the other hand, need to have a developer’s skill set in order to implement automatic delivery and integration procedures using tools such as Jenkins or Chef. These two roles are completely different. While the architect needs to know the whole environment and the application itself, the DevOps engineers need to be quick learners in order to efficiently take on DevOps development tasks. In addition, we should recognize the fact that developers and testers are greatly responsible for making the concept of DevOps happen. Developers, in particular, need to take a step forward and be able to develop as well as run tests, taking complete responsibility for their developments.
Ultimately, DevOps is a critical cog in the software development and delivery machine. The concept of DevOps indicates the individual roles that are taken on by the different parties involved in development within a company. Developers must be responsible for development and QA should be automated. At the end of the day, however, it is the DevOp engineer’s job to help developers integrate their components into the common infrastructure, tying up loose ends to deliver a great service.