icon
approach / Principles

Continuously deploy to production as feature is ready

Today, more than ever before organizations are trying to follow market trends and meet customer needs to the fullest and in a shortest time period possible. To respond to market changes in time and make valuable business decisions organizations are adopting continuous deployment techniques. With this approach, development teams can test and validate new features in a production environment before the business needs them. This principle of the development team's work reduces the risks when releasing a function that the business needs at the right time.

How it works

  • When a feature is done and deployed, that means it has already been validated. It doesn't affect the rest of the product and can be released at any time.
  • When deploying continuously, each separate deployment contains a small number of changes. That makes it easier to control, test, release, and, if needed, rollback.
  • Continuous deployment speeds up feature delivery. Clients and devs become satisfied and motivated.

Benefits

  • Focusing on a specific group of clients and developing and testing the necessary functionality for them.
  • Encourages experimentation (A / B testing, design thinking) that helps deliver features optimized for user needs.
  • Enables the release of updates on demand, which enables the business (marketing, sales) to set the stage and value for such updates.

Goes well with principles and techniques

Continuous deployment

This teamwork principle works well with continuous integration and continuous deployment techniques. According to which the build, test and deployment processes turn into an automated system. By using these techniques, the entire process can be broken down into several stages, which can shorten the entire feedback loop and automate repetitive tasks. This significantly speeds up the software release process.

Decouple code deployment from feature release

When teams decouple deployment from release, they can push code wherever they want without exposing it and impacting users. This allows you to run the necessary tests in a production environment and reduce risk at release.

Feature flags

A feature flag (also called a feature switch) helps DevOps target customer needs by enabling (revealing) or disabling (hiding) in the solution they are developing, even before release. Feature flags make development faster and safer because it allows you to quickly iterate over a production deployment.

The new approach allows for testing new features on a subset of loyal customers. No matter how much testing you do in lower environments, something unexpected usually comes up in production which you can't prepare for due to volume issues, edge cases or environment issues so feature flags helped us a lot.

Work in small batches

By using these techniques, the entire process can be broken down into several stages, which can shorten the entire feedback loop and automate repetitive tasks. This significantly speeds up the software release process.

Quality built-in

Built-in quality is one of the tenets of high-performance development teams and continuous delivery whereby teams need to focus on code quality, not control. Problems and bugs are much cheaper to fix immediately during development, as soon as they are discovered. Better yet, identify and fix problems with automated tests before they arise.

Recommended reading