Nate Meyvis

We're using more tacit knowledge than we think we are

Raising children is eye-opening in countless ways; one of them is that operations that seem self-evident and automatic are revealed as, in fact, the result of careful learning. Knife usage is my favorite example of this. When I use a knife, it usually feels as though there's nothing to do but touch the knife to the right place at the right angle. In reality, there's a lot of finesse involved: you need to move the knife back and forth, get the pressure right, rotate the knife and/or the thing you're cutting, and much more. A session teaching a toddler tends to reveal some of this, but many of us are so familiar with knives that we cannot see these things without a lot of effort.

Let's say I'm working with Claude to fix a product where a list is loading slowly and, as a result, a button is jumping all over the place. It can feel that we're telling Claude to fix the problem as directly as we're telling the knife to cut a potato. But here are some things that one person might know and another might not:

  1. Margin and padding exist.
  2. React components exist.
  3. It is possible to load a component and show a loading message while you wait for content.
  4. The problem is plausibly described as "data is loading slowly."
  5. This might be caused by a slow database operation.
  6. This might not be caused by a slow database operation.
  7. Database indices exist.
  8. You can often choose how much data to load.
  9. It is often possible to fix a button to one part of a page even if many other parts of it might be changing.
  10. You might or might not be able to make an informed decision about whether to use the button before all the data loads.
  11. It might or might not be possible for the button's operation to work before all the data loads.
  12. It might be possible to show a useful summary of the data much more quickly than the data itself.
  13. You can refrain from showing any data until all of it has loaded.
  14. A different kind of database might make this kind of problem, on this kind of data, better or worse.
  15. Database caches exist.
  16. ...and much, much more.

My thesis here is emphatically not that humans' tacit knowledge guarantees that we won't be replaced by AI. Modern AI encodes all of that, and much more, and we'll find better and better ways of feeding information (e.g., .gifs of buggy front-ends) to AI. But I will say that:

  1. An instruction that can feel trivial to a seasoned programmer might not be trivial at all;
  2. This kind of knowledge is, for now, a significant barrier for people new to programming making useful things with AI, especially insofar as that requires polishing and iterating on prototypes;
  3. Deciding what of this knowledge to make explicit to the AI is a meta-skill that agentic engineers should work on.

#epistemology #generative AI #software