Embrace DevOps and Continuous Delivery to Kiss Versioning Goodbye | 10th Magnitude
Over the summer, Microsoft announced that Windows 10 will be the last version of the Windows OS. Not that it will be the end of the OS, but it will be the end of VERSIONS of the OS. Why? Because Microsoft gets that the future lies in continuous delivery—they are subscribing to the Netflix and Etsy view of the technology world.
I’ve been thinking a lot about the shift in the market to this mindset of continuous delivery. I see more and more opportunities for companies to accelerate their responsiveness to customers and reduce their risk. And it’s not just ISVs and the Facebooks of the world that should embrace this new reality. Cloud economics enable almost every organization to use custom software to best serve clients and customers, and that level of responsiveness is key to competitive advantage.
Here’s a perfect example of why companies need to figure this out—made more relevant by the looming holiday shopping season. A couple weeks ago my wife got a flyer in the mail for a one-day luggage sale at Bloomingdale’s. While I generally try to prevent her from shopping so I won’t end up in the poorhouse, we were taking a trip and actually needed a new suitcase so I acquiesced. The sale’s hours were limited, so she went on the Bloomingdale’s website about two hours into the specified time period—it was a Saturday around 11 am—and was shocked to find a message that said they were down for a scheduled update. Not a site crash, not an unavailable server, but previously scheduled maintenance.
In this example, the end consumer bore the brunt of the gap between the business and IT. The end result— which was at best a delayed sale and at worst an annoyed customer and lost revenue as that customer purchased elsewhere— was probably not what the Bloomingdale’s marketing team had in mind when they conceived, stocked and advertised for that sale. Clearly, however, they missed the boat on closing the loop with IT, which counterprogrammed them.
If you think a lack of coordination between your organization’s IT, Marketing and Operations departments is completely hidden from the outside world, think again. That integration and collaboration—or lack thereof—is more apparent than you might imagine. The good news is that continuous delivery techniques can transform that glaring lack of coordination into a remarkably seamless experience for both employees and customers.
The planning gap Bloomingdale’s clearly displayed isn’t new; in fact it is one of the classic IT-for-business challenges. The good news is that now there’s actually a proactive solution, and what I’ll term “modern” IT organizations have evolved beyond this problem by embracing cloud and DevOps. The organizations that have adopted DevOps principles have broken the barrier between the previously disparate functions of their organizations. DevOps principles and methodologies, of which continuous delivery is one, reduce the time, cost and complexity of attempting to coordinate all of these disparate business and IT functions. The DevOps adopters don’t have to worry about coordinating—it just happens. And it happens faster, with less cost and less friction. Bottom line: IT just responds now, you don’t have to plan for it. (Check out our website for a more comprehensive discussion of both DevOps and continuous delivery.)
Think about it: can you remember the last time you experienced a maintenance upgrade with Zappos or Facebook or one of the other modern, web-based retailers? Probably not, because DevOps in general and continuous delivery specifically have been baked into their operations from the beginning.
The continuous delivery approach allows Dev teams to constantly finish and roll out new enhancements and functions to these ecommerce sites without the need to interrupt their operation. They manage this feat using cloud-based config and deployment tools such as Chef, Powershell and Octopus that allow for on-the-fly deployment and rolling production of new pieces of code.
As a result, the concept of a major release or maintenance upgrade simply doesn’t exist for these modern companies. New features just appear; users are unaffected, simply informed. Some sites put new code into production multiple times a day. Try that with old-style deployment where you have to rebuild the entire platform and roll it out as a monolithic change.
Going back to the Bloomingdale’s example: they inadvertently upset their customers and missed sales opportunities during a critical promotional period. Could they have avoided this by spending a lot more time and effort on planning and coordination? Sure. But that is a slow and expensive approach. Dare I say: antiquated? The quicker, less expensive, modern continuous delivery approach would have allowed each part of the organization to focus on their jobs instead of capacity planning. Oh, and by the way, customers would have been happier too