Analysis As Storytelling

Perhaps there are so many "Programming As..." ideas because it is a two sided task. When programming = writing code, I have my engineer hat on. "Is this too slow? How should this fail?" But when I am trying to ferret out some difficult interaction, I move into analysis, and my words change completely. A vocabulary of emotion, motivation and desire suddenly appears. I'm comfortable in front of groups, so I'll often start acting out interactions if we're in a group setting (Analysis As Theater ??); this is a typical CRC card experience as well. The system becomes a collection of anthropomorphisms, a strange and rather formal society that somehow shares the human characteristics of hope and want.

By turning analysis into a story, we force ourselves to make it plausible, both structurally and in terms of the motivation of the objects. The first plausibility enhances the overall sense of "rightness" the architecture has, the second makes you think about making the classes coherent. Finally, I find that the story stays in my mind as I program later. When I can answer the "why did we do this" question in terms of motivation ("what does this class want here? Why would it want to do this") I really feel like the architecture is coming together.

Not to mention the nostalgic Dungeons & Dragons warm fuzzy feeling.


Maybe relevant litterature:

6. Clausen, H.: Narration as a Tool for the System Designer, Design Studies Vol 14, No 3, 1993


See original on c2.com