[This was originally posted at
http://timstall.dotnetdevelopersjournal.com/what_to_do_before_just_asking_someone.htm]
Some projects have the local superstar. Any whenever anyone has a question, rather than figure it out for themselves (or even try to), they just ask their local star. There are two problems to this approach: (1) It eventually burdens that "star", and (2) It weakens the average guy's ability to find out info for himself.
Sometimes you need the answer right away, so you'll just ask someone. (And it would take too long to figure out yourself). However, most of the time it's worth first taking a stab at it yourself. Here are some ideas:
- Tell yourself that you're just going to try for the next 5 minutes (If you say "I don't have 5 minutes", consider does anyone else?)
- Read the documentation (feature spec, help doc, inline code comments, etc...)
- Google the buzzwords, especially if it's a unique error message (like '__pendingCallbacks[...].async' is null or not an object)
- Step back and think of the higher level concepts (maybe there's a knowledge gap you need to fill)
- Step through the code in the debugger (such as to see the context it's being used in)
- Use SQL Profiler to find data sources (what SP does this call?
- Start at the problem and try working backwards
- Find the steps necessary to deterministically reproduce the problem, then take a divide and conquer approach, checking each part of the code in isolation to see if it is the cause.
- Work on something else and come back to the problem later with a fresh mind.
While having other star coworkers is a nice safety net, it is a luxury that may not always be there. And during those times, it will be nice to have had the practice at figuring out answers for oneself. Besides, the more someone practices at solving problems, the more likely it is that they'll become that goto guy that everyone else asks questions too.