One of Two Hard Things
In programming, we are constantly naming things.
As a kid, I pictured people like Darwin and other great explorers discovering new plants and animals, and I thought, “How cool would it be to name these things?”
Turns out it’s really hard.
How do you name it? Do you make it similar to other, seemingly related entities? How do you define similar?
And so, it becomes really easy to become lazy in our naming, which can lead to conversations like this:
When an inventoryItem is deleted, we make sure to update the outboundInventory inventoryItem ids to become null for that inventoryItem.
Compare that to this:
When we archive a part, we make sure it is hidden from the UI so you don’t see it unless the “show archived parts” checkbox is selected. Archived parts cannot be used for new orders, but deprecated parts can be. Once a deprecated part has been depleted in inventory, it will automatically shift to be archived. If an archived part has an associated, new version, typing in the archived part number will present the new part as a suggestion to ease the transition for our reps.
The first causes non-technical people’s eyes to rollback and they walk away saying… “you got it”.
The second, by contrast, is far easier to understand, is rich with detail, and can be understood by both technical and non-technical people.
Is the fight over language used in programming valuable? Only if you want everyone to understand what’s happening.
Like this? Join the email list.
Daily micro-thoughts on entrepreneurship, strategy, and tech.