Editor's Note: A popular session at All Day DevOps, 2019 inspired this post. This Friday, April 17, All DevOps | Spring Break debuts with brand new speakers and perspectives from around the globe. There is still time to sign up and join the largest group of DevSecOps professionals making the best of being indoors. Join us!
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.
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” presentation 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!