Tuesday, September 2

Guest Post by Chris Pitchford on Writing And Programming

Guest Post by Chris Pitchford on Writing And Programming

Today I’m going to do something a bit different. I don’t usually have guest posts, but when I discovered Chris Pitchford was coming out with a new book, The Agility of Clouds, I asked him to talk with us about his writing process, about how he—a programmer by trade—thinks about writing.

Take it away, Chris!

*  *  *

Programming is nothing like writing fiction, except that it’s totally like it.

I'm a software developer and a writer, and the two supposedly “non-overlapping magisteria" might be more connected than you might think. I'll leave the poetry of code as a discussion for another time, and focus here on similar processes. Writing a solid and engaging application is really like writing a solid and engaging story, at least, in how I view it all.

Bear with me please, as I go through my process of creating software. When I start building a new application, I start with the data involved as the core concept around which all the other elements are built. I define a model of the data, whether it's a username and password, or messages sent about, files uploaded or whatever. Even if I’m rushing and jump right in to building form elements within a user interface: a text field is different from a checkbox; they represent different data types. Those types become central to the development, and I make sure they are defined first.

But you'll notice—because you're clever that way—that in addition to mentioning the data model above, I mentioned software controls like form elements. The interface is just as important as the model, and the attention to detail in creating elegant controllers is the first thing a user will see and the last thing they remember. The last component of the application I build is the glue that binds the data model and the user interface. These views of the data are the transport mechanisms that deliver the pieces of the data from the database to the interface, and return the results of any interaction.

It all works very well, for projects large and small, in different programming languages and even different environments—mobile apps vs. server applications, for example. The whole process I just described is really just a design pattern, called in this case the "Model/View/Controller" paradigm, but how does it relate to writing? Well, that's the premise of this little article, and I appreciate your patience in staying with me so far.

So, let's just imagine I start writing a completely new story ex nihilo, my imagination the only thing that's filling a blank page with prose. Have I skipped the core foundation of the structure I mentioned earlier? Not at all, as the tone of the words I chose to write is one of those fundamental concepts. The model of the story, like the data of the application, is always present. Even if I'm not explicit about the style of what I'm writing before hand, I'm defining part of the model in how the words will follow my modest start.

Of course, when I write the actual words of the story, that is the interface that the reader will interact with. Their own imagination and background are as important as the words on the page; the story only comes alive when it's read. So, all the details of pacing, grammar, word choice and even dialogue attributions are part of the interface that helps the reader become immersed and merge with the story. But in order to get the details and the model to cohere, I have to have a plot, or glue that binds the themes to the details. After I set the model of the story that I write, I loosely outline the plot so that I can make sure the goals and results of the writing are revealed in the details.

Okay, that’s fine in theory; how does it work in practice? For my novel, The Agility of Clouds, I had originally focused on the character who was eventually to become the antagonist, Father Time. I outlined a story that followed his humble origins in Ireland to the English colonies in the New World before the Revolution, where his latent paranormal abilities would be awakened. His mentor would be the formidable Lady Seramis Helleborine, who became so interesting to me, she would eventually become the main character of her own book—the book I’m referring to—The Agility of Clouds.

But at first, the story was too dark, and I lacked a definitive theme—the reason why I was writing. For The Agility of Clouds, I decided on a theme very important to me to serve as the purpose of my writing: empowering women and minorities at a time of disenfranchisement and slavery. I further defined my style—specifically, the dialogue—to more closely match eighteenth century modes of expression.

With that new model in place, I created a new outline or view of my story. In this new outline, I plotted the development of the story as well as the emotional arcs of the characters. I made sure to cover the areas that would make the emotional connections I felt with the characters and their stories apparent to the reader. Then, it’s off to the races, and I will let you, dear reader, determine how the interface, or the actual text of the novel works!

*  *  *

Thanks Chris! A fascinating perspective; I'll never look at a user interface the same way again.

As I mentioned at the beginning of this post, Chris Pitchford's latest book is The Agility of Clouds. Here’s a bit more about Agility as well as the man behind it:
C. J. Pitchford is a programmer and peripatetic prog-rock paramour and parent, living in a neighborhood in Denver, CO named for a cemetery and a mental health institute. He wonders which one of those is where he will end up…

His newest release, The Agility of Clouds, a sailpunk adventure in the spirit of Edgar Rice Burroughs and Jo Walton, launched September 1. “Forced to spy for King George II of England by the scheming Lord De La Warr, Lady Seramis Helleborine faces the most dire enemy of all: Father Time. Of course, her enemies hadn’t counted on opposition from one of the most brilliant minds of the eighteenth century, as she pursues justice across the skies in her improbable airship, The Agility of Clouds.” Available in ePub for Kindle at amazon.com, it is also available in an illustrated trade paperback edition at amazon.com and in an illustrated iBook format at the iTunes Bookstore.
Photo credit: "Featherweight" by Daniel Zedda under Creative Commons Attribution 2.0.


  1. Great points, Chris. I'm a programmer myself and find myself amazed at how many other programmer/writers are out there. In many ways, our background is an advantage; we're used to starting with a "blank page", recognize the value of rules and when they should be broken, and are exceptional when dealing with complexity. And, of course, our exposure to large-scale architectures makes us excellent at devising structure.

    I had a very similar experience writing my completed novel. I mapped out the changing relationship between the two main characters over the course of the story in three different ways, and used them to roughly place my planned scenes where they best fit. When writing the story, they provided me with a guide so I knew the purpose each scene or chapter needed to accomplish. I called it "agile outlining", but the concept seems similar to yours, and I suspect the results were pretty similar.

    1. Agile outlining, love that idea! I only tinker with programming but, still, enjoyed reading about the parallels between writing code and writing prose. Thanks for your comment, Chris! :-)


Because of the number of bots leaving spam I had to prevent anonymous posting. My apologies. I do appreciate each and every comment.