Storytelling and architecture (Irrational Software)
My never-ending ponderings about software architecture has been fueled by my thoughts and writings about the principles of storytelling (see the posts Den allvarsamma leken and Principles of storytelling over at Tesugen.com). I thought about the architecture of a story (in for example a book or film) as constituting its structure as well as the ways the story might be continued.
Seeing architecture as the structure of something is obvious. What I find interesting, and that is too seldom talked about, is the “how it might be continued” part. Or, rather: think of it as how it might be evolved. Let’s say you have written a skeletal story, with only the core of the story – its essential parts. Fleshing out the story can be done in a limited number of ways. If you were to document the different ways the story could evolve, this would also be part of the architecture.
Actually, I would like this to be the only meaning of architecture; then architecture would be meta-structure. But since architecture is an old word and its connotations are deeply entrenched, changing the way it is used is impossible. Instead, we have to get used to it sometimes being used to refer to the structure of something, and at other times to the meta-structure.
To return to storytelling, and to literature in general, there is a genre called picaresque, which Göran Hägg writes (in his book Författarskolan) is often defined as “a story kept together by the main character. Around him or her episode after episode is told, and each episode preferably has some dramatic form, with rising action, peripeteia and catastrophe. But the whole doesn’t evolve at all, and the hero or heroine stays the same until the end. And the end comes only because of exhaustion. The book could actually continue forever.”
He lists Cervantes’ Don Quijote and Fielding’s Tom Jones as classic picaresques, and points to the fact that they in fact have supporting characters and end with their heroes’ gaining insight into the reality of things, thus questioning the popular definition of the genre. Another characteristic of the picaresque, he writes, is that its story is chronological. So, the picaresque clearly is a meta-structure, and therefore an architecture.
So, say you would like to flesh out your skeletal story by introducing “flashbacks”, it would go against the architecture of the picaresque. It would no longer be a picaresque, and if that’s what you want you’d better stick to the architecture.
Hägg goes on to name other forms of literature, such as the drama, which takes place in a brief period of time (one or a few days) and sticks to a strict dramaturgic schema; the chronicle, being a story with many characters, told chronologically and spanning several years or decades; the episode novel, which is a novel consisting of several more or less independent short stories sharing some of the characters; and so on. Each of these would be architectures.
Viewed this way, it’s apparent that something “isn’t” an architecture until a work exists that can define it, and a following work can adopt it. The next work that adopts the same structure can be said to have the same architecture. A genre such as picaresque wasn’t defined until there were enough stories for such a genre to be detectable.
Follow-up: I have changed a few words here and there, but this post is still too sketchy, but I hope you understand what I mean. I still, however, think it is meaningful to study commonalities between software architecture and storytelling, which is why I chose to include this post here.