Writing a system is a bit like writing a novel

One way to explain to a business person what it is like to write a system is to tell them that it's like writing a novel.

A large part of my job involves bridging the gap between business people and Developers. The two sets of people have a symbiotic relationship, but often have a fundamental misunderstanding of how the other group thinks. To this end, I think a lot about what makes Developers tick and how I can explain this to business people so that they can get the best results.

A few years ago I was talking to an author of novels. He told me that a book should really write itself. His job is to create a high-level framework for what's going to happen in the book (the plot), build some characters, and then put the characters into situations. At this point the detailed content starts to flow as he sees his characters as real people talking to each other and behaving true to life. If the characters don't speak and act as expected it will be jarring to the reader who then will completely dismiss the novel. If the plot and characters are well-crafted then writing the novel will be easy..and vice versa. I love watching films and spotting actors find an apparantly meaningless (at the time) unusual item or having an unusual conversation. These are where the writers had to plug a hole rather than fix the plot.

Looking at the process of building a computer system I can see immediate parallels. We build high-level designs to say what the intention of the activity is, we build a set of objects that have certain behaviours, we build some use cases/managers/controllers to represent situations, and then we make them talk to each other to produce the detailed code. What we don't know is exactly what they're going to say and do, until they say and do it. If the objects and situations have been crafted well then the code will almost write itself. If they haven't then you are going to find holes in the plot and have to go back and fix them or find some plot device to get round it.

my conclusion: Explaining to business people that writing a system is like writing a novel enables them to look at the process with an analogy that they can relate to. This may give them a better appreciation of why some phases of the writing are unpredictable, and lessons learnt from novel writing could be applied to developing.

It's All In The Game blog (c) 2005-16 by Jez Nicholson