I was at a DevOps workshop with Gene Kim last week. It was a great event (thanks for sponsoring, CollabNet) and I always learn so much from him every time I’m around him. No surprise that I’m a big fan of the DevOps movement because of all of the benefits I believe DevOps practices bring to an organization.
There was one point in Gene’s presentation where I had an “aha” moment. Gene was talking about increasing the frequency of deployments from weeks, months, or quarters to minutes, hours, or days. He was making the point that when you do something frequently, it becomes routine. Uneventful. Boring. Adrian Cockcroft from Netflix said, “Do painful things more frequently, so you can make it less painful.” This is in contrast to the approach most organizations take to deployments. Deployments have historically been painful experiences. A lot of us have been through more than our fair share of those. Given a painful experience, the natural response is to try to lesson or avoid the pain. So organizations begin to lengthen their release cycles. Instead of releasing every month, they begin releasing every quarter – or even every year. Ironically, this approach just increases the pain of the eventual deployment. All of the root causes of the problems during the deployment have longer to intensify. It turns into a tsunami of pain.
So back to the “aha” moment. What does all of this pain do to an organization and its employees? It makes them fearful. Fearful to make changes. Fearful to take risks. Fearful of moving fast. Fearful to do things that will help them win. Once this mindset takes hold, it’s really hard to shake it, which is why changing the culture tends to be the long pole in the tent when it comes to introducing DevOps practices. It’s difficult and takes a long time. Not many are willing to take on that challenge.
But this is a battle worth fighting. Because when it comes right down to it, after all the automation, processes, practices, tools, technology, and changes to the team, DevOps is about eliminating fear within an organization. With DevOps practices in place, you can make changes quickly. You can be bold and take risks. You can move fast without worrying if the world will come crashing in around you. You can win. And just like the mindset of fear perpetuates and reinforces itself, so does a winning mindset. Take a look at how you do things and identify which activities are driven out of fear. Long deployment cycles and QA windows? “Stabilization sprints”? Signoffs and approvals (shudder…)? How would you do things if you had no fear?
If you want to see what this kind of transformation could look like, read The Phoenix Project. I’ve read it twice — and I never read books twice. It’s written as a novel as opposed to your typical “how to” guide so it describes the emotions and state of mind of the characters in a way that other genres don’t. I promise you will have an emotional reaction when you read it. What reaction you have depends on which mindset you’re in.