I definitely agree with everything that turns Bits to Its being kinda cursed. I think the natural phenomenon boundary is more general.
Here are some other examples of things which feel terrible in a qualitatively-similar way to printing:
Dealing with the Department of Motor Vehicles or similar bureaucracies.
Working on a mature and messy/poorly designed codebase.
Making a finicky machine work (regardless of whether any Bits are involved).
One piece of what makes these feel similar is recursion—I go on a subquest to solve one subproblem, and that triggers a subsubquest to solve a subsubproblem, etc. One thing I notice about the examples is that the problems maybe typically have to do with assumptions at interfaces—e.g. the printer being out of paper isn’t really about “Bits to Its”, it’s about a finicky machine having been designed with some assumptions about its working environment and those assumptions not always being satisfied.
Anyone who knows enough to even begin to think about doing anything about it, knows enough to not have the problem.
Making it just work is actually a hard problem. Codebases naturally get messy when big, and are born with ontology skew to the eventual ontology. Machines have to be operated with a conscious touch, and therefore the human has to interface with them.
Legacy systems, especially multiple. E.g. your poor printer is supposed to interface with a huge range of computing systems / your poor computing system is supposed to interface with a huge range of printers.
Sure someone could put a ton of effort into making the last mile smoother, but who’s incentivized to do that? The printer does the hard part of printing, what more do you want.
Relatedly, I often feel like I’m interfacing with a process that responded to every edge case with patching. I imagine this is some of what’s happening when the poor printer has to interface with a ton of computing systems, and also why bureaucracies like the DMV seem much more convoluted than necessary. Since each time an edge case comes up the easier thing is to add another checkbox/more red tape/etc, and no one is incentivized enough to do the much harder task of refactoring all of that accretion. The legal system has a bunch of this too, indeed I just had to sign legal documents which were full of commitments to abstain from very weird actions (why on Earth would anyone do that?). But then you realize that yes, someone in fact did that exact thing, and now it has to be forever reflected there.
What this sounds like to me is a system, where all of the parts are designed cleverly with the assumption that their costs are going to be amortized, but because the current reality isn’t fitting the original assumptions, you’re hitting cache misses and full cost on every single operation
Hm. So it’s some larger problem of which the Curse of It From Bit is a subcluster, then? If I’ve understood you right, this is also something I’ve spent time thinking about by way of finding them with my face. Something like… some unfeeling machine/system/structure that fails to live up to its own spec, or which has a bad spec or no spec at all, and which makes that state of affairs your problem, you silly goose who wants to actually do things, you. There’s the flavor of that thing from Zen and the Art of Motorcycle Maintenance where there’s this tiny trivial-feeling problem that humiliates you with a combination of feeling trivially small while nonetheless demanding close attention and deep understanding by way of being a critical blocker to solving whatever problem, I think? I think that the yakshaving bit is downstream of the spec failure piece—it seems like a common failure mode of degraded systems/designs.
I definitely agree with everything that turns Bits to Its being kinda cursed. I think the natural phenomenon boundary is more general.
Here are some other examples of things which feel terrible in a qualitatively-similar way to printing:
Dealing with the Department of Motor Vehicles or similar bureaucracies.
Working on a mature and messy/poorly designed codebase.
Making a finicky machine work (regardless of whether any Bits are involved).
One piece of what makes these feel similar is recursion—I go on a subquest to solve one subproblem, and that triggers a subsubquest to solve a subsubproblem, etc. One thing I notice about the examples is that the problems maybe typically have to do with assumptions at interfaces—e.g. the printer being out of paper isn’t really about “Bits to Its”, it’s about a finicky machine having been designed with some assumptions about its working environment and those assumptions not always being satisfied.
Partial themes:
Anyone who knows enough to even begin to think about doing anything about it, knows enough to not have the problem.
Making it just work is actually a hard problem. Codebases naturally get messy when big, and are born with ontology skew to the eventual ontology. Machines have to be operated with a conscious touch, and therefore the human has to interface with them.
Legacy systems, especially multiple. E.g. your poor printer is supposed to interface with a huge range of computing systems / your poor computing system is supposed to interface with a huge range of printers.
Sure someone could put a ton of effort into making the last mile smoother, but who’s incentivized to do that? The printer does the hard part of printing, what more do you want.
Relatedly, I often feel like I’m interfacing with a process that responded to every edge case with patching. I imagine this is some of what’s happening when the poor printer has to interface with a ton of computing systems, and also why bureaucracies like the DMV seem much more convoluted than necessary. Since each time an edge case comes up the easier thing is to add another checkbox/more red tape/etc, and no one is incentivized enough to do the much harder task of refactoring all of that accretion. The legal system has a bunch of this too, indeed I just had to sign legal documents which were full of commitments to abstain from very weird actions (why on Earth would anyone do that?). But then you realize that yes, someone in fact did that exact thing, and now it has to be forever reflected there.
What this sounds like to me is a system, where all of the parts are designed cleverly with the assumption that their costs are going to be amortized, but because the current reality isn’t fitting the original assumptions, you’re hitting cache misses and full cost on every single operation
Hm. So it’s some larger problem of which the Curse of It From Bit is a subcluster, then? If I’ve understood you right, this is also something I’ve spent time thinking about
by way of finding them with my face. Something like… some unfeeling machine/system/structure that fails to live up to its own spec, or which has a bad spec or no spec at all, and which makes that state of affairs your problem, you silly goose who wants to actually do things, you. There’s the flavor of that thing from Zen and the Art of Motorcycle Maintenance where there’s this tiny trivial-feeling problem that humiliates you with a combination of feeling trivially small while nonetheless demanding close attention and deep understanding by way of being a critical blocker to solving whatever problem, I think? I think that the yakshaving bit is downstream of the spec failure piece—it seems like a common failure mode of degraded systems/designs.