DevOps is not about the tools. Nor is it about the number of people working on any given thing. Adding people doesn’t mean delivering faster. You’ve got to measure what matters. It’s about principles and culture! Kalle Sirkesalo (@Failattu) shares his perspective.
Sources of Problems
Using DevOps practices can make it easy to add environments as the team grows. However, each environment adds to the pool of technical debt. All of the tools can be in place and you can have proper Gitflow branches, CI/CD, and automated testing. Even though everything is technically correct, organizations can have problems delivering.
@j_jeremiah, one of the ADDO moderators, summarized his favorite part of Kalle Sirkesalo’s talk.
What both John and Kalle are getting at here is that you need more than just the cool tools to succeed. And, in some cases, the tools can compound existing problems, making things worse instead of better.
One source of trouble—a practice smell if you will—is long-running branches. These branches become difficult to merge and difficult to test. But this just a symptom of a deeper problem. If something like having too many environments is blocking your deployment, you may end up with long-running branches. Merging your changes into a branch for each of these environments invites difficult merges. You’ll have to merge over and over again—once per environment branch.
Another compounding factor of making life difficult for developers, ops, and the business alike is having teams that operate under different processes. Misaligned hierarchies can create political and communication barriers that you must progress past.
“How could it get worse?” from “There's No Nice Way to Say This: Your DevOps Has Gone Horribly Wrong” by Kalle Sirkesalo (@Failattu)
In this case, the product owner gets overridden by development managers on both sides. This hierarchy also creates an “up-and-over” communications path between teams. That in turn introduces communications delays and other related issues.
DevOps Is No Guarantee
DevOps is simply a way to enable teams to go faster. However, it doesn’t guarantee this desirable outcome. Communication is still extremely important. It may be hard to talk about why, though. Teams may have excuses like they don’t have time to do the important things such as prioritizing the backlog, asking why things need to be done, and refactoring code to make it more readable.
Even in a DevOps enabled environment, you still need planning. Scrum framework practices such as sprint goals, backlog grooming, sprint scoping, and communication are just as important to moving fast as tools that enable speed.
Achieving the goals of speed and accuracy is really all about collaborating. Collaboration and communication enable teams to be truly successful. No matter what technologies and processes you have in place, don’t forget the all-important people aspect!
This post was written by Phil Vuollet. Phil uses software to automate processes to improve efficiency and repeatability. He writes about topics relevant to technology and business, occasionally gives talks on the same topics, and is a family man who enjoys playing soccer and board games with his children.
Photo by FuYong Hua