When I was a little kid, I put my light blue leotard on and headed to a big warehouse to try gymnastics on Saturday mornings. We learned the basics in a very ordered, organised way. Meanwhile, being a kid, I also did cartwheels in the park with my friends. My friends taught me how to do a one-handed cartwheel. I showed off my one handed cartwheel in gymnastics class and the coach was unimpressed. “Get the two handed ones right first,” he said.
Right now there’s a push to release once a week instead of once every two weeks. That’s a good thing. But we don’t have the two week thing right. Continuous deployment is a good thing. Very mature engineering teams do it successfully. Likewise, Olympians do one handed cartwheels; they are amazing. As crushed as I was by the coach when I was a kid, he was right. We all want to move quickly and try something new but continuous improvement doesn’t mean move forward when you aren’t ready.
We aren’t ready.
We have problems matching our releases to our workflow. We don’t have a way to advise stakeholders what is planned in the next release. We don’t have enough automated testing to ensure that releases will be stable. Our development environments don’t match production. Our Product Owners don’t have a way to explicitly sign off on a task. Our release process is manual and clumsy. None of these things will be improved by releasing every week.
A freestyle one handed cartwheel in the park is a fun thing to try. It’s also risky.
On the one hand (pun intended) sometimes you need to master the basics first. On the other hand, embracing a challenge and breaking the rules is what makes the exciting stuff happen.
Continuous Deployment is the type of sport that would benefit from mastering the first step before moving on to the second.
I kind of gave up on the one handed cartwheels. Eventually gave up on gymnastics too. Never really gave me joy. Not giving up on Continuous Deployment, just don’t want to fall on my head.