The best definition I’ve ever heard for DevOps is the ability to practice frequently and well.
I prefer DevOps to DevSecOps because I feel security should be part of both development and operations, but I also see the merit in calling it out where this isn’t regular practice.
I think there is a powerful analog here to professional team sports, and I want to capture a few of the ways they’re similar.
Can you imagine being successful in a professional team sport if you only practiced together twice a year?
Professional teams get and stay at peak performance through constant practice. And it’s not just repeating the same drills over and over—it’s based on continuous iterative improvement, which has multiple components.
- Practicing a particular activity
- Playing mock games against each other
- Playing scrimmage games against other local teams
- All practice is recorded
- Coaches watch all recordings and notice what worked and didn’t work
- Coaches watch the competition play other teams
- Based on those observations, they change how the team practices
- Then the go and execute in the next real game
In DevOps the practicing and execution are basically condensed into a single step, but otherwise we still have the same activities taking place: we automate our tasks, we monitor everything, we execute in terms of building and deploying software, we review the logs, we make adjustments, and then we do the process again.
This methodology also closely resembles OODA Loops, where you observe, orient, decide, and then act. These are all forms of extremely fast improvement cycles, and they all require that you execute often in order to capture mistakes so you can make adjustments.
In the military I heard a great example of this where patrols encountering IEDs on the ground in Iraq would report their findings to West Point each day, and the classes would change daily based on the new tactics being seen in the real world.
There are lots of definitions for DevOps, but perhaps the best one is “The Art and Science of Deliberate Practice” when building and deploying software.
I hope this definition gives someone clarity on the topic the way it has for me.
- Many thanks to the customer team down in Brazil who invited me to speak at their DevOps conference. It was at one of their presentations that I first heard this concept of constant practice as the central concept of DevOps.