Jach's personal blog

(Largely containing a mind-dump to myselves: past, present, and future)
Current favorite quote: "Supposedly smart people are weirdly ignorant of Bayes' Rule." William B Vogt, 2010

My rule for getting help

Fairly often I'll run across a problem that doesn't stump me, per se, but is challenging enough that I can't solve it very quickly and my usual approaches to solving problems are failing me. When even descending into the dreaded shotgun testing method (the last resort of a desperate man...) fails, I know it's time to get help. But I have a rule for getting help before then: did I think it would take me less than thirty minutes, and has it taken me longer than 45 minutes? If so, I implement a two-step process: post a help message somewhere (Stack Overflow, a mailing list, an email, a bug case), but then the most important step: keep working on the problem. When others are helping you with the problem too, that doesn't mean you sit on your hands and wait for them. (I've seen this happen a lot.) At the very least pretend the problem is solved and move on to the next step.

The second step is so important because very frequently I find myself solving the problem quite soon after posting my help message.

I have a simple theory for why this is so: writing out the help message lets you focus your mind on what you already know about the problem, plus when writing the message (if you've done it more than once anyway) you know it's good etiquette and you're more likely to get an answer if you generalize the problem to a less-specific case. A potential helper doesn't need to know your login checking query if your problem is handling a failed login on the client side, so you leave that out of your summary. In addition, you're taking a break from actively attempting to solve the problem, but not letting the problem escape your brain's local cache like it might if you go take a walk.

A rule of thumb to the rule: asking prematurely is actually good. If your problem is tricky enough that Googling doesn't easily reveal an answer, that's a sign you should share the solution somewhere when you've solved it. Asking prematurely or late doesn't matter if you eventually solve it, as you're going to go back and post the answer anyway (assuming you're a Good Person), but asking prematurely (or just early) also gives you the benefit that potential answers can start accumulating sooner. Thirty minutes to an hour is a good time frame, though I try to keep four hours my max. If I haven't broken down my current task into something that should take less than four hours, I need to think in smaller chunks.

It's interesting to look at the spectrum of personality types in relation to how they seek help. I think we all want to think of ourselves as smart enough to solve something on our own, and so there's a little I'm-blinking-first trade off in status to seeking help (evolutionary-environment speaking). Yet some people try to never seek help, wasting loads of time before they're caught or someone solves it for them without knowing the first person couldn't, other people seek help too much (and some become helpless when someone helps them), some seek help when the answer's just a Google search away, some seek help as a last resort... And depending on the situation, everyone can exhibit any one of these methods and more. I think my rule tries to fall in the middle, of erring on the side of getting help rather than avoiding help, though in practice I probably avoid help more than I should.

Posted on 2011-02-07 by Jach

Tags: personal, programming


Trackback URL:

Back to the top

Back to the first comment

Comment using the form below

(Only if you want to be notified of further responses, never displayed.)

Your Comment:

LaTeX allowed in comments, use $$\$\$...\$\$$$ to wrap inline and $$[math]...[/math]$$ to wrap blocks.