Devs vs. DevOps – Is there a ‘war’ going on?
Bridging the differences to make better products.
The ‘war’ might be a strong term but, according to Baruch Sadogursky (Principal Developer Advocate, Gradle), there’s undeniable friction that often arises from the reintroduction of siloed teams, which DevOps originally aimed to eliminate.
This friction, as Baruch suggests, often arises from opposing incentives: developers are compelled to innovate and occasionally disrupt, while operations teams (including siloed DevOps) prioritize stability and uptime.
Creating separate DevOps teams can revive the silos it aimed to dissolve, reinstating conflicting incentives between development and operations.
Now, let’s dive into how we can tackle these conflicts. We’ll hash it out with Baruch and Ivan Markanovic (Principal Engineer, Infobip).
Bring Dev and DevOps back together
“Friction frequently emerges when DevOps is treated as a distinct team rather than an integrated practice,” says Sadogursky.
This separation can lead to scenarios where development and operations do not share goals, leading to delays in deployment and disagreements on priorities. One idea could be inventing a methodology that will bring the Dev and DevOps silos back together. How about we call it “DevDevOps”?
And to effectively foster collaboration and minimize friction, Baruch suggests:
• Integrate operations skills into development teams: Encourage each team to manage both development and operational responsibilities, promoting a holistic approach to project ownership.
• Establish shared objectives and KPIs: Align both teams under common performance indicators that balance development velocity with system reliability and uptime.
• Promote continuous cross-training: Facilitate ongoing learning opportunities for team members to acquire skills across both domains, enhancing mutual understanding and capabilities.
• Regular, open communication: Implement structured yet flexible communication practices that ensure continuous sharing of ideas, challenges, and successes across all team members.
As Baruch says, we need practices and tools that support both dev and ops, and everyone should handle tasks across the development cycle. “Automation is crucial – it keeps deployments and monitoring smooth, no gatekeeping.”
The key is to set balanced team objectives that include feature development and infrastructure stability as crucial, interconnected elements of team success. Encouraging teams to view these elements not as competing priorities but as complementary factors that drive the quality and reliability of the final product is essential.
This can be supported by SLAs and prioritization frameworks that help teams make informed decisions about where to allocate their efforts most effectively. These approaches aim to reinvigorate the core principles of DevOps by integrating operations into the lifecycle from the start and ensuring that all team members are equally empowered to contribute to both development and operational excellence.
As always, communication is the key
Ivan agrees that that there’s certainly some natural tension at times between Dev And DevOps, but it’s mostly because both teams are deeply committed to their roles.
“Developers are primarily focused on adding new features and functionality, often driven by the urgency to meet product deadlines. DevOps teams, on the other hand, are the rock, focusing on ensuring the infrastructure’s stability and scalability. Their goal is to make sure that when those new features go live, everything runs smoothly and efficiently, without any hiccups,” Markanovic says.
This difference in focus can lead to some friction, sure, but that dynamic is a huge plus.
It balances out the equation, keeping the whole machine running without burning out or breaking down. Both sides bring something vital to the table, and when they sync up well, it’s like a well-oiled machine.
The most common spot where you’ll find some friction between developers and DevOps teams, thinks Ivan, is typically around the deployment process, especially when it comes to continuous integration and continuous deployment (CI/CD).
Developers are usually pushing hard to get their latest features out the door, and any delay in the CI/CD process can feel like a major setback. This is partly because infrastructure, by its nature, is complex and often slower to adapt to change. As DevOps, we need to keep pace with the rapid demand from developers, which sometimes leads to breakdowns when the system can’t handle quick shifts.
To solve this, one should focus on automating, offering metrics, and creating user-friendly tools that simplify the infrastructure.
And what strategies do Ivan recommend for fostering collaboration and alignment between these two teams?
For him, communication is key – regular short meetings keep everyone aligned, avoiding marathon sessions later. “It prevents going off track, avoiding the sunk cost fallacy. Start simple and build on a solid foundation to avoid future complications.”
All of this creates a beautiful harmony between DevOps and Developers. “After all, without a stable home, even the best features can end up homeless,” concludes Ivan