In the autumn of 2020, amid a raging pandemic, I decided to quit my job and write a book.

A couple of months before, I got into a creative writing course with an idea I wanted to develop. Writing has always been my passion, and it was an excellent opportunity to go through the process of creating an entire story from beginning to end.

Apart from giving me support in writing, the course influenced my life in many surprising ways — I met friends who share the same passion, and working on a book has turned out to help me grow professionally.

So, what are the three areas in which creative writing has helped me become a better software developer?

Motivation

Writing a book is not a cakewalk, and it requires a massive amount of motivation and discipline not only to start but also to work on it regularly to finish. You go through many crises, and there are even times when you’re close to giving up and throwing your keyboard out of the window!

It was the first time I realised that motivation needs to stem from an internal, not external, source. I didn’t have a boss who’d check out my progress and ask, “How’s the book going? How many words have you written today? Is that chapter already finished?”

But that’s precisely how motivation works in creative jobs, and we even have scientific evidence for that. 

In his book “Drive. The Surprising Truth About What Motivates Us,” Daniel H. Pink summarises the research about motivation. It turns out that external incentives such as higher pay result in better performance only if the task requires basic mechanical skills. It’s the opposite for more complex tasks that require creativity and higher-order cognitive skills.

So, what do we need to motivate us in a more creative job such as one in software development?

  • Autonomy — we desire to be self-directed and prefer engagement over compliance.

  • Mastery — we want to get better and become more skilled.

  • Purpose — we want to do something meaningful that is important for us and others.

Writing a book gave me lots of autonomy. The more I wrote, the better I became. Learning a new craft satisfied me and paved the way for mastery. I’ve always wanted to tell stories that entertain others.

How do all the above help me in my job as a software developer?

  • Autonomy — I’m trying to be self-directed and not only do what others expect from me but also take the initiative.

  • Mastery — I ask myself what I can do to improve and keep growing!

  • Purpose — I used to see it from a narrower perspective: I need to deliver my tasks and make sure they work correctly. Now I’m trying to ask myself on a regular basis what value my work will bring to the client?

Ownership

When you mix all ingredients from the list above, you get the recipe for ownership.

Writing a book requires independence, and I was the only one responsible for the whole idea and its execution from beginning to end. 

Yeah, to be honest, it’s not a hundred per cent a lonely job. I conducted some research, consulted with a couple of people, and showed text parts to other friends who write.

But nobody else would write the goddamn book for me — neither my friends nor the editor — I am the single person in charge of completing the whole project.

And as my writing tutor said, “There are no rules in writing; there are only consequences.” I need to be ready to bear the outcomes of any decision I make. 

Just like in life, huh? 

I can learn the three- or five-act structures, teach myself about different narratives, and avoid adverbs like the plague, just like Stephen King advises. But none of them is carved in stone. I can break any rule I have learned if that helps my story become more compelling to the reader.

It’s similar to software development. You can endlessly argue about what is better — React or Angular — be a die-hard supporter of functional programming or other paradigms. But what matters the most are the trade-offs that come with every decision and whether you’re ready to bear their consequences when working on your project. 

Delivery

It’s tough to commit to a strict deadline when working on such a big task as writing a book. I tried to set some accurate completion dates, but most of them turned out to be unrealistic.

I planned my story and attempted to write it scene-by-scene, but many things happened in the meantime. 

It brought a parallel with software development and the agile approach to my mind. 

Sometimes a character started to behave in a way I never expected, which I’d compare to a client changing their requirements. Or a better idea for an already written scene came to my mind, so I needed to rewrite huge chunks of text — if it sounds like refactoring for you, that’s right!

The biggest lesson learned was that I should have delivered an MVP version of a book — the first draft — as soon as possible and incrementally improved it.

At first, it may look like the areas so distant from each other, like software development and creative writing, have nothing in common, but surprisingly, they do.

Now I’m convinced that trying various activities utterly unrelated to my job is extremely helpful for me to grow. And I encourage you to do the same!