Almost three months ago I started keeping a log at work during the day. I wasn't sure how long I would keep at it, but I have enjoyed it and found it helpful, so now that I'm several months in I decided to share some thoughts on it.
When I come in in the morning, I open Vim with a new Markdown file named according to the date. I enter the time and the word "Arrived". After that, as things happen during the day, I make record of them along with a time---checkins, significant conversations or meetings, thoughts or rants. I don't let the log stress me out, though. If I feel less talkative, I log less.
Here are some benefits I've found from it:
- It helps me to stay motivated by giving me a sense of the work that I accomplish each day.
- It helps me to stay focused by providing something to do while waiting on other things.
- It helps me to pace myself and not burn out.
- It helps me to reflect more on my work.
- It gives me a safe place to blow off steam or gather my thoughts.
- It reinforces learning by forcing me to regurgitate and verbalize what I've learned.
I have not told my manager that I do this, nor do I intend to show him the journal. It is intended solely for my own purposes, which frees me to write in a stream of consciousness.
For any of you who get a dopamine kick out of this:
or who have wondered, like some people, why you enjoy it more than your day job, I have noticed something else. I also get a dopamine kick out of this:
and it feels like a more meaningful kick. Unfortunately, at my job we use TFS instead of Git. (I use Git-TFS.) Part of the reason I began my journal was as a way of tracking my checkins so that I could get the same kind of intrinsic motivation (by far the best kind of motivation) as I do from using GitHub. It worked. And it acts as a reminder that not all contributions can be tracked by source control!
Ever kick of a build target or some tests, realize you have a couple minutes to wait, start looking around on StackExchange or searching around on some topic of interest, and realize twenty minutes later that the job finished long ago? Yeah, I have. It's not an efficient way to work, and it doesn't make me feel like I'm earning my pay.
Now when I have a few minutes downtime I add an entry to my work log. Generally these entries have to do with what I am currently working on and they allow me to take a step back and keep myself from boredom without being knocked too badly out of my flow state.
One of my coworkers talks about what he calls the "Breath rule". When on the verge of being highly frustrated, taking a deep breath (literally and metaphorically) helps. Rushing and anxiety never helped anyone. much less a software developer. Journaling about what I'm doing as I go helps me to develop a calm, rhythmic flow in my work.
Reflect more while working
The reason I am more calm is because I am reflecting on my work. The benefits of reflecting on your work are something that is well-known in the software community; this is why agile emphasizes feedback cycles and encourages activities such as peer reviews and retrospectives. After all, how are you going to improve without reflecting on your work? Journaling is a great form of reflection.
Think before you speak
Another reason it helps me to be calm is because it gives me a safe way to blow off steam. It helps me to get rid of my frustration in a constructive way rather than taking it out on the people and things around me. The converse of this is that I can also think out what I want to say before I say it if I am about to have an important conversation.
Solidify what you've learned
It's well known that having to write about what you've learned is one of the greatest tools for cementing and furthering that learning. For a good teacher, this active learning is the reason for papers and tests much more so than assigning grades. Also, if you save off your logs, you can always grep them later if you need to go back and review something. I keep my logs in a Git repository.
I'm sure that journaling isn't for everyone. You may have a job or a personality that isn't well-suited to it. Still, I encourage you, if you are struggling to stay motivated or stay focused, or if you find yourself either rushing or goofing off, or if you don't feel like you only ever improve on technical details, never on the big stuff, or if you tend to blow up on people or put your foot in your mouth, or if you tend to forget what you've learned—I encourage you to at least give it a try.
If you write Pro Tips, it might be said that you're doing a little journaling already...