Believe it or not, there's a lot military training can teach us about DevOps.
In IT we spend too much time on local optimizations which are ultimately hurting our overall “mission”. We waste cycles on minor issues instead of identifying our greatest risks and focusing there. And much more.
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.