Funny, I'm thinking about using a system similar to the to-do jar at work.
I'm working on a project with a coworker in the next cubicle. The deadline is fast approaching so we're both working in "the zone" as much as possible to crank this project out. And we get stopped every time one of us finishes a task. We finish a task and have to ask, "What's next?", disrupting the other person for input. I keep a running list of things as I come up with them, but then he sometimes starts something and doesn't tell me. Or else we think of things to be done and interrupt each other to ask "has this been done?".
What I'm thinking of doing is this: As we come up with tasks to do on the project, we write them on a list taped to the cabinet between us. When we're looking for our next task we pick something from the list and mark our initials next to it so we don't have to interrupt each other with "what else has to be done". Then cross it off when it is complete. That way, we only need to look at this list to see what still needs to be done and what the other person is working on.
I think Anita said it best, it is context-dependent. I think this will only work a specific application. It works here because every task on this list has the same deadline, every task can be done by either one of us, and most the tasks can be done now, not waiting for other tasks to be completed first.
In the bigger picture, this wouldn't work.
It annoys me that this is kinda how we do projects. As we win new projects they just get added to the queue. So one project gets finished and we start the next one. We should be planning out all our projects in a broader sense, coordinating the deadlines, and planning work schedules for the people that have to work on them. I don't think we're serving our clients well by simply adding their projects to the queue.