Sometimes, when I am trying to think about how to solve a problem (of object-modeling mostly, since that is what I am paid to do), and I am in an environment where I can't properly get into MentalStateCalledFlow (because a noisy office prevents SoloFlow?, and I can't discuss the problem with a colleague in order to get PairFlow?), I end up entering into a dialogue with my editor to think around the problem. I just hit '//' and start typing away any old ideas that come into my head. Usually after a while I see a way to go, delete the comment, and GetBackToWork?.
It is fairly one-sided, as you can imagine; it is a bit like PairingWithYourself?, which I find to be better than just trying to think on my own.
(No; it's no problem, really: I'm just talking with the voices in my head. ;-)
Does anyone else do this?
It seems like a silent version of the CardboardProgrammer or RubberDucking.
It is a way DocumentationOfCodingEffort within the code.
I do it very often as well, when I'm working on a new piece of code, or trying to debug a nasty bug. Although I wouldn't call it a dialog, but rather just recording my thoughts as they come to me about ideas on how to attack the task and what I know as facts.
I've been known to "talk through" tough problems to focus my attention. It seems like a helpful approach, both alone and with others. (...particularly important with others -- to ensure that we're "on the same page.") Sometimes I write or draw. I'm big into pictures. In a few extreme cases I developed a unique form of symbolic manipulation to attack a problem -- a "mathematics," if you will. -- JeffGrigg
I often flesh out a method in a similar way be adding TODO comments for each of the steps that I believe need to happen. These then tend to get turned into method call, re-arranged, some removed, others split-up, etc. It also means that if you get pulled away on a diversion that you don't loose (too much of) your train of thought. -- PaulRuane
I HaveThisPattern, too. My typical method starts out with a bunch of PLAN: comments outlining the steps --PeteHardie