Have you ever experienced a big bang deployment? How did this go? Probably somewhere between “terrifying, but it ultimately worked out” and total disaster. Big bang deployments are extremely risky propositions for businesses and for software development teams. You’re much better off reducing your risk footprint and releasing functionality gradually.

You can start with adopting an agile approach and learning to create smaller releases. But that can only take you so far. Organizations like Facebook that have the most mature deployment processes, get down to the release granularity of individual features.

In order to do this, they have to conceive of software releases in a fundamentally different way. They need the ability to turn things on and off at the individual feature level. They accomplish this with a feature flag management system. Being able to turn things on and off from a dashboard greatly reduces risk.

Gradual Rollout and Rollback

But that on/off binary is not the whole risk reduction story. After all, you can have problems that don’t crop up until a hundred or a thousand users start using something. With any decently sized user base, you’ll know that there’s a huge difference between on and off.

This brings into play the idea of gradual rollout. Introduce a brand new feature using a feature flag, and then, leveraging target groups, you can expose users gradually to it. Measure its performance with just a few users, then crank up the dial to dozens or hundreds, evaluating every step of the way. If you hit a problem, you can simply turn the news feature off. Or you can roll back gradually as well, getting back to safe levels while fixing the problem.

In a world where downtime is no longer acceptable, you can’t afford big bang deployment or other risky rollout strategies. Use gradual rollout to deploy new features and functionality with confidence.