The end of the sprint was only a few days away. The team was working hard to make sure that all the features we had committed to. Would make it into production release. With a code freeze looming overhead tension were high.

On feature had just passed a flurry of quick code reviews becoming “Dev Complete”. The code was quickly checked in and the pushed out to our testing environment. At the same time I was informed that I would be able to start testing.

There was one problem though. I wasn’t able to log into the application. A previous commit had broken our testing environment.

If you’ve ever ran into a problem like this then having gated deployments is something you’ll want to look into.

Thankfully this post will tell you all about them.

What’s a Gated Deployment?

A gated deployment is when checked in code doesn’t get pushed to other environments unless it passes a set of test. In theory, any type of test will work. There are a plenty of options to choose from as you can see from 20 types of software testing. I’ve even heard of QA teams manually testing on one environments before push changes to another. The most practical option for a gated deployment is automated testing. So we’ll focus on automated test from here on.

These test are like guards at a gate only allowing code that seems ok makes it through. Like any guard they aren’t perfect. Sometimes things will get through. You’ll want to setup a system like this to avoid the blatantly obvious issues like compiling issues, login issues, and other basic functionality breakdowns. Pretty much things that make the system unusable.

The 7 Benefits Of Gated Deployments

  1. Quality is built into your deployment process.  No one has to ask if a stable build is currently on XYZ environment is stable. The gate should a lot of that.
  2. Test environments are owned by Developers & Testers. Developers should care about more then just local machines and Tester need to make sure there are very few false positives.
  3. Testers work on code that isn’t completely broken.  This allows everyone to be more productivity, which save the company money and leads to better products.
  4. Turn around time from code check in to validation is reduced. Many gates sound alarms when something is wrong.The person who checked in the code knows right way if something is broken. They correct people should always be notified when builds don’t pass the gate.
  5. Takes away assumptions. We now have a baseline for every build that’s deployed to any environment.

In the end Gated Deployments allow software to be easily deployed to test environments. This results in the ability to rapidly, reliably and repeatedly push out enhancements and bug fixes to customers at low risk and with minimal manual overhead.