Make the deployment process predictable and fast
Use automation and well-defined approval processes to reduce the overhead and risk of releasing code.
Overview
Release is one of the most exciting moments of the software development process — it's when all your hard work finally reaches users. It can also be a nerve-wracking experience, especially if the release process is manual, complex, or unpredictable.
How to do it
- Checked item: Rely on automation, never manual steps - the only manual step should be triggering the release.
- Checked item: Use the exact same process for deploying to all environments.
- Checked item: Treat your release process like production code - store it in version control, review changes, test it regularly, and fix bugs promptly.
- Checked item: If approval is necessary, define and document a clear process to follow, including who needs to approve and what criteria must be met.
- Checked item: Implement automated testing to catch regressions before they reach production.
- Checked item: Define and document a plan for rolling back releases in case of issues.
- Checked item: Release early and often.
Help us improve
Your feedback helps us create better resources for teams like yours.
Last updated on
Build reproducible environments
Use infrastructure as code, containerization, and other tools to ensure that development, testing, and production environments are consistent and reproducible.
Separate deployment from release
Give business stakeholders control over when new features become visible to users to de-risk code deployment.