The issue that prompted me to ask this is a web form that was not persisting data the way I expected it to. That's vague, but the point is, what do you like to do to model state, flow of data, and so forth?
6 Answers
I'll second the whiteboard answer and add that explaining what is supposed to be happening, following by verbalizing what the the code is actually doing, along with a basic graphic is hugely helpful for any project.

- 32,620
- 21
- 85
- 124
Whiteboard as well, but be familiar with the UML diagrams. I've had a lot of luck with sequence diagrams--they do a good job of describing the interactions between parts of a system.
I've seen people use state diagrams, but they don't contain as much detailed information--sequence diagrams impressed the hell out of me when I first saw them.

- 62,186
- 18
- 105
- 157
The UML has 2 diagrams that may be useful
State diagrams for modelling state.
Activity diagrams for modelling data flow.

- 49,809
- 17
- 109
- 135
I'll put my obvious (to me) answer, which is to use the whiteboard. Love the whiteboard.

- 12,127
- 17
- 61
- 79
-
but what do you put on the whiteboard? – Steven A. Lowe Oct 29 '08 at 21:31
Graphviz is a great tool for diagramming state machines (once you've worked them out on the whiteboard).

- 7,327
- 3
- 35
- 34
I think the typical models work fine:
for example - state diagrams
http://en.wikipedia.org/wiki/State_diagram
I second the whiteboard use. They are second to none in working on state, flow, etc.

- 20,184
- 24
- 117
- 214