Earlier in December, Kurt Bittner, Principal Analyst at Forrester Research, Inc., participated in the December DevOps Drive-In webcast, “12 Ways of DevOps.” A couple of the “12 ways” were thought-provoking for me. When people talk about DevOps and Continuous Delivery, it is frequently in the context of applications that are hosted in the cloud and are relatively easy to iterate quickly.
I find the idea of hypothesis-driven development extremely appealing but achieving this outside of cloud-based web apps would appear to be challenging. If you are fortunate to have a well-functioning, responsive customer advisory board, then it would appear that you are in relatively good shape to do hypothesis-driven development. Sure, it takes a bit more coordination and scheduling but it is certainly possible, albeit probably with a small sample size.
I’m hoping that as DevOps and related methodologies are practiced in more traditional environments, there will be good examples of how people have successfully managed to do hypothesis-driven development for legacy-packaged or on-premise applications.
Working in Small Batches
I have seen this become a problem even when a product is hosted in the cloud with one codebase for all customers. Just because code is in the cloud, doesn’t mean the codebase is structured in a way that can be worked on in small batches.
Even if you are able to work in small batches, unless these smaller batches are released frequently, then you really aren’t getting the benefit of fast user feedback on your product changes. Opportunities to mitigate risk are being missed. I’m hoping that during 2014 there will be more success stories around working with legacy apps in a way where getting fast user feedback to product changes is being done successfully on a large scale.