“Stupid Should Hurt”
I love it.
Glenn Campbell on “stupidity”:
During our childhood, we are given a certain amount of protection from reality. Our parents dole out rewards and punishments that are often detached from the conditions we must eventually face. Some parents, for example, may reward their children no matter what they do. This sets the stage for stupidity in adulthood, as the subject expects the outside world to hand him the same unconditional reward.
The habits of stupidity can be terribly difficult to change, especially in others. This is why we label some people “stupid” as an overall systemic condition. They are never going to “get it” because they have made a fundamental philosophical decision not to. Their emotional needs are so great and cause them so much internal panic, that they can never accept reality the way it is.
The worst thing you can do for a stupid person is protect them from their mistakes. Maybe stupid should hurt. If it doesn’t, then they’re going to get even more stupid, and they will be totally unable to deal with life when the protection finally collapses.
When you have a boss, client, parent, spouse or adolescent child like this, that’s when you find out what a tragic and terrible disease stupidity is. You clean up one stupid mess, but then there’s another and another. There’s never going to be an end to it until the stupid person touches reality himself is able to directly experience the results of his actions as they occur.
Smart people, by definition, learn quickly from their mistakes, but stupid people don’t. They may have to hit their head against a wall many times before they realize, “Hey, this isn’t a good idea.” Even then, it’s only that particular wall they’ve learned about. If you put up another wall, they’ll insist that it shouldn’t be there and repeat their mistakes all over again.
This last paragraph is particularly relevant in software development. I wouldn’t call anyone stupid (you have to have above average intelligence to make it anywhere in software development; more like misguided or unmotivated), but many times, people just don’t learn from pain and mistakes. They settle into a methodology or a style and build up mental inertia. No matter how many times you try to tell them that there is a better way, a more efficient way, a better tool, they refuse to adapt and expand their boundaries.
It’s not that “smart developers” are infallible — everyone makes goofy design decisions from time to time (especially when “The Big Picture” is not a known quantity), but that they can adapt quickly and learn from their mistakes. They look for ways to ease the pains of the development process. They are curious about how to make processes more efficient and less error prone.
Just a random Thursday lunchtime rant 😉