This post originated from an RSS feed registered with Java Buzz
by Weiqi Gao.
Original Post: You Think, You Lose!
Feed Title: Weiqi Gao's Weblog
Feed URL: http://www.weiqigao.com/blog/rss.xml
Feed Description: Sharing My Experience...
Ever since I started programming, I've heard studies about how programming productivities vary among individuals. The fastest programmers are easily 20 times more productive than the average ones.
I believe I've found out why: They don't think.
Or rather, I slow down when I think, with no discernible benefits.
Thinking, especially the kind where no tangible output is generated, including developer meetings where everyone just talks (and talks, and talks,) is useless.
I made the connection when I was doing grocery shopping yesterday. When I shop, I have a list and go through the store picking up what I need. And I get out of the store in 30 minutes. But another couple I saw didn't do it this way. They would stop at, say the pickles shelf, pick up each jar and read the labels, probably comparing the ingredients and calculating the price per once in their head. They probably got the healthiest jar of pickles at the most favorable price. But they also spent 20 times longer than most people.
Just think:
If you don't know what the customer wants, thinking won't help you
If you are not clear about an algorithm, thinking won't help you
If you don't know the consequences of some design decisions, thinking won't help you
If your algorithm has multiple branch points as to make the execution scenarios hard to imagine, thinking won't help you
If your thinking is along the lines of "writing pseudocode in your head and interpret it with your brain," you are wasting a perfectly good computer sitting just in front of you
What we do every day is to make decisions. You either have enough information to make the decision, in which case you should make the decision immediately. Or you don't have enough information to make the decision, in which case no amount of your thinking will generate that missing information.
So, stop being thoughtful. The answer should be "Yes" or "No." Clearcut. Immediate.
If you can't answer it, get a hint, poll the audience, or ask a friend. Just don't waste your time thinking.