
Many years ago, I read a book that left a strong impression on me: Comme un roman (Like a Novel), by the French author Daniel Pennac. I liked it not only because it encouraged reading as an essential activity in life, but also because it showed me how important it is to be on the other side—the side of someone who reads, but also writes.
For longer than I can remember, I’ve been very interested in creative writing. I even took an in-person course at the very end of the last century (literally—I think it was in 1998 or 1999) with a well-known writer from Seville. At the time, I remember being completely absorbed in user interfaces with Visual C++ (those were the days!).
Since then, with varying degrees of regularity, I’ve written not only my project The Programmer’s Black Book, published three years ago, but also short stories, attempts at novels I never finished, other things I did finish but didn’t consider good enough to share, posts for El Blog Alternativo, and so on. That continued until last year, when I finished and published what I consider my first publishable novel.
So what am I doing talking about novels on a software blog that’s more closely related to my day-to-day professional work?
Because, although it may not seem so, there are many similarities between writing software and writing a novel, between starting a software project and taking on a literary project using a methodology.
If you’d like to know everything I’ve discovered about this over the years, read on.
My first literary project is a novel with a rather romantic premise, but it also has a substantial personal-development storyline, as well as its own intrigue and pace. It’s titled Patricia: una nueva relación que lo cambiará todo (Patricia: A New Relationship That Will Change Everything). You can find out more on the literary website where I’ll be working on everything related to my novelist side ;-) (www.gblanes.com).
Ahem… There are authors whose professional work I really admire, such as Raimón Samsó, who has also written a few romantic novels (which, incidentally, are the genre that sells best commercially…).
So what is the relationship between a software project and a literary project?
Here are the similarities I found, which undoubtedly helped me complete a project of nearly four hundred pages, built from micro-tasks over about eight months:
- First of all, you don’t write a book; you build one. It’s work with a process, and as I always say, the process is more important than the technology you’ll use (or the text you’ll write). Once you accept that something has to be built, you realize it has many independent parts that can be completed at different paces.
- Just like a software project using a methodology based on sprints and releases needs planning (you do know that, right?), a literary project needs planning too. Sorry if I’ve just challenged your idea of a writer sitting in an attic, gazing through the window at a bucolic landscape and waiting for inspiration to strike before putting it down on a blank page. Not at all: as Joanna Penn, an independent author I follow, says, “a book is 5% inspiration and 95% hard work and planning.” Believe me, that’s how it is.
- Just as we review code and apply refactoring strategies, we do the same with text, chapters, and sections. Once written, they’re reviewed for typos, spelling, typographical, or grammatical errors; a sentence may be improved, or something removed and rewritten. More time is spent reviewing and correcting than writing. This always surprises people who aren’t familiar with a writer’s work.
- There’s a distinction between making progress and improving. Just as we focus on completing a software feature (even though it may later be refactored and improved), a novel has a writing phase—which some authors recommend doing quickly to finish a section or chapter as soon as possible—and a very different revision phase. Many people start writing, but most never finish, so some recommend completing a draft as soon as possible, even if it contains many mistakes and inconsistencies that can be fixed later. Even if it needs revision, at least you have a first version, and that can be very motivating. It makes sense.
- As I said, chapters are reviewed over and over, and it’s amazing how, after several passes, you still find details to improve (doesn’t that resonate with our programmer minds?). Just as no software project is perfect, no book is perfect either, and never can be: the ideal of perfection is too subjective. But other things can be measured (cyclomatic complexity versus literary pacing, method size versus subplots, and so on).
- Does the software work? I mean, we back up our code with unit tests, integration tests, and so on. What about a book? It’s the same: we ask questions the book needs to answer successfully. Is this character described well? Is that subplot too tedious? Is the protagonists’ family history consistent throughout the book? Are verb tenses used correctly and consistently? In other words: tests, tests, and more tests.
- A software project is deployed; it is published, just like a book. That means compiling the text and generating it as a PDF, EPUB, or MOBI, along with its covers, back cover, and so on. Note: Scrivener uses the term “compile” for generating a book in the configured and parameterized format. That may sound simple, but it involves a significant amount of work.
- All of this needs to take place within the framework of a methodology. For the book (as I did with The Programmer’s Black Book), I created my own methodology, adapted to the time I had available for writing: breaking work into small tasks, writing in one-hour sessions, defining each section of the text (before I started writing, I made an outline with about eighty sections), and so on.
- Validation tests: otherwise, what’s the point of beta readers? I gave the manuscript to my partner and a friend once I considered it finished, and of course they suggested quite a few improvements.
- You research by reading lots of books and blogs, just as I do whenever I’m interested in a particular technology.
- And you need a tremendous amount of commitment to meet the milestones you set for yourself each week (which you don’t always manage to do).
Interesting, to say the least.
By the way, if you’re planning to write a book, please don’t use Word. It’s worth spending a few euros on a tool like Scrivener.
