Earlier today I was listening to an audio book by Jim Rohn. He is a business author but he has one bit of advice that I find is extremely useful in software development. In the section on “Building Self-Enterprise” he has this to say:
“So what is the problem? State the problem. Write it down…. And I’ve got three questions to ask [yourself] in order to solve the problem.
“The first question you need to write down is this: What can I do? Because, you don’t want to go any further than that if you can solve it yourself. Then what you do is develop working papers and start jotting down [that] I could do number one, and I could do number two, and I could do number three. There are some alternatives. Then you start analysing them.
“Now if that doesn’t work then here is number two: What could I read? Maybe there is a book on my problem. Somebody spent a lifetime trying to figure out this problem. Maybe it is written out in concise language somewhere to give you the instant benefit of someone’s advice. You don’t need to reinvent the wheel. Do your homework and find the solution. And then you start to develop some working papers on what you are reading. Don’t miss the book that could help.
“So, don’t sell yourself short here. You can find some answers. Now, first try and find them yourself from your own experiences. Then second, if you can’t find them yourself then ask ‘what could I read?’ Go to the library. Go to the bookstore. Search your own library. Go back through your own journals to find the stuff that has been helpful and valuable and see if maybe you have made some notes that could be helpful in your situation.
“Now, if that doesn’t work then ask question number three. And question number three is: Who could I ask? Now, guess what you are prepared with when you ask somebody to help you. You’ve got your working papers to show them. You say I’ve tried my best to figure it out myself, and that finally left me short. Here are some of the books I’ve read. I’ve researched this material and I’m still short. Now, could I possibly ask you? And could you possibly help me? You can’t believe how willing somebody will be to help you if first of all they’ve got the idea that you were willing to help yourself.“
That is fantastic advice, even although he applies it to building a business, it also works for solving problems in software development. So many times I see in software development forums people ask questions that they obviously can’t be bothered to try to help themselves first. So many times I see people post their homework questions verbatim to the forum and just ask: How do I do this? Write some code for me. Give me the code for this.
NOTE: This was rescued from the Wayback Machine. The original date was Wednesday, 24th November, 2004.