Let’s look a little more closely at why our deployment mess is an example of a Ship of Theseus pattern. But “Deployment” is a abstract and confusing concept. So, let’s get more concrete and take the example of a switch in a company’s network.
We’ll call it NS1, network switch 1, because the spec that laid out the network and specified its components calls it that.
As with any network, a lot of people work on it and interact with it:
- Our network engineer handles day today operation of the whole network. She often refers to the original spec and calls this switch NS1. Just like in the plans.
- Our hardware tech installs and updates the network hardware. When he originally installed a switch at NS1, according to the spec, he recorded its make, model, and serial number in a database of assets. He refers to it by its serial number: A123.
If we ask the network engineer and the hardware tech to walk us over to the thing those labels – NS1 and A123 – describe, they would take us to the same piece of hardware. They would agree on its operating properties: it’s a 25G switch. It’s plugged in to Ethernet. It would seem like they were using different names to describe the same thing.
But say right after we walk away, the switch fails. Another hardware tech comes by and swaps out the switch for a new one that meets the same requirements for NS1 in the spec.
Now, if we ask the engineer and the tech whether the switch is the same as what they showed us previously, they’ll give us different answers. The engineer will say: sure, it’s still NS1. And the tech will have to say: no. The serial number has changed.
So maybe NS1 and A123 or B123 are two different things? But that seems wrong: two things can’t occupy the same space at the same time. If you touch the switch, you’re definitely touching one thing.
What’s happening is that we have a conceptual thing from our blueprint, NS1, and a physical thing, A123 or B123. And the paradox is: sometimes we need to treat them as the same thing. But other times, we need to treat them as different things.
My network switch example is a simplified transcription of this case study from the BORO ontology:
https://borosolu tions.net/sites/d efault/files/LOA 2002 - What is Pump Facility PF101 (paper).pdf