Hiring a DevOps engineer is a common practice at most IT companies. Having a DevOps developer in your team usually results in making releases more often, faster and better than competitors not implementing a DevOps strategy.
Today hiring a DevOps engineer is also relevant for industries other than those from the IT world. Businesses from startups to large enterprises are increasingly thinking: Why not introduce DevOps?
In this article, you will discover the benefits of hiring a DevOps engineer, plus four key points to pay special attention to while selecting among the candidates to fill your DevOps position.
In the end, you will be able to make a reasonable decision on whether to introduce a full-time DevOps position or outsource DevOps responsibilities.
DevOps is a methodology that brings together software developers and IT professionals at all stages of software product creation. An adept of this methodology is a DevOps engineer – a specialist who understands and unites software developers, testers, sysadmins and everyone working on the project release.
The main task of DevOps is to synchronize, optimize and automate work processes. Additionally, DevOps is about making the development environment as close as possible to the conditions needed for using the final product.
A company that implements a DevOps strategy gains great benefits, including:
Statistics from the 10th State of DevOps report show that 83% of IT companies are implementing DevOps best practices to get better results. Particularly, DevOps methodology helps to get higher quality software, faster delivery times and ultimately, safer systems.
Unfortunately, the roles and responsibilities of DevOps engineers are not fully understood by many business owners and corporate decision makers.
In some cases, companies think that there is no need to hire a trained specialist and try to retrain current managers and system administrators to become a DevOps specialist. As a rule, it doesn’t end up very well.
So, how do you succeed in hiring a DevOps engineer? Don’t set “implementing DevOps” among the responsibilities. Instead, ask yourself a question: What do I need to improve in project operations?
The answer normally contain one or all of the following parts:
A development and operations specialist should first of all be familiar with infrastructure-related tools. Additionally, they should also understand system administration.
If a specialist does not have a deep understanding of these basics, they won’t be able to grow into being skilled DevOps engineers.
It seems that the ideal path to becoming a DevOps engineer is to work as a system administrator first. With time, sysadmins understand which manual jobs can be automated. After that, one could start trying to implement various automation tools.
This is not an obligatory way to follow. However, it is a logical approach.
Below are four qualities that a good DevOps engineer should demonstrate:
One of the main challenges is finding people with a solid knowledge base. There are many ready-made modules, building blocks for configuration management and other tools for developing complex systems.
Specialists build experience with core tools and never stop learning new tools, in order to minimize downtime and effectively operate complex systems. Being immersed in the interrelationships of how resources work together, DevOps specialists learn to recognize the real needs of the application, quickly identify errors and avoid issues before impacting the user experience.
Even when using the same tools, one can follow two different paths – making a convenient, repeatable and maintainable structure or simply copy and paste from existing sources.
Both methods may result in a system that works, but the first path creates an ongoing environment where changes are quick and simple. The second path will demand much more time and effort, and eventually breaks down from overly complicated maintenance.
Therefore, a DevOps specialist needs to think strategically and decide if and when to copy an element or step that will avoid negative consequences in the future.
Each team and every project has its history, expertise and use cases. In addition, there are many ways to implement components of modern systems and still get the same result.
In each case, different aspects will have their weight. The person you are hiring as a DevOps engineer should understand this and be able to adjust, when necessary, to fit operationally into existing rules.
Just because your newly-hired DevOps engineer believes X better than Y, rebuilding an entire, working system will likely be more destructive than constructive.
Tools are constantly changing and their relevance shifting. It’s best to hire someone with an inherent interest in constantly learning new tools and techniques. Such a specialist will be appreciated in any team today.
In many cases, sysadmins are a viable choice for becoming a DevOps engineer, as learning new tools, software stacks and applications are core to a sysadmin’s job. However, without understanding the development processes and workflow tasks of software developers, one can’t properly implement the DevOps responsibilities.
The development component of a DevOps engineer is extremely important, as developers have experience working in a structured team environment. Remember to ask anyone interviewed for your DevOps role if they have a roadmap for their own development in the framework of a DevOps engineer.
The first step is discussing with your in-house developers the benefits and technical feasibility of hiring a DevOps engineer. For one, how many DevOps engineers do you need? For a medium-sized business with an IT team of up to 20 people, one engineer is probably enough. A large business with a team of more than 20 people will need more DevOps personnel.
It also makes sense to think through your needs and expenses over time. Do you need to:
Let’s dive a bit deeper into each of the options.
In this case, your DevOps engineer is at your full disposal. However, an in-house DevOps engineer will become more and more immersed in the specifics of the project and lose their valuable, outside perspective. Sooner or later, this might affect the quality of their expertise.
Try to calibrate the ability of candidates to remain objective when interviewing by asking how they’ve done so in the past. A brilliant CV does not guarantee effective work, and getting examples from past projects is extremely valuable.
The chances to find talented DevOps services are very high today, as freelance DevOps engineers are often paid by results, not hours. Subsequently, freelancers are normally motivated to work quickly and efficiently and focused on building long-lasting, mutually beneficial relationships with clients.
However, going with a freelance DevOps specialist can have its drawbacks. You as a client have less control, and the specialist may be less available than needed. You can usually rely on in-house team members when your next emergency happens, but with a freelancer, that normally won’t work.
If you hire a ready-set IT team to outsource your DevOps tasks, you’re hiring an experienced and well-coordinated team experienced with the challenges of setting up DevOps systems. The level of control and influence here is higher than with freelancers but lower than with in-house employees. Plus, you have an opportunity to study the reviews of the vendor’s previous clients.
In short, a dedicated team you outsource your DevOps tasks to is fully engaged in the implementation of the DevOps methodology. A DevOps engineer also helps to adjust new tools within your existing infrastructure.
Companies that are about to implement DevOps should pay special attention to finding a good DevOps specialist. It might take time. On the other hand, the whole process of learning the skills and competencies of your prospects can be very beneficial.
The key is to properly evaluate your requirements for DevOps engineers, then, correlate them with your market requirements.