A rollback is the re-deployment of a prior version of code. It is often performed as a fast-fix to avoid negative user impact when a regression bug or other defect is found quickly following a deployment. A rollback is not required if the new code or feature is hidden behind a feature toggle which could be turned off.
While rollbacks avoid negative user impact and increased downtime, they are not always adopted as it requires increased developer effort as a rollback is not a permanent fix. Rollbacks need to be communicated effectively to ensure that future deployments don’t redeploy the buggy code back to production, which can also slow down other developers’ work. It also requires coordination with other developers to avoid introducing any breaking changes between the current commit and the rolled-back version.
While rollbacks avoid negative user impact and increased downtime, they are not always adopted as it requires increased developer effort as a rollback is not a permanent fix. Rollbacks need to be communicated effectively to ensure that future deployments don’t redeploy the buggy code back to production, which can also slow down other developers’ work. It also requires coordination with other developers to avoid introducing any breaking changes between the current commit and the rolled-back version.