As both a doctor (surgical attending) and programmer medicine feels not just like debugging a very complex non linear machine. Patient psychology is one of the hardest parts of the job. Is the stomach pain caused by a psychical problem or can it be functional? The use of protocols (part of the science) can help in catching non typical presentations of illnesses, especially if the patient is not adequate in presentation (drunk, very young, old, trauma etc).
But sometimes medicine comes down to an art, when you have the feeling something does not add up, you have to dig. The same with (older) attendings with very attuned diagnostic skills due to lots of experience that can help solve non-obvious cases.
One way in which medicine is not like debugging is the hours spent by a physician vs a programmer. I (as a programmer) have sometimes spent 100 hours tracking down a bug whereas I've never seen a physician spend more than a few minutes trying to diagnose an illness.
Even with a gravely ill person, my experience has been that an attending physician has never spent more than about 15 minutes on the diagnosis (or to be a bit more generous, let's say several 15-minute re-evaluations as new information came to light, such as blood test results).
It's a strange contrast. I considered my bugs to be serious bugs, and it was worth 100 hours to diagnose it correctly. But my bugs are nothing compared to a human life. Why is our medical system OK with quick diagnosis? Does it all come down to money or would more time available to the physician make no difference because [medicine is art not science / some other reason]?
And while there is no official documentation available, there is plenty of good guesses from hordes of brilliant reverse engineers.
Still, there are only a handful of error codes that are thrown, and you have to make your first guesses from those and the logging is pretty terrible when you do decide to dig a bit deeper.
And inserting your own code into the spaghetti mess is a bit of a crapshoot.
Physicians are trained to preload all possible diagnoses based on a certain set of initial symptoms--they have ideas about what the potential answer might be when you inform them of their symptoms, but in order to narrow that space down, additional workup needs to be performed (tests, imaging, etc) and until those results come back, anything else they say is speculation.
(edited, fixed a typo)
Additionally, when you work on a software-bug you probably try a bunch of different solutions. Try it to see if it works, repeat. There's only so much information on a patient, doc spends some time reviewing and makes a diagnosis/treatment decision/orders tests. Wait a day or a couple weeks for results, then repeat.
And doctor resources are scarcer than programmers. It would be great to have 2-4x as much time with a physician when you are sick, but $$$.
I have. The physician's debug loop just takes a lot longer than a programmer's. He orders tests, then waits days for them to come back before ordering more tests. This can go on for months. Then he prescribes something, and has you take it for a few weeks. Did that help? No? Try this instead. Etc.
Of course this doesn't mean that your putative attendings diagnostic skills are any worse - just that they are going to be more and more likely to miss things that actually were inferable from the data, when the case is not simple. At least, without a possibly profound change in practice and training.
I don't know if these ideas constitute science "laws", but of course the practice of medicine is bounded by such factors. Then again what discipline of any importance is not also similarly constrained? A common theme on HN is the inevitability of software flaws, the uncertainties and corner cases inherent in programming tools, like compilers, render satisfactory outcomes a matter of probability, not at all unlike medical diagnosis and treatment.
Nothing new, medicine has been regarded in the last century or so as an art, with a basis in science to the extent it exists. Truth is that a great many phenomena have received little or no study, yet unstudied problems still show up in the office every day and must somehow be addressed.
Good practitioners welcome scientific contribution and eager to employ "evidence-based" procedures. Trouble is there's not much guidance forthcoming, leaving those in the front lines doing what they can with the inadequate tools in the toolbox.
It's worth adding that a substantial part of the probabilistic nature of the work is attributable to the limitless variability of human illness. I've long expressed the idea in a terse form: The reality is no two people ever have exactly the same disease. The subtle differences are what make diagnosis and treatment a constant challenge.
Put another way, abstraction is at once a powerful benefit and potential source of error. Declaring a patient's condition falls into a particular diagnosis lends a valuable clue. However such categorization may easily blind us to the small, crucially important distinctions among sufferers with the same diagnosis. We can easily be fooled by our own cleverness. Point is that the intuition, the talent, of a fine practitioner will always defy "explanations", and that makes it an art.
Edit: punctuation
If you saw a person falling in front of a car, and you stopped to help him but in the process stepped on the man's glasses, would you believe it to be fair for the person who fell to blame you for the broken glasses?
In the spirit of confirmation bias, I recently listened to a great podcast relevant to the topic [0] which discusses why this is. It's more than just lazy statistics.
[0] http://www.econtalk.org/archives/2016/02/adam_cifu_on_en.htm...
I managed to scroll down by invoking the Android text selector and be dragging the selector block downwards.
Android-CURRENT on Huawei Nexus 6P here :)
Most studies are flat. They are concerned with "condition X and drug Y". They go to a finer granularity usually when it's obvious (like treatment A works ok but it is obviously a worse choice if patient has condition B). Getting too deep in conditions is a slow process
Added to that the elements of diagnostics, which more often than not is a "Plato's Cave" view of the patient's condition
"The first law is that a strong intuition is more powerful than a weak test. By this, he means that common things occur commonly and uncommon things, uncommonly... “If you hear thundering hoofbeats, think horses, not zebras — unless you happen to be in Africa.”"
Bayesian thinking!