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:
- Search the Internet for a solution. Nine times out of ten this puts me right back on track within minutes.
- If I can’t find a solution on the Internet I ask a colleague.
- 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.
- 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! 🙂
Excellent post. Thanks for the tip!
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.
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.
This sounds very powerful, it would be interesting to see some example entries in the solutions log. Thanks for the idea.
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.
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?
Manki: You’re welcome, thank you for the comment.
Ian: joesgoals look cool, I shall try it out.
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.
Mark: I’ve created a sub section of this site https://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.
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.
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…
Alastair: No, I haven’t tried OneNote, but since you are the second person recommending it I guess I have to.
I just saw your the solutions log section on your website, nice. Thanks Hans-Eric.
Very nice, thanks Hans-eric
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.
For a free OneNote alternative check out Evernote. Todo.txt might also be a good solution (http://todotxt.com/)
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
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!
I would like to see a continuation of the topic
Hello everybody, my name is Damion, and I’m glad to join your conmunity,
and wish to assit as far as possible.