Last week’s deployment was more complex than usual – we redeployed the entire system and migrated onto new hardware. Our goal, as usual, was to minimize or prevent downtime. There were a number of ways to go about the roll out, so at the start of the day we sat down and built a plan for the release.

The plan consisted of a whiteboard diagram of the current server topology, the new server topology and the steps that we were planning to take to move from one to the other. We had been doing this more informally for previous releases, but having the plan explicitly specified ensured that everyone was on the same page throughout the day. And having the plan highly visible in the project area made it easy to gauge our progress and see what was left to do. I think that this will be a valuable addition to our weekly release process.