5 Software Development Skills That Make Me A Better Writer

It’s no secret that I don’t earn much money from book sales. The bulk of my income comes from my day job: I’m a software developer for a big Canadian health care organization. If you’ve been in a hospital in British Columbia in the past eight years or so, there’s a good chance your doctor used the app I work on.

I don’t talk about my software job much, mainly because it’s not that interesting from the outside looking in. Still, I’m glad to be doing it. It’s challenging without being overly stressful, the people I work with are great, the pay is good by almost any standard, and it leaves me with just enough free time to bash out a book every year.

The importance of a good day job was recently highlighted by Robert Jackson Bennett, a talented, award-winning author who also works a nine-to-five. In particular, Robert suggests you need a steady day job while you’re building your backlist. I agree — in fact, I’ll go one step further and say a good day job might even teach you how to be a better writer.

Looking back on Winterwakers, I notice that a lot of the things I did right involved skills I acquired from the software biz. I’ve compiled (nerd pun intended) the most important ones here. Some are quite obvious, but some may surprise you.


Skill 1: Planning a big project

You’ve probably heard the old corn-ball motivational proverb that goes something like ‘every journey begins with a single step.’ In software, every journey begins with looking at a map, finding the best route, and dividing the route into small, easily achievable tasks before we even take a step. Tackling a big software project without a clearly-defined, task-oriented plan is the path to madness and misery.

When I first made a serious effort at writing a novel, I had no plan whatsoever. I sat down in front of my computer and started typing, rambling along with no clear idea of what I was trying to achieve. I didn’t even know how long the book was going to be, nor did I have the slightest clue how it would end. It should come as no surprise that I never finished this book. I got about a hundred pages in before I gave up in frustration.

Writing a novel is a big project, and it needs a plan. Most of the time, this takes the form of an outline: a few sentences summarizing what happens in each chapter or scene. This is quite similar to how an agile software team divides a big project into small, clearly-defined tasks. Some authors hate outlining. I wouldn’t say I love it, but I do understand its value, and the act of outlining came to me quite naturally.

Winterwakers is the first book I published, and it’s also the first book I outlined before I wrote a single word. This is not a coincidence.

Skill 2: Fearless editing and deleting

It’s quite common for developers to edit and delete bad or obsolete code as they work on a project. An experienced dev will do this without hesitation or fear. But what if the app breaks after editing? How can we be so confident in throwing code away willy-nilly?

The truth is: in a professional software shop, nothing really gets deleted forever. We use something called ‘source control,’ a system that stores every change we’ve ever made to the code, along with a short note explaining the reason for the change. Thus, if something goes haywire after we make a change, we can always ‘roll back’ to the last known working version. This allows us to work with confidence, knowing that our changes won’t ruin the app forever.

There isn’t really a direct equivalent to source control in writing (I suppose nothing’s stopping you from setting up a Git repository for your manuscript), but you can definitely apply the same mindset to how you archive your work and manage changes. For example: instead of deleting a block of text I don’t like, I cut and paste it into a ‘text purgatory’ where I can quickly retrieve it if I need it. When I do this, I typically add a note explaining why it was cut, so Future Matt can think twice before putting it back in.

I’m also fond of putting a version number on the manuscripts I send to beta readers. When I get their responses back, I know exactly which version of the text they read and commented on. I also take advantage of the ‘snapshot’ feature in Scrivener, which creates an archived copy of your text you can refer back to as needed. I like to do this when I hit a big milestone, such as finishing an act, or completing a round of editing.

Skill 3: Emotional detachment

Before you get all riled up and tell me the importance of emotion in the creative arts and blah blah blah: that’s not what this is about. This is about dealing with your own personal feelings when someone else reacts to something you made.

This, to me, is the greatest parallel between writing and making software. In both jobs, you’re using your brain to create something you think people will want. You had an idea, and you turned that idea into something tangible. Amazing! Bravo!

But when you let people see it for the first time, they’re almost certainly going to tell you what’s wrong with it. They won’t care how proud you are, how many hours you slaved over it, or what special tricks you used to get it to work. All they want to know is if it meets their expectations. And if it doesn’t, they will happily tell you exactly how bad it is.

At this point, you have two choices: sulk about how mean everyone was to your precious baby, or get back to work and fix your shit. If you find yourself gravitating toward the first option, you won’t last long as a writer or a software developer.

This is why emotional detachment is important. It’s okay to be proud of your work — it’s healthy, in fact. But don’t bind your self-esteem to it, or it will drag you down.

Skill 4: Deadlines and time management

Long ago, I heard the tale of the mythical software developer who only worked on one project at a time. Of course, I’ve never seen such a person in real life. All the devs I’ve ever known, myself included, are working on multiple things at once, all at various stages of completion. And on each of those projects, we have at least one dev manager, project manager, vice president, or … worst of all … customer standing right behind our desks asking when it will be done.

Your ability to manage your time ultimately relies on your ability to estimate how long it takes to get your work done. The more experience you get doing something, the easier it will be for you to guess how long future somethings will take. This is why I started tracking my word-count-per-night while writing Winterwakers. I wanted a solid understanding of how long it took me to write a thousands words, so when the time came to schedule an editor, or plan a launch date, I’d be able to answer confidently.

At the moment, I have a lot more experience writing code than I do novels, so I have a ways to go before I can confidently estimate my writing time. At the very least, I understand the importance of mastering this skill, especially when I deal with more and more people on the business side of the book world.

Skill 5: Typing

This is probably almost too obvious to state, but it’s hard to discount the importance of typing when it comes to writing code or writing a novel. A slow, inaccurate typist will take longer to do everything. This is especially bad in a profession where your worst enemy is the clock, more often than not.

I’m not the fastest typist, by any means, but the fact that I type all day every day at work is a big asset for me as a writer. Being able to get my thoughts out of my brain and onto the computer as quickly and accurately as possible is equally important for both jobs. It’s hard to be creative when you’re constantly having to stop and correct your typos.


I’m sure there are plenty more skills I could add here, like attention to detail, ability to self-evaluate, ability to peer review the work of others, the importance of caffeine, and how to tell people to leave you alone because you have a deadline coming up and you’re not even close to being done and holy shit no I don’t want to do a Windows Update right now come on! The most important take-away here is that you should never discount your day job when it comes to understanding what makes you a good writer. I bet any writer in my situation can look at their nine-to-five and find at least a few things that help them get their books finished.


No Comments?

Post a Comment

By posting a comment, you agree to abide by the comment policy.