There’s something weird about software development, some mystical quality, that makes all kinds of people think they know how to do it. I’ve worked at dotcom-type companies full of liberal arts majors with no software experience or training who nevertheless were convinced that they knew how to manage software teams and design user interfaces. This is weird, because nobody thinks they know how to remove a burst appendix, or rebuild a car engine, unless they actually know how to do it, but for some reason there are all these people floating around who think they know everything there is to know about software development.
Is this really true? I've said before, people love compare our industry to others and say, “We should be more like that.” But I'd argue that - human nature being a constant - it's more likely that we simply don't see the manifestations of stupidity in other professions. For example: how many of a doctor's patients are people that decided to stop taking their antibiotics because they felt better? Or how many mechanics fix cars that never should even have been driven to the shop? Ask a doctor/mechanic, and you'll probably hear tales of people that never should be allowed to touch a human body/automobile.
It's true that few people will try to remove their own appendix. But few developers will try to write their own TCP/IP stack. Which is to say, since analogies are inherently subjective, you can prove anything you want with them. Show me a quantitatve measure of task complexity, then talk about how people approach software tasks differently...because I'm not convinced that they do.
After all, no matter what field you're in, half of your collegues will be dumber than average. ;)