You're stuck. You understand parts of the problem, but there are other parts that you can't get your head around.


Write to someone who knows the code (much) better than you do. Explain the problem. Tell what you tried, what you discovered and why it ultimately failed. More often than not, you will have an insight that gets you unstuck. Now you don't even have to send the message.

(If you stay stuck and have to send the message, remember to put the bottom line up front. See Manager Tools: Creating a Good BLUF if you need help with that.)


This is similar to rubber ducking (see Wikipedia: Rubber duck debugging). But rubber ducking isn't practical. You need a duck and you need to talk to it aloud. If you don't have an insight, you have to repeat the whole explanation to a colleague. Also, writing is a better thinking tool than talking, in my experience. It puts in front of your eyes the shaky assumptions you're making and the questions you haven't explored yet.

What does this have to do with Chip Salzenberg? A long time ago I read somewhere that Chip Salzenberg knows every line of the Perl compiler. Probably there is a person like that for the codebase you're working on. He or she is going to be the prime receiver of never-sent written questions about the code.