Systems that defy detailed understanding
For dealing with complexity, we can draw insights from computer engineering
From engineer Nelson Elhage’s excellent blog post:
When you’re working on and building out a distributed system, you will inevitably encounter situations where some underlying component fails (say, an individual database node crashes), and in which the system as a whole does not gracefully recover (say, the client hangs instead of timing out and retrying a healthy node)…
As I came to see the “understand everything!” approach as largely misguided here, I started to conclude that it was usually a better use of my time to focus effort the systems-level failure, instead of the individual component failure.
Given that the individual node failed, how could the system as a whole react more robustly?
…
In such systems, we must resort to empirical methods. Instead of reasoning about the system and reading the source to answer questions, we find ways to ask questions about the running system.
This epitomizes the mindset I try to take when approaching chronic pain.
Rather than reasoning about the specific e.g. wrist tendon and why it is inflamed, it is often more helpful to observe empirical system-level behavior (in what general contexts does my wrist hurt?) and run experiments to adjust parameters of the system.