Roughly the same thing as SelfTalk. See also DebugByDescribing, ProgrammersNotebook, RubberDucking. ----- I constantly 'talk to myself' by typing into a text file, whether it's designing, debugging, or implementing. My writing is fairly stream-of-consciousness, as if I'm talking to someone next to me. It is useful for the reasons other people have described above, but often even more so when I'm coming back to code I wrote a long time ago. It's like having the old me describe things about the system to the current me, including all of the reasons that I discarded other approaches before settling on the current one. As other people have noted, coding speed isn't really bound by typing, so I don't think being verbose in my diary costs me any time overall. And it makes working a lot more fun. --DanSchmidt ----- I do this too! ( And thought I was the only one :-) In addition to plain stream-of-consciousness, I have found certain structured formats very helpful. "Question and Answer" In question and answer, I write all unknowns as questions, and then post answers as I get them: Q: How does the client know their own id? A: The local_client record contains a client's own id. "Problem and Solutions" In problem and solutions, I write a problem statement followed by brainstorming of possible solutions. These can nest indefinitely. When I choose a solution, I flag it with an IMPLEMENTED comment: Problem: Actively colliding objects need to be able to find each other. Solution: Each object stores a link to a possible collider. Solution ( IMPLEMENTED ): Use a central Mediator object to manage collisions. "Key Idea" I use Key Idea to place special emphasis on the gestalt of a system. For example: Key Idea: Record ids have static mappings to object types, therefore record ids provide MEANING, not just a pointer to data. --AshleyFryer ---- ShouldWeTalkToOurselvesWhenReadingCode? ---- CategoryLearningMethods