We all wish we could “install the DevOps”, but we can’t. If you compare the 2016 and 2017 State of DevOps reports, “low performers” are deploying more often, but their quality has gone down. Discipline and rigorous technical practices are required to achieve the benefits DevOps promises.
The military is the ultimate in command and control, making sure your every second is accounted for and every step planned. This is pretty much the opposite of a DevOps culture where sharing and accepting failure are norms… right?
Not so fast…
When I got to boot camp 30 years they made us sit cross legged on bare concrete for “classroom” sessions. Try it for more than 10 minutes some time. It hurts. It made no sense. Of course you get used to it after a few weeks.
Around the sixth week they started teaching us shooting positions. Turns out one of the most stable is sitting cross legged. Stability is important at 300 yards. Something that hurt a couple months earlier was now second nature. We had the foundation required to learn the next steps (literally).
Ready to shoot, right? Yeah, not so much. Now we got to spend a week sitting on grass and pretending to shoot before we ever saw a round of ammunition. Staging deployment anyone?
In much the same way, solid technical principles enable a DevOps culture.
If we make good automation, good test practices, good code quality, useful measurement and helpful feedback loops second nature, we’re free to let our teams solve the hard problems with reduced risk. Command and control can be at the organizational level where it needs to be, with the people best suited to it (our development teams) providing the value required to support that mission.
This talk will underscore the importance of many technical practices, but the talk itself is not technical. For example, I’ll compare test driven development (TDD) to “dry firing” in boot camp, but I won’t be showing test code.