I was searching for something this morning and ran across several pages where someone blogged about software they wrote to help write their dissertations. It occurred to me that this is a pattern: I’ve seen a lot of writing tools that came out of someone writing a dissertation or some other book.
The blog posts leave the impression that the tools required more time to develop than they would save. This suggests that developing the tools was a form of moral compensation, procrastinating by working on something that feels like it’s making a contribution to what you ought to be doing.
Even so, developing the tools may have been a good idea. As with many things in life, it makes more sense when you ask “Compared to what“? If the realistic alternative to futzing around with scripts was to write another chapter of the dissertation, then developing the tools was not the best use of time, assuming they don’t actually save more time than they require.
But if the realistic alternative was binge watching some TV series, then writing the tools may have been a very good use of time. Any time the tools save is profit if the time that went into developing them would otherwise have been wasted.
Software developers are often criticized for developing tools rather than directly developing the code they’re paid to write. Sometimes these tools really are a good investment. But even when they’re not, they may be better than the realistic alternative. They may take time away from Facebook rather than time away from writing production code.
Another advantage to tool building, aside from getting some benefit from time that otherwise would have been wasted, is that it builds momentum. If you can’t bring yourself to face the dissertation, but you can bring yourself to write a script for writing your dissertation, you might feel more like facing the dissertation afterward.
Related post: Automate to save mental energy, not time
There are many instances where the tools you build to get your work done end up being your real contribution.
There are many famous instances.
It can also be that having better tools can lower the cognitive load needed to do the work, allowing it to be done better, or at all.
Working on a tool is a good way to figure out what you are really trying to write. For example, a tool to check the syntax of a notation would help you validate the notation and make sure that it describes the situation.
Isn’t TeX a beautiful example?
Back in the Day, when we were chiseling out COBOL on stone tablets for the keypunchers, I was lauded as a Boy Genius for teaching my programmers to write short, terminal-based applications that would construct all our database admin scripts, ones guaranteed to check all the boxes, do all the backups, with zero coding or runtime errors. Did the jobs of dozens with a staff of 6. Peter Drucker would have been proud.
@Olek: Some days I live or die by the \newcommand