Your company’s marketing team wants to put a new calculator on your website with nifty sliders for figuring out car insurance based on age, car, driving habits and budget. Or maybe it’s all about letting people drag and drop different woodworking tools into a side-by-side comparison box.
Whatever the new feature, it’s got to be easy for people to use on any device, in any browser, be reliable — and it has to launch before your competitors do the same thing.
Continuous delivery makes it feasible to introduce new features and functions quickly and reliably. But what is continuous delivery, really? It’s the practice of creating, testing and releasing code frequently in small increments.
Martin Fowler of ThoughtWorks says the test of whether you’re doing continuous delivery is when “a business sponsor could request that the current development version of the software can be deployed into production at a moment's notice — and nobody would bat an eyelid, let alone panic.”
Operating in a nimble, agile and panic-free way is a great goal for a business that relies on software. Now let’s look at the specific ways that practicing continuous delivery can strengthen your business.
Find out early whether customers like it
If you spec out and build a big new system, you just know that A) it’s likely to break and B) it’s going to be late. Your customers may also respond to it in unexpected ways. They may ignore the big new shiny button, not understand what it’s for, or think the awesome thing it does isn’t so very awesome after all.
If you launch your new idea piece by piece, you can see quickly whether people are responding to it. Do they see the new button? Is it clearly communicating the desired action? Are people going on to the next thing you want them to do? Launching quickly, and building in some feedback mechanisms, can tell you whether you really are on the right track.
Make sure the new shiny doesn’t break things
Before you make a new feature visible to customers, you can install the back end for it and see how your system responds. You can also make the new feature visible to a very small number of people, and incrementally expand its visibility, before turning it on for everyone.
Respond fast to market changes
Agility is all about being able to change in response to the market. Laws get passed, regulations change, commodity prices go up and down, safety warnings go out, celebrities launch fads. You want to be able to push out your great idea quickly, especially it doesn't need a lot of new development.
Respond fast to changes in your business strategy
Something you thought was profitable may have turned out to be a loser. Web analytics may be telling you that more people are visiting your site on mobile phones, and these customers are more likely to buy. Your company may want to test uptake on a new microsite. Whatever the decision, you can implement it faster if you’re already practicing continuous delivery.
Have a happier, calmer work environment
Continuous delivery is known to be easier on everyone — development and IT operations teams alike. Fewer errors and a more predictable pace add up to less stress for everyone. And because frequent small deployments are less painful, people are willing to keep on doing them.
While many of us get addicted to the adrenaline spikes of a chaotic environment, a calmer and more predictable atmosphere is actually more conducive to creativity. When you’re not fixing errors all the time, you have more bandwidth to think up innovative new moves, and try them out.
Comfort with frequent change = competitive advantage
Once your whole organization is comfortable making changes more often, you’ll have a distinct advantage over competitors who are reluctant to release code frequently, or whose releases are chaotic and error-prone. It’s the kind of success that builds more success, too: As our own Eric Shamow says, continuous delivery is like a muscle that gets stronger the more you flex it.
- Take a look at the tools that enable continuous delivery.
- You don’t have to do it all at once: Automate one small thing and build from there.
- Continuous delivery depends on automation.
- Inside view: How Puppet Labs automated test to facilitate continuous delivery.
- One thing you’ll need for continuous delivery is automated configuration management. Try out Puppet Enterprise on 10 nodes for free.