Rehearse properly, and break something on purpose
A rehearsal in which everything works is a demonstration, not a test.
Run at least one full rehearsal covering the complete route from source to accepted target, including validation and operational handover. A connectivity test is useful in week one but tells you nothing about timings or recovery.
The rehearsal has three jobs, in order of importance:
- Produce measured timings for every stage, to replace the estimates the plan was built on.
- Prove the team can recover. Introduce a controlled failure — kill a load part-way, corrupt a manifest, break a credential — and make the team restart from it using the documented process. A rehearsal in which everything works is a demonstration, not a test.
- Exercise the decision points, with the actual people who will be in the room at cutover making the actual calls.
- Time the rewind. Your abort point is calculated from this number, so it needs to be measured rather than estimated.
Choose object groups with realistic data distributions and volumes, not a convenient subset. A rehearsal on well-behaved data will not find the skewed partition, the row with the character set problem or the table with the unexpected LOB.
Rehearse on the intended target, or on something close enough that the difference does not invalidate the timings. Where there is a material difference, record it and say what it does to your confidence.
