Journaling in Software Engineering — Part 1: Personal Journaling

Matt Reynolds (@mbrit)
Jun 4 · 4 min read

Before we begin, this isn’t about “journaling file systems”, this is about using journaling a part of our everyday lives as software engineers. This article looks at using journaling personally; the next article looks at using journaling within a whole team.

All task management systems work in basically the same way. We need to record what we need to do, with a status of “pending” or “done” against each, and we also need a way to delete tasks that have fallen by the wayside and will never get done. Some people prefer to manage an electronic list — which these days is very easy, and we have a very mature set of technology that we can use to synchronise lists across devices — whilst others prefer to manage a manual list.

As software engineers, we’re used to managing the things that we need to do as part of the engineering aspects of our jobs via bug tracking systems. We know that if we don’t carefully manage our work items, things don’t get done. A bug that we see one day will find its way into production unless we record a case for it. A task that’s part of a work item will get missed unless, again, we record a case for it.

So, it often strikes me as odd that software engineers don’t seem to be natural customers for task management systems. We know that managing tasks is an absolute requirement for our day job, but in our lives engineers often don’t maintain the same discipline over the task that need to be done. I believe that this is because we are our own worst project manager. We know that if we screw up a task for a customer, there will be consquences. But when the washing up piles up, or the grass in the garden ends up a metre tall, the only person “telling us off” is us. We need some way to impose some discipline. This means we need to get philosophical about our todo list.

Over my career, I struggled to find the right task management system. As a standard nerd, I was always drawn to electronic based systems — starting from the Psion devices that I had as a kid, through Palm Pilots, and through to Evernote. I’d regularly see new apps and widgets pop-up on sites like Lifehacker, try them, and find that I’ve forgotten about them within a few days. The issue comes back to the fact that all these apps do is just create a bunch of tasks with nagging reminders. Project management is more than just nagging until something gets done.

Nine months ago, I discovered bullet journaling. The inventor of bullet journaling has a video up on YouTube that explains it (https://www.youtube.com/watch?v=fm15cmYU0IM), but the key to bullet journaling is that it is not just about task management. It looks to help with three things: a) yes, managing your tasks, but b) keeping track of where you want to get to, and c) keeping track of where you have been. It is the “b” and “c” of bullet journaling that creates a good-enough simulacrum of a real project management.

The issue with systems and apps that just manage a bunch of tasks is that they don’t have the notion of “intentionality”. In a software project, there is intentionality. Develop XYZ feature, because it was promised to a customer. Fix ABC because we’ll lose customers without it.

We all do things because there is some objective benefit in doing so. Just looking at my todo list for today, I note that one thing on the list is that I have to sort out my wife’s laptop backup. There’s a clear objective in doing this — I don’t want her to lose her master’s thesis if she loses her laptop, and I know her current backup system is broken. I have another item to send a client receipts or expenses — my invoice won’t get paid without them. I can sort and allocate time to my tasks as if a little project manager was sitting on my shoulder, gently nagging. I become my own best customer again — I don’t just look at a list and think “wooooow, that’s a lot of things” and go and do something fun. I can focus. This is the “b” in the list above — bullet journaling keeps track of where you want to get to.

For “c”, the reason why it’s called “bullet journaling” and not “bullet tasking” is because as things come in, even if they are done, you record them. Someone phones up and gives you an update — this gets noted down. Find an interesting article online? Note is down. This journal creates a real-time log of how you’re spending your time. So at the end of the month, year, or whatever period, if you want to know why your broader goals were not reached, all you have to do is look back at the journal and the information is right there. “OK, so I didn’t get XYZ done because — looking at my journal — I spent six hours every day putting out fires, rather than writing that book.”

I do urge you to try bullet journaling. I spent twenty years looking for a system that worked for me, and this is it. Here’s an embed of the video. You don’t need a special notebook to try it — any notebook will do. In the next part of this article, I’ll look at how you can take the principles of individual journaling and apply it to the project team as a whole.

Here’s the embed for the bullet journaling video.

If you’ve like this article, please subscribe. If you’re feeling super-generous, please click the little hand doodad and give me a clap. :)