The notebook
No this isn't about the 2004 tear-jerker film. It's about using an actual, physical notebook (and, no, I don't mean a laptop computer either). I've been using two kinds of notebooks for decades: technical notebooks and journals.
The advantages of a physical notebook are pretty obvious. Even though I can touch-type, it's quicker to write notes in longhand than use a keyboard (especially when it comes to mathematics) and much quicker to draw diagrams. A physical notebook doesn't need charging and is devoid of distractions, unlike electronic devices. I can easily highlight things, connect ideas with arrows, make marginal notes, scribble questions, and add annotations.
The main apparent downside of using a physical notebook is the relative lack of editability compared to text on a computer. But this doesn't matter because my notebooks capture thoughts on a particular date and I hardly ever update them. If I'm drafting something, I use pencil, but once I've finished, I rarely go back and change pencilled entries.
My technical notebooks
I've long since used a notebook¹ when developing software. It helps me particularly when learning about the problem domain or getting my head round how possible dependencies work.
I also like to write up rough thoughts on the design of a piece of software, using text, mathematics (often partial Z specifications), or diagrams. Seeing my rough thinking on paper helps me process my thinking. I can leave gaps and come back and fill them in later. It's also really helpful in resuming a train of thought after an interruption.
I dutifully discarded 26 years worth of notebooks when I left IBM because they contained some company confidential material. However, I kept the notebooks that I used since then. Here's a flavour of their contents:
Notebook 1: Nov 2008 to March 2009: OSGi and the development of an application platform based on OSGi modules and hosting applications constructed from OSGi modules.
Notebook 2: March 2009 to August 2011: Continuation of OSGi and the application platform. Donation of the platform to Eclipse as the Virgo project. Virgo development.
Notebook 2: August 2011 to January 2018: Continutation of Virgo development. Early days of Pivotal and Cloud Foundry development and how Virgo might fit into that. Pivotal's eventual move away from Virgo. Buildpacks and warden/garden container manager development, including investigation of Linux control groups and namespaces. Spring Cloud Services. The jvmkill plugin and porting it from C++ to Rust (including extending bindgen).
Notebook 4: January 2018 onwards: Pivotal Function Service and Kubernetes. Riff is for functions. Collaborating on the “Elafros” project from Google (which became Knative), particularly on the autoscaler component. Image relocation. Collaboration with Microsoft and others on CNAB. Integration of image relocation into the the sheaf
utility and, as a consequence, the need for a JSONPath specification. JSONPath spec development. Retirement! Teaching a university module on functional programming in Haskell. Modelling JSONPath non-determinism in Haskell. NGINX robot access module. Open development experiment.
I settled on my preferred physical format of notebook: A4, spiral-bound. I can open one of these up and lay it flat or fold it back on itself and occasionally turn it to landscape format for drawing large diagrams. I prefer lined paper because my writing tends to get messy when taking notes on blank paper, although blank paper would be better for diagrams.
After my recent open development experiment, how does using a technical notebook compare to writing blog posts? Although I tend to write notes when I'm developing something, I don't necessarily want to polish them for publication. The ability to jot down half-formed, or even incoherent, thoughts is a great freedom compared to writing up my thoughts for consumption by others. I'm free from possible criticism (except by myself) and I'm free to ditch ideas, change tack, and so forth.
My journals
I've been journaling, highly sporadically for nearly thirty years. I'm not going to get into the contents of my journals². Suffice to say they are reflective and deeply personal. Perhaps it's not surprising that I'm more inclined to look back at old journals than old technical notebooks.
See Joan Westenberg's recent article The Art of Not Sharing for more on journaling.
Conclusion
Notebooks help me on at least three fronts:
- Learning
- Working out what I think
- Helping me restart a task after interruption.
I don't yet carry a notebook with me however. Signal's “Note to self” feature is a convenient way to capture thoughts when I'm out and about.
#SoftwareDevelopment #SoftwareDesign #Journaling
Postscript
My friend and fellow blogger Henrik Jernevad wrote Notebooks no more in response to this post. He describes why he switched away from physical notebooks to, in his case, Obsidian.
I certainly see the advantages of (internal and external) linking and searching. I number my journal pages for indexing, especially of retreat days. But apart from that, I haven't really found a need to search my technical notebooks. Because my journaling is so sporadic, there aren't that many pages to look through when I very occasionally want to refer back to something I wrote in a journal. In fact, I'm more inclined to flip through a journal seeing what was going on in my life over a particular period than to think of something I want to search for.
I've also tried software alternatives, including Obsidian and Logseq, but there's something about the physical act of writing which, for me, gives it the edge. Also, there's something about the current page of a technical notebook which gives me better perspective, psychological “distance” if you like, from the task of writing software than a software alternative (which is just another window or tab on my desktop, competing with the task in hand for focus).
We are all different. Each to his and her own.
Footnotes:
¹ My preferred technical notebook is A4 spiral-bound which can be laid flat or folded back on itself, e.g. the Pukka Pad Jotta with 200 lined pages in a cardboard cover.
² My preferred format for personal journals is a Moleskine classic notebook, although I've also used A5 spiral-bound notebooks in the past:
[ | about | blogroll | contact | notes | now | search | subscribe | © | ]