If you work in DevOps long enough, you’ve probably have been offered many “silver bullets” over the years.
This could be a lot of things, including specific tools, specific practices (like Continuous Delivery) or just throwing the Dev team and Ops team together.
The truth is, there is no silver bullet.
Last year at the DevOps Enterprise Summit in San Francisco, I sat with some of the brightest in this space and we discussed what a potential silver bullet could be. It was surprising how quickly we all agreed on the one thing most predictive of success for DevOps: Continuous Improvement.
When we surveyed the room to see what the one characteristic is of companies that end up being successful with their DevOps transformation, we all agreed that the ability to drive a mature, continuous improvement program is the best indicator of success.
|But what does this mean?|
Here’s the thing: Continuous Improvement requires a lot of discipline and a lot of work.
For starters, business leadership must know for what it’s optimizing. There is plenty anecdotal evidence that optimizing for speed will improve quality and reduce cost in the long run (as both of those hamper speed otherwise).
On the flipside, trying to optimize for cost does not improve quality or speed. Neither does a focus on quality, which often introduces additional expensive and time consuming steps. If you want to be fast, you cannot afford rework and will remove any unnecessary steps and automate where possible. Hence, speed is the prime directive for your continuous improvement program.
In my view, it’s all about visibility and transparency.
To improve, we need to know where we should start improving. After all, systems thinking and theory of constraints have taught us we only improve when we improve the bottleneck and nowhere else. Hence, the first activity should be a value stream mapping exercise, where representation from across the IT and business come together to visualize the overall process of IT delivery (and run).
I like to use the “Seven wastes of software engineering” to highlight areas of interest. “Hot spots” in the map create a target-rich environment of bottlenecks you can improve.
The key for improvement is to use what basically comes down to the scientific method: Make a prediction of what will improve when you make a specific change; make the change; and measure the change to see whether you have, in fact, improved it.
Too often, people don’t have the right rigor in the continuous improvement program. As a result, changes won’t get implemented, or if they get implemented no one can say whether it was successful. Avoid this by having the right rigor up front.
The other challenge with continuous improvement is, unfortunately, it is not linear. It follows a slightly adjusted J-Curve. Initially, you will find easy wins, and things will appear splendid.But then, things get harder, and often regress a little. You could jump ship here, but that would be a bad choice. If you stick to it, you will see real improvements above and beyond easy
As a result, the goal of continuous improvement needs to be to find many smaller J-Curves, rather than working on one huge, transformational J-Curve.
When I heard this concept explained by Damon Edwards at the DevOps Enterprise Summit, it was quite a revelation. It was such a simple, graphical representation explaining so well why many DevOps adoptions struggle. It is too easy to assume a straight line and then get distracted when the initial downturn occurs after the easy wins.
Take it from me: The curve is real, and no matter how much experience you accumulate, you will always encounter context-specific challenges requiring you stay strong and stick with it.
You need grit to be successful in DevOps.
So, the silver bullet I cited at the outset does actually exist. But again, it takes discipline and hard work. I was encouraged to see some of the most experienced enterprise coaches and change agents agree on the need for a rigorous continuous improvement culture.
Look around and see for yourself: Are you in a place with such a culture? If not, what can you do today or tomorrow to start changing your culture for the better?