← Back to context

Comment by perching_aix

9 hours ago

It comes from the world of systems operations. Something long-lived and trusted, so high emotional attachment (pet), vs. something short-lived that thus does not need to be trusted, so comparatively low emotional attachment (cattle).

For example, Bob's one-of-a-kind trusty server from which Bob is nigh inseparable, vs. a Docker container with a version controlled config you routinely tear down and bring up instances of, maybe even in an automated fashion.

Here this would map to trusty aged codebases you don't touch out of fear and caution, vs. codebases you can confidently touch because the spec, the code, the tests, the tooling, and the processes are solid.

A different mapping: to Microsoft, the users's computers are cattle, but to each individual user, the computer is a pet. Which is why the users keep getting mad when their pet feature gets euthanized.

For development, I'd see a different mapping.

Pets are projects that you toy with and keep adding new features, even when the main objective has been met. Cattle are projects that do what they are supposed to and are left alone.

I'd much rather have Notepad fall into the cattle category.