The ship of Theseus, migrated

There’s an old puzzle about a ship. Its planks rot, so they get replaced one at a time, and after enough years none of the original wood is left. Is it still the same ship? Someone later added a twist: what if you kept all the old planks and built them back into a boat? Now there are two, and it isn’t obvious which one deserves the name.

We think about that puzzle a lot when we move a system somewhere new, because it’s the same situation. New code, new machines, new storage. Nothing survives the trip. And still, people expect to open their account the next morning and find what they left there.

What we’ve come to believe is that “the same” isn’t something you discover afterwards. It’s something you decide beforehand. Which things have to match exactly. Which things are allowed to change. Which old oddities you’re glad to leave behind. Once that’s written down, the puzzle mostly goes away. You’re no longer asking whether it’s the same ship, only whether it passes the tests you agreed would make it so.

We’ve also learned to have someone other than the builders do the checking. Not out of suspicion. Whoever built it carries the same assumptions into the checking, and the mistakes tend to hide in exactly those.

← all posts