Novelist or programmer?

I’m writing a book. It sounds cliche but it’s true. I’ve been working on it since the first of the year, with most of my writing taking place on quiet Sunday mornings before the rest of the house is awake. The week’s worries are gone, I’m well rested, and I’m free of distraction.

The first chapter was a stream of consciousness without any plan or forethought. Once it was completed, I read over it several times and began to identify what aspects really stood out and what needed work. Then I outlined in my mind where the story would go from there. I also created a more fleshed out definition of who the main characters were and what their primary characteristics would be.

The second chapter fed the plot based on my initial outline and introduced some new characters. The third chapter refined the plot and filled in important details that set up where the main story would go. If it were a screenplay chapters one, two and three would make up the first act. Now I’m ready to dive into act two and let my creative horses run wild.

In other words, now the hard part begins.

Designing and developing a large software or web project has many parallels to writing a novel. Chapter one is the creative, conceptual phase where ideas are brainstormed and put down on paper. Chapter two represents the process of defining what the app will do and how it will do it. Chapter three produces a solid, thorough project plan and product definition. Act I is all about planning and laying the groundwork.

Act II is the where the bulk of the story is written and is the bulk of where the application is developed. The story is fleshed out in bits and bytes and real functionality is created.

Act III resolves conflict and closes loops. The application gets tested and deployed without any new functionality added; there’s time enough for that in sequels.

One of the biggest challenges novelists and software developers face is maintaining the discipline to keep plugging away on what may seem like a dauntingly large effort, making progress on a daily basis even if it’s a small contribution to the overall project.

Writing software can also be productive or a waste of time based on circumstances, just like writing a novel. Sometimes you have to be in the mood for it. I’ve had salmon days* on development projects where I shouldn’t have wasted my time getting out of bed. Other times I’ve been in the zone and got three days worth of work achieved in a matter of hours. It goes to show that software development can be just as much a creative endeavor as a technical one. Every developer has a pattern of efficiency. Some are morning people, others get their best work done late at night.

Leave a comment

You must be logged in to post a comment.