We see an increasing demand for DevOps specialists from Western companies that are looking to build dedicated development teams or outsource their project development to Ukraine. I’ve talked to our Head of Delivery Kate Haskova to explore some of today’s hot trends and better understand why so many businesses rely on DevOps and adjacent practices to improve software delivery to end users and overall code quality.
Kate started her career as a QA engineer at a small IT company and had a chance to work on managerial positions in Ukraine’s Top 5 tech powerhouses including Team Lead and Site Manager at GlobalLogic, Senior Test Analyst at EPAM Systems, Scrum Master and Program Head at Ciklum, and Engineering Director at Innovecs and Sigma Software.
Kate, what do you think is the main advantage of DevOps?
DevOps allows any company or software team to significantly speed up software development from ideation to delivery, while eliminating errors and bugs, decreasing time to market, and increasing involvement of stakeholders. Also, it enables entrepreneurs to test their business hypotheses with higher precision.
In short, with DevOps, any software product or solution can be deployed and released to the market regardless of its stage of development (even at a very early stage).
What’s the biggest impediment to effective DevOps implementation within a company/team?
Resistance to change is the most significant bump in the road! Top managers that don’t want to challenge the status quo or change anything in their processes and approaches are the ones who prevent or block DevOps implementation within their companies.
If there’s a “political will” to improve, streamline and facilitate software delivery, nothing will prevent teams from implementing DevOps and changing their mindset.
Another big challenge facing DevOps is blame-shifting and ”division” of responsibility between Dev and Ops, i.e., when different DevOps participants are not on the same page about the areas of accountability and results.
What’s the best way of integrating cybersecurity specialists into DevOps?
Let’s look at DBA who can give recommendations and add tasks to the backlog, but don’t have a right to block releases. It won’t be easy, but it can work. A security specialist should be involved from a very early stage of software development, and all security deployments should be as natural as code linter or code review.
Software security should be embedded in software design, and security engineers should test and accept/reject the build at the end of the sprint. It’s a must to involve a security specialist into your code review!
And what do you think about the hype around site reliability engineering (SRE)?
To me, SRE is just one of several DevOps practices, and many system administrators have been using it for a while already. Although SRE has entered a tech hype cycle, not all teams really need to implement it.
Today, there are just a few companies all over the world that really need SRE: when projects are large-scale, and there are no sufficient tools and Cloud platforms available to cover all of its needs, it makes sense to implement SRE.
What are today’s most effective DevOps tools used?
DevOps is based on 3 whales: public Cloud (AWS), Kubernetes and Terraform. All other tools are their derivatives: any version control system (e.g., Git), any software configuration management system, continuous integration and delivery (CI/CD) tools, etc.
How to tell a good DevOps engineer from a mediocre one?
A good DevOps engineer is always driven by the needs of the whole DevOps team, not just Dev or Ops.
Good DevOps specialists focus on accelerating software delivery along the entire value chain, while a mediocre one only cares about their part of the value chain. A good DevOps engineer can see bottlenecks and find a way to avoid/eliminate them.
In short, a good DevOps specialist is initiative, client-centric, collaborative, and puts business needs above his/her own needs.
How to become a professional DevOps engineer? How to make a career in this area?
Besides having an internal impulse to continuously improve own coding and software engineering skills, you should focus on gaining skills and knowledge in Cloud, microservices, delivery pipeline, and system monitoring. To gain firsthand experience, I’d recommend that people who want to become great DevOps engineers join product or outsourcing companies as junior system administrators and grow internally. Alternatively, they may join teams that are in the process of implementing DevOps and gain/boost skills right on the fly.
While having theoretical knowledge is good, it alone won’t land you the job of your dream, so try to get as much practical experience as possible.
What books/courses would you recommend to all those pursuing a career in DevOps?
Here are just a few to name:
- The DevOps Handbook;
- “Kanban: Successful Evolutionary Change for Your Technology Business” by David J. Anderson;
- Google SRE Book;
- “Infrastructure As Code: Managing Services in the Cloud” by Kief Morris,
- “Continuous Delivery” by Jez Humble and David Farley.