Inner Monologue

February 25, 2025

Migrations fail at the edges

I have never once been wrong about the volume. I am regularly wrong about the variety.

I quoted four weeks. It took nine. I still think about that project, and the reason it went wrong is the reason most of them go wrong: I estimated the size of the data and not the shape of it.

Ninety percent of records are ordinary and move themselves. The schedule is set entirely by the rest: the duplicate accounts nobody merged, the invoice with a negative line, the customer who has been on a special rate since 2011 which exists only as a sentence typed into a notes field by a salesman who has since retired.

Now I profile before I quote, and it takes days rather than weeks. Count the distinct values in every field that matters. Find the records that break the rules the new system will enforce. Put a number against each category. That number changes the conversation from an argument about the deadline into a decision about scope, which is a conversation adults can have.

Then decide on purpose what does not come across. Some records should be cleaned before the move, some after, and some belong in a read only archive that nobody touches again. Every migration leaves something behind. The difference between a good one and a bad one is whether anyone chose.

MMB

All articles