⚠️ Watch out: Environments encourage behaviors
⚠️ Watch out: Environments encourage behaviors.
QA: "Let's batch up work and wait for a separate team to manually test our app and approve before we can deploy."
UAT: "Let's batch up work and block deploy until a subset of users approves."
Staging: "Let's batch up work, practice configuring our release, and test it before deploying to prod."
See the repeated verb above? Batch. 👎
These environments encourage anti-patterns:
🚫 Batch up work.
🚫 Do infrequent releases.
🚫 Integrate work on a schedule, instead of continually.
🚫 Do manual configuration and manual testing (Infrequent releases don't encourage automation).
The alternative? Do CI/CD.
✅Automate tests
✅Automate deploys
✅Eliminate batching. Practice continuous integration (CI).
✅Eliminate most non-prod environments. Instead, release many times a day, automatically. Practice continuous Delivery (CD).
✅Toggle features to separate release from deploy. The business can decide when a feature is visible in prod by checking a box. 😎