Tools of The Effective Developer: Personal Logs

When people talk about tools in the context of software development, they usually refer to stuff like Integrated Development Editors, Automatic Build Systems, Testing Frameworks, Documentation Extractors, or other useful applications that makes their lives as developers easier. Those are all great and productive tools, but they are not the most valuable ones. What really makes an effective developer is the habits he or she possesses.

One such habit, that helps me tremendously in my work, is keeping personal logs. I keep all kinds of logs: a work diary, a solutions log, books I’ve read, ideas I’ve had, a success journal. Well, to be honest, the last one doesn’t have much content; probably because of my Swedish background. For us “modesty is a virtue” and that’s what’s holding me back. At least that’s what I tell myself. ;-)

When I keep a journal I prefer a simple format. Usually word documents are sufficient, sometimes with a special header format that visually separates the notes. There are times when I use a Wiki, but since I prefer a chronological order I tend to go with simple documents. They are easier to move around, and with tools like Google Desktop Search there’s no need for firing up a database to hold my straggling thoughts.

I like to think of the solutions log as the bare minimum, something that every developer should have. Of all my journals that I keep, I value the solutions log most. This is because it’s the most useful one, but also the easiest one to update. Whenever I run into a problem that doesn’t have an obvious solution, I follow the same pattern:

  1. Search the Internet for a solution. Nine times out of ten this puts me right back on track within minutes.
  2. If I can’t find a solution on the Internet I ask a colleague.
  3. If a colleague can’t help me (this is also a nine out of ten-er), then I have to find the solution on my own. This is a tedious task. Good thing it doesn’t happen very often.
  4. I document the solution in my solutions log.

My solutions log have the form of Q&A. But instead of questions it has problems, and the answers are called solutions. My P&S (as I call it) have helped me many times, because problems have a tendency to resurface. When they do - often years later - I know where to look for a quick solution.

I’m also very fond of my book log. I read a lot of books and to keep a track of them I make short notes. I don’t write fully fledged reviews but small notes on how I found the book and what I learned from reading it. Whenever I come across a topic I know I’ve read about, I consult my book journal. The notes there work like triggers that bring back the memories of the subject.

This was the first post in my new series: Tools of The Effective Developer. If you have an idea you want to share of an invaluable tool, send me a comment and maybe I’ll add it to my Blog Post Ideas Log.

Cheers! :-)

 If you liked this post, concider subscribing to my weblog

Related posts:

RSS feed | Trackback URI

29 Comments »

Comment by Manki
2007-08-31 16:23:53

Excellent post. Thanks for the tip!

 
Comment by Ian Smith
2007-08-31 17:53:45

Found your post via reddit. I’ve found logging to a very useful tool as it helps propel projects along. It also helps keep me from wasting time as it is easy to know if I’m doing something that is “log worthy” or not. But then again, reading reddit isn’t log worthy. One of a couple tools I’ve built to keep up with logs is Jo’e s Goals (http://www.joesgoals.com), it may not be what you are looking for but it lets me keep most of my logs in one place.

 
Comment by Brock
2007-08-31 18:08:04

Probably inspired by someone else, I created a nice command-line tool called “L” which simply appends a timestamp and its parameters to a log file. Very nice for grepping… and I work in a terminal constantly in any case. It would probably be easy to cook up a graphical version, so that ctrl-L would pull up a text-entry field to do the same thing.

 
Comment by Mark
2007-08-31 18:57:12

This sounds very powerful, it would be interesting to see some example entries in the solutions log. Thanks for the idea.

 
Comment by Steven Ashley
2007-08-31 21:54:00

Welcome to the party, I also maintain several blogs for different parts of my public and personal life. http://www.itepistemology.com/ is my blog concerning the I.T. world, in it, I but all kinds of observations about what is going on in the I.T. Profession. I also use Thunderbird and its tagging feature to gather information, solutions, ideas or just random thoughts.

That way not only can I search using the computer, I can filter by tags.

 
Comment by tycho garren
2007-09-01 12:12:54

I have from time to time kept a log of sorts to track activities and to make sure that I’m not reduplicating energies (I’m a writer and academic type), and I think I generally take the barebones approach to this. Wikis and other systems often are too complex, and overkill, and I’ve reverted to plain old text files. Sometimes the simplest thing is the best.

Do you segregate by project, or is it all in one sort of mega-file? I’m assuming you use text files for easy grepping and what not, but are there any specific formating considerations that you make?

 
Comment by Hans-Eric
2007-09-01 22:00:45

Manki: You’re welcome, thank you for the comment.

 
Comment by Hans-Eric
2007-09-01 22:02:17

Ian: joesgoals look cool, I shall try it out.

 
Comment by Hans-Eric
2007-09-01 22:07:36

Brock: The most important feature of a logging tool is easy entry writing. Your tool couldn’t be more simple, I’d love to see the code for it.

 
Comment by Hans-Eric
2007-09-01 22:12:00

Mark: I’ve created a sub section of this site http://www.hans-eric.com/solutions-log. The entries there are an excerpt from my actual solutions log. I will go on filling that section every now and then.

 
Comment by Hans-Eric
2007-09-01 22:19:50

Tycho: I don’t segregate by project, I have only one work related log where all entries are work related. But my solutions log and the other special logs (like book log) are separate ones.

Actually I use Word mostly, but sometimes plain text files. In word I have set up a special header type which have a base line that separates the entries. Otherwise I’m pretty loose when it comes to format, anything goes - although I like to have at least the date of the entry.

 
Comment by Alastair Revell
2007-09-02 00:55:46

I do much the same and find it equally useful. I’ve recently been using Microsoft’s OneNote, which I am beginning to consider to be an excellent tool. Have you ever tried it?

I use it for technical issues as well as business planning…

 
Comment by Hans-Eric
2007-09-02 07:19:01

Alastair: No, I haven’t tried OneNote, but since you are the second person recommending it I guess I have to.

 
Comment by Mark
2007-09-02 21:04:31

I just saw your the solutions log section on your website, nice. Thanks Hans-Eric.

 
Comment by Diego Scataglini
2007-09-03 12:47:27

Very nice, thanks Hans-eric

 
Comment by Sanjay S
2007-09-03 20:21:03

I use the utility I developed and sell at http://softwaremosaic.com for this purpose (though it isn’t really intended for this). It has a nice tagging feature using which I can filter items like someone else mentioned using with Thunderbird. Yes, keeping logs is useful (atleast for me!) — also useful in an office environ to keep track of what you’ve done for the week for reporting.

 
Comment by Jim Priest
2007-09-04 17:58:10

For a free OneNote alternative check out Evernote. Todo.txt might also be a good solution (http://todotxt.com/)

 
Comment by CH Gowri Kumar
2007-09-06 04:13:13

Hans,
Excellent post. It really helps a lot to maintain such logs. One such log I maintained for c programming is available here:
http://www.gowrikumar.com/c/index.html

 
Comment by Ryan
2007-09-08 00:59:14

Great tip. Over the last 6 months or so, I’ve been using a mediawiki install, shared with a couple of other developers I work with. Between the three of us, we’ve built up a pretty good internal knowledge base that has been quite useful. I think keeping a personal development log is very useful, but collaborating with others on it is even better!

 
2007-09-25 08:32:10

[...] is the third post in my Tools of The Effective Developer series. The other two discussed the habit of keeping personal logs, and the habit of daily planning. Now the time has come to the habit of programming by [...]

 
2007-09-27 11:16:23

[...] Tools of The Effective Developer: Personal Logs [...]

 
2007-09-30 19:42:01

[...] Grönlund continues his series on Tools of the Effective Developer with Personal Logs and Programming By [...]

 
2007-10-02 21:13:22

[...] Tools of The Effective Developer: Personal Logs [...]

 
2007-10-04 01:19:52

[...] Tools of The Effective Developer: Personal Logs | http://www.hans-eric.com - [...]

 
2007-10-29 17:19:56

[...] Tools of The Effective Developer: Personal Logs [...]

 
2007-12-03 14:09:49

[...] Tools of The Effective Developer: Personal Logs [...]

 
2007-12-06 15:30:11

[...] Tools of The Effective Developer: Personal Logs [...]

 
Comment by Maximus
2007-12-20 06:09:03

I would like to see a continuation of the topic

 
Comment by DamionKutaeff
2008-03-23 01:11:43

Hello everybody, my name is Damion, and I’m glad to join your conmunity,
and wish to assit as far as possible.

 
Name (required)
E-mail (required - never shown publicly)
URI
Subscribe to comments via email
Your Comment (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> in your comment.