4 Steps for Getting Over a DevOps Plateau
There will be moments in your organization’s DevOps adoption journey where you feel you’ve maxed out your true potential. Yet you might look at similar organizations, see them performing better and wonder how they’re achieving it. You might not have an immediate idea what to do next.
Rest assured, this is not your peak. It’s a plateau.
Plateaus are a funny thing: They can be as comforting as they are frustrating. You’re not falling behind, but stagnation can become a real problem because it means you’re not moving forward either.
So, how do you get past a plateau?
The good news is, it’s probably easier than you think, and you probably already have the skills you’ll need in your locker.
Have you ever enjoyed a skill-based hobby like art, music or learning a new language? If so, you’ve likely overcome many plateaus in your learning journey, sometimes without realizing it.
Organizations can apply the same basic concepts to overcome a DevOps plateau.
Need convincing? I’ll make the case by comparing this scenario to the challenges found in one of my hobbies: fighting games.
A quick explanation for the uninitiated: Fighting games are a competitive, 1-vs.-1 video game genre where two players each take control of a colorful character and duke it out over three rounds.
As a genre, high-level play is often extremely demanding due to motion inputs, special moves and complex combos. Successful players need quick thought, faster reactions and real-time strategy.
The most widely recognized franchise in the genre is the Street Fighter series. If you’re even loosely aware of it, you should understand what’s in the rest of this post.
Here are steps you’ll need to take to get over a plateau, whether it’s in a fighting game or the field of continuous delivery:
1. Find Ways to Do Things More Efficiently
You can’t fix something unless you know it’s a problem. To understand why your performance is stalling, you need some self-reflection.
For me, with “Street Fighter 6” (the fighting game I’m playing most at the moment), this means being aware of my mistakes. I watch replays of my matches to take note of things catching me off guard or that I need to do better.
When I find weaknesses in my game, I put effort into ironing them out. If I keep struggling against a particular attack pattern, I try to find solutions for that in training mode. Those solutions will usually give me ideas for other improvements.
With DevOps, you may not have replays and training modes, but you do have tools that give you similar kinds of feedback.
The information you get from every deployment cycle should be your first port of call for discovering what you do well and things you can do better. And what is continuous delivery (CD) if not the process of ironing out your errors? You deploy a change, and the results shape the next one.
For example, looking at your pipeline post-deployment may uncover a test that takes longer than expected or fails more than you realize. There could be a manual approval step holding things up that you could manage better or remove. Perhaps the scale of your software has grown beyond your deployment capabilities and you need to consider new tooling to help simplify the sprawl.
Never assume your pipeline is as efficient as possible. There is always more efficiency to eke out somewhere, and finding it might also present more areas for improvement.
And if you’re not getting that feedback to begin with, that’s the first problem you’ll need to fix. Make sure your pipeline gives you useful information that helps you make meaningful decisions. It’ll help you identify those weaknesses faster.
2. Be Brave Enough to Retire Successful Techniques
Sometimes the tools and techniques that got you where you are are no longer enough to get the job done, and you need to venture out of your safe, familiar processes to try something new.
I’ve been going through this in trying to beat a plateau in “Street Fighter 6.” I’ve been stuck in the game’s online Platinum rank for two months and haven’t quite been able to make the jump to Diamond rank (though I’ve been frustratingly close a few times).
The reason? I wasn’t able to punish my opponents’ mistakes in the same way they could punish mine. As painful as it was to admit, the intermediate techniques that helped me breeze through Gold rank were only good enough to get me so far in Platinum.
The only way to level up my performance was to let go of less rewarding techniques and learn better ones, so I could cash out more in key situations (it’s a work in progress).
Likewise, when a technique or tool in your pipeline has taken you as far as it can, you should replace it with something that will get even better results.
I understand the hesitation that comes with these decisions. After all, there may be a fondness for a tool that helped you vastly improve. You might naturally lean towards the old “if it ain’t broke, don’t fix it” adage.
But choosing not to change sometimes only reinforces the status quo and prevents you from improving. Love the tools and strategies that helped you get where you are, but be brave enough to retire them when they hold you back.
3. Accept That Change Can Take Time to Settle
No matter how much I practice a new technique or combo in a fighting game’s training mode, it takes a while for me to use it effectively in a match.
I need my new tricks to become muscle memory to fire them off without thinking. Knowing and executing a technique isn’t enough, either — I need to understand the right situations to use that technique.
Learning these things can only happen in place, which means my performance will probably suffer as a result. My rank may drop for a while, or I may lose some matches as I figure things out, but that’s okay! The short-term pain is worth it if it results in larger gains in the long term.
Value-adds like implementing new processes, changing tooling or upskilling your team can have the same effect.
For example, it takes time to learn the nuances of new tooling. Introducing it could disrupt parts of your pipeline in ways you hadn’t considered. If you’re lucky, you might get your new tooling working right out the gate. But you may not use it as effectively as you will with more time, patience and experience.
It might take a little time and experimentation to see results after making a significant change. But resist the urge to retreat back to what’s safe. After all, embracing DevOps means using solid evidence and established research to help shape your decisions.
As long as your overall performance trends upwards, a little hiccup is acceptable. Don’t worry about a wobble.
4. Take Inspiration From Others
When I get stuck in a game, the community built around fighting games is a terrific resource. People in the community understand how intimidating the genre is and want others to enjoy what they enjoy, so they create resources to help with the learning journey. Those who meet up to play in person are happy to explain how to overcome a difficult character issue or help you workshop a problem you’re having (provided you’re not all competing in the same tournament, of course).
Likewise, DevOps has grown beyond being a set of best practices. It’s also an ever-growing, passionate and welcoming community brimming with experience and expertise that people want to share.
There’s plenty of opportunity to chat with or hear from your peers in other organizations. Attending dedicated events means you can get ideas from industry specialists and experts. There are countless webinars and guides online that can inspire you.
DevOps is also backed by easily accessible research such as DORA’s State of DevOps report. This research helps you see what worked for others in similar situations and can reassure you that you’re on the right path.
The Lesson? Always Be Ready for the Next Challenge
Performance plateaus in DevOps are frustrating, but unlike other situations (such as fighting games), you have the luxury of time, well-researched theories and proven practices as your guiding lights, unimpeded by your speed of thought or reaction time. DevOps is a well-trodden path in that way.
But when you do get beyond a plateau, how can you reduce the chance of hitting another in the future? It’s the same for DevOps as it is anything else: You never give up, and you never stop trying to improve.