Nobody likes doing mundane tasks. Nobody. Not even the mots obsessive-compulsive person in the world enjoys mundane, boring, trivial tasks, especially when they usually don’t make a difference right now.
And then, like clockwork, they make a big difference. And you’re stuck doing all your mundane tasks at once, even though they suck. And you hate them. And they’re tedious, and boring, and all lots of other negative adjectives. But they’ve gotta get done.
Instead, figure out what things you can automate, so they’re happening even though you don’t do them.
For me, that’s spellchecking.
My editor is designed for code, not prose, so spellchecking isn’t easy. I mean it sorta does it, but there are lots of false positives. Plus, since I write fantasy, there are made up words I have to add to a custom dictionary, but I don’t necessarily want the same custom words sued in all projects, so I actually need different dictionaries for every project. And I’m indecisive when it comes to names, so that means the dictionary gets churn. None of these things are impossible to solve, they’re just tedious and I don’t like to do them; I do a project-wide spellcheck once in a blue moon, not every time I’m done with a scene, chapter, or session.
The beautiful thing about technology though, is that software exists just to watch for changes and react to those. For me, that software is Jenkins.
It took some effort, and writing more Groovy than I enjoy, but I’ve got jobs to automatically monitor each of my writing projects, from the ones I’m actively working on to the plot bunnies that flutter in the distance. Once an hour, Jenkins checks for a new commit and runs whatever scripts I threw at it.
It even checks dependencies, so the files that are common across all my projects (e.g., title and copyright pages, some typesetting configuration) automatically trigger rebuilds of each of my projects when they change. Since I mostly work with a manuscript formats instead of typeset documents, I never build typeset versions on my own, but I also never run the commands to generate lists of special characters in my manuscripts; Jenkins runs these commands every time.
Which brings us back to those tedious spellcheck commands I never run.
It’s not a big leap to switch from building my documents to running the spellcheck commands too, while auto-adding all misspelled words, then just failing the build (which notifies me) if the project’s custom dictionary changed. Now I never have to think about spellchecking again, since a misspelled word fails my automated stuff and makes me jump on it.
An even more tedious task though is checking for filter words; I wrote tools for this, but I never use them. With automation though, it’s no extra work to throw another job in Jenkins and run these tools on every commit, failing the builds if the number of filter words increases. Or if my word count tool finds some word count went over a threshold (we all have our favorite words that sneak in). Or a million other tasks that could easily be run by a computer, even if all the computer can do is give it a thumbs or thumbs down; all the examples I’ve given so far fall into that camp.
Obviously a computer can’t replace things we need humans for: creating interesting characters and plots, then ripping my dreams to shreds when a beta reader points out my writing is derivative and dull. But for the things a computer is good at, let the computer get to work.