(Transcript of an ignite talk delivered at the DevOpsDays Zurich 2023)
About a year ago I was faced with the task of building a team from scratch, to rebuild and redesign an old application into a new one, more modern and flexible to include a lot of new requirements. Counting with enough budget I started by proposing a usual setup: a system analyst (requirements engineer), a few full-stack developers, a tester and a DevOps engineer. However, the budget available at the end was allowing me to hire only 3 new employees. I went for the following setup: one system analyst and two full-stack DevOps engineers.
“Full-stack DevOps engineer”, is that even possible?
Well, I guess my teammates would probably disagree to be called like that, though in the end that pretty much covers what they are doing in the team now.
Here is a very simplistic view: Full-stack developers are responsible for designing, coding, testing, as well as delivering software applications. DevOps engineers are in charge of developing and managing the infrastructure that lets software applications run efficiently and smoothly.
At first sight there is no obvious overlap, except for the “delivery” part. Both jobs are broad enough to justify their existence as separate roles. But I argue that in today’s world where we treat everything as code with so much cloud and automation around, software engineers with the right skillset would be able to do both jobs at the same time. Because ultimately, when we get rid of all buzzwords like Full-stack, DevOps, Site-Reliability, etc. all we have left is an engineering-based approach to software development and operation.
So, what would be the “right skillset” to search for in software engineers to do both jobs? (This is of course just my opinion from what I’ve seen in my recent experience)
Search for an engineer who:
Is eager to make things work. Not afraid and even happy to try out and dig into tools and frameworks as necessary to get the job done.
Is excited about technical challenges while focusing on keeping the code base maintainable, scalable and operational.
Has a strong sense of ownership and is proactively searching for continuous improvement.
Now, I am not saying you should stop searching for specific roles when building a new team for your next software development adventure. As everything in our profession, it all always comes down to a big “It depends”.
Such decision will hang on a number of factors like the nature of the requirements, budget, time availability and software stack complexity, just to name a few. In my case, it was a budget matter, and a scope that had the potential to be flexible enough to allow me to go for this setup.
Ultimately, you want someone who in the face of a challenge, even if they don’t know, they mean it when they say: “We will figure it out”, and they don’t let you down.
How to find engineers like this? I claim to have found two of them last year. To be honest, I am not sure if I was just lucky or if my way of interviewing helped me spot them. I’d be happy to share insights of what I did, so come and meet me later and let’s have a chat if you are interested.
My name is Daiany Palacios, and I’d love to hear your thoughts! What are your experiences with Full-stack vs. DevOps? What are your opinions? Let's continue the discussion in an Open Space!
Thank you very much.