Sunday, March 11, 2007

Family doctor is good enough for me

Rockford Lhotka published a post predicting a future in which "regular" developers with no speciality only refer problems to specialist developers: "Their role is primarily to take a guess about the issue and refer the customer to a specialist".

He uses a medical metaphor:
"As I mentioned at the beginning, I’ve been spending a lot of time in hospitals. And so I’ve interacted with a lot of nurses and doctors. And it is scary. Very, very scary.
Why?
Because they are all so specialized that they can’t actually care for their patients. As a patient, if you don’t keep track of what all the specialists say and try to do to you, you can die. An oncologist may prescribe treatment A, while the gastro-intestinal specialist prescribes treatment B. And they may conflict.
Now in that simple case, the specialists might (might!) have collaborated. But if you are seriously ill, you can easily have 4-8 specialists prescribing treatments for various subsystems of your body. And the odds of conflict is very high!
In short, the consumer (patient) is forced to become their own general physician or risk serious injury or death at the hands of the well-meaning, but incredibly-specialized physicians surrounding them."

Lets start with the need for a specialist - most people don't need one.
If you have a good family doctor, he/she should address 99% of the problems you have, assuming you even need to see a doctor. A bad family doctor will just throw you to the wolves (specialists) instead of trying to figure out what's wrong with you, but that's just bad medicine, not a rule.
Likewise, most software projects should be fine with regular developers, never requiring a specialist unless something goes very wrong with them.

And there is also the matter of team work. It's common knowledge MD professionals don't play nice together. On the other hand, software developers are team players by requirement.
I can't imagine two doctors working together, unified toward a single goal -
But that's just what pair-programming is all about!

No comments: