The first journal is a work log where I record what I’m working on during each hour of the day. I also use it to jot down the occasional observation or idea. I take these notes to compare what I wanted to do each day and what I actually worked on. It’s useful in daily standups too, where it helps you compile a summary of the previous day for your teammates.
I use Day One for this type of journal. It supports Markdown and comes with a helper app that reminds you to update your journal in regular intervals1. Check out Brett Tepstra’s Doing or just use a plain text file if you want something simpler2. Here are some examples of what I recorded over the last few days:
- The pageview threshold should work more like a high-pass filter, e.g only if we see a resource on more than 5% of the traffic we should consider it for prefetching.
- The health check script dies with a timeout connection error in
- Refactoring the clientside URL transform code.
- Old versions of prototype.js break
A “thing’s I’ve learned” file
The second journal is a separate file in which I track what I learned about software development in the past. I update this file every time I realize something that’s worth remembering. Every month I revisit all items to see if they’re still valid or if they need tweaking. I find such a journal tremendously helpful, especially as a tool to remind me about the progress I’ve made.
Pairing & Social:
- Switch drivers more often when pair-programming; either per feature or after fixed time intervals.
- How to end shouting matches quickly and painlessly: Grab a whiteboard, write down pseudo code for each approach, write down pros and cons for each approach, discuss. Usually consensus will just happen magically at this point.
- Focus on the user facing parts and the core functionality first. This is the most important thing, architecture and code quality come right after.
- Given several ways to do something look at popular libraries like jQuery or Zepto to find the most compatible way to do it.
I found keeping journals to be a great technique for staying organized and becoming a better software developer. You should give them a try too! Let me know how it went and what your experiences were.