Software Release Glossary
Most commonly used terms and acronyms by product managers, engineers and devops, regarding deployment strategies

Dark Launch

What is a dark launch?

A dark launch or dark release is a term that refers to releasing your features to a subset of users to gather their feedback and improve your new features accordingly. 

How is it implemented?

You start the dark launch by first wrapping up the new feature in a feature flag, which helps to decouple deployment from release. You would then push this feature into production by toggling it on for your chosen users, starting with a small percentage of users and then gradually rolling it out to more users.

During a dark launch or dark deployment, feedback is gathered and if any issues come up during this launch, especially if you start receiving negative feedback from your users or errors start showing up in your system, you can easily turn off this feature with the help of feature flags.

Benefits of dark release

Such a technique allows you to put forward high-quality releases as you are updating your features according to feedback from your most relevant users. It allows developers to see how users respond to and interact with the new features to determine whether any improvements will need to be made.

Another major advantage is that you are reducing risks that come with releasing new features and minimizing their impact because you are only allowing a small group out of all your users to access your new features. 

It also helps to maintain the momentum of continuous delivery especially as it is important now more than ever to quickly roll out new features to your users and get their feedback.

However, be careful when implementing dark launches using feature flags which may lead to technical debt, especially if your flags are not managed properly over time. You will need to make sure that you have an efficient feature flag management system such as Flagship by AB Tasty that offers dedicated features to keep your flags under control.

Dark launch vs other methods of progressive delivery

You might be wondering what is the difference between this method and other progressive delivery methods such as canary deployments or ring deployments.

Flagship Sign Up

The objectives of such types of releases are the same, which is to gradually and progressively release new features to a small subset of users, letting you test the waters to make sure they work properly before releasing them to everyone else.

One major difference is that canary deployments are usually done on all releases of your app and not just individual features while dark launches allow you to test each feature before rolling it out to everyone else.

Furthermore, usually a dark launch isn’t something users opt-into and the new feature isn’t pointed out to them, hence why we refer to such a launch as ‘dark’. If you want to give users a choice and allow them to opt-in for a beta test, you may choose to do a canary deployment instead.

Therefore, because dark launches are not necessarily beta tests, you must be careful that you are releasing a good enough feature since these users will be less tolerant of any issues that arise during testing.

However, these two terms are sometimes used interchangeably as canary deployments can be considered as a type of ‘dark launch’ that specifically targets a beta group and is more based on a percentage rollout to users.

You will also need to make sure that you have enough users to pick from since dark launches require a considerable user base so this is not a technique suited for new apps.

To sum up

Dark launches are a good way to ensure the efficacy of your future releases and to maintain the stability of your app infrastructure, allowing you to deliver faster and higher quality products to your customers.

More terms from the glossary
Smoke Testing

Smoke testing is a rapid regression test of major functionality to detect early errors and indicate whether the product is ready for further testing.

Read description
Version Control

Version control, or source control, is the practice of managing and tracking changes to software code.

Read description
Software Development Life Cycle

Software development life cycle (SDLC) refers to the different stages that a software goes through from planning to completion.

Read description
Copy link