Five Ways to Fail in Deployment
Deploying into production can be exciting, especially if you have a service that really should stay up and running. Having and maintaining rigorous deployment practices is not always easy, but it is a core capability in a good software development organization.
Based on our experiences, we suggest five great ways to ensure failure in your deployment process. If you tackle these, you have already taken great steps towards a robust and resilient deployment practice.
Skip Testing: Deploy untested code to production. Why bother with testing when you can deal with the chaos later?
Ignore Environment Consistency: Make sure your staging environment is completely different from production. Surprises are more fun during deployment
Avoid Automation: Do everything manually. Human error adds excitement to the deployment process.
Deploy at Random Times: Deploy whenever the mood strikes, especially when your team is asleep. Who needs to alert team members during deployment?
Never Test Your Rollback: Skip testing your rollback plan. If things go wrong, why not add a little extra stress by figuring it out on the fly?
These might sound so simple and obvious, but that does not mean they are easy. At what frequency do you test your backups and your rollback capability? Project realities and human errors always contribute to the fact that something unexpected always happens. That is why it is important to create a resilient system and organization instead of a perfect one.