For all these tasks, make them easy to do or you won’t really do it.
Start everything in a clean environment
Don’t hack in an environment filled up with artifacts from the previous release. Clear them all out. Make sure that your environment looks like what you released for 1.0 before you start 1.1.
Encourage lots of sandboxes
Be able to explore mutually exclusive solutions to the same problem and not worry about conflicts.
Make your environment realistic
Design your sandbox so that it resembles your production environment.
Just to be clear, I don’t mean that development must be identical to production. I mean that if you anticipate bottlenecks in production, figure out how to model them.
Deploy during development
Deployment should be boring. But it usually isn’t, because developers overlook trivial dependencies they created along the way.
You’ll quickly discover what you forgot to add to your deploy scripts last time if you start every session like this:
- Reset your sandbox.
- Check out your code.
- Run the deployment script.
- Now start working.
By the time you are ready to release, you will have simulated the deployment process many many times.