I reposted the blog and highlighted what I use everyday.
It may be an iffy plot device from a Tom Clancy thriller but it can be a valuable approach: if you didn’t write it down, it didn’t happen.
That applies along multiple axes. If you think of a good idea and don’t record it somewhere, you’ll forget it. Inevitably. If you need something done by a certain time and don’t record it somewhere, you’ll miss it. If you learn something while roaming through code, or exploring a new tool, write your experiences down. You’ll thank yourself later.
There are lots of ways to do this; I’m going to go through some I have tried. One prominent area I am going to ignore is purely commercial tools; I haven’t had the need, and since I spend most of my time in Linux, my options are limited anyway. Folks I know who are serious about GTD really like Microsoft OneNote; I have friends who rave about it. Don’t ignore it if you are a Windows person and can justify the cost (under $100).
The Early Years – Emacs
For a looong time, I had a file called ‘notes.txt’ open in an Emacs window. When something needed recording, I jotted it down in simple outline format, using dashes and asterisks. When a note became old and not immediately relevant, or was finished, I just moved it to the bottom. Primitive indeed. But I could get Emacs on every computer I had, text files are easy to mail around, so it worked for me. But having everything in one file made for a big jumble.
Mind-Mapping: Great for Actual Note Taking
My favorite live note-taking application for complicated subjects remains FreeMind (or XMind). A nifty mind-mapping application which is freely available, works on any platform (courtesy of Java), is fast, scales to complex mind maps, and full of export options. I really like the export to Flash; and animated, interactive Flash representation of a map. Very nice indeed. It is really good in meetings where you can just grab concepts and polish the organization of the map later. But it isn’t really a general solution. I find the lovely expressiveness of mind-mapping leads me to over-produce content, and I get too caught up in presentation if I am not careful.
Evernote – Lots of Virtue, Lots of Vice
For a while I used Evernote as my main note taking app, but sadly it isn’t great at this. It is cross-platform, by virtue of being a web app, and it has never lost a jot of content. But sometimes I don’t have a network connection. At which point, fail. Evernote also has some weird design decisions. For example, when you click on a note, it doesn’t immediately open for editing; I can’t think of a single time where that was useful. You have to click an extra button to edit it. Bizarre. Plus it doesn’t do simple asterisk to outline translation on the fly, which, dang it, it should. Itought to have an outline mode, period.
There are advantageous to having the data in the cloud; it works on a variety of platforms, and has a pretty nice iPhone app. But beware, if you add rich-text formatting to your notes via the desktop web interface, you will not be able to do so with the iPhone app. Apparently, the Evernote folks think the iPhone is unable to handle rich text; Steve Jobs would be amazed. What will they say regarding the iPad?
Evernote has enough quirks that I don’t use it for everyday notes, though I do use it for longer term stuff.
Google Docs, Zoho, etc.
You might think Google Docs and the Zoho suite would be contenders, but neither work without a network, and both are fairly heavy as webapps go. Now, I use Google Docs for other things, especially when I need to edit a doc with several other people. But Google Docs has privacy issues, and there are anecdotal tales of lost and censored documents all over the web. Which would be only somewhat worrisome, except that Google-as-service is marred by the lack of a phone support option. Pity the Nexus One customer with a problem. With no way to get someone on the phone when something is wrong, I am loath to trust more of my data to Google (GMail is enough of the kool-aid, thank you).
Zoho actually has a dedicated note-taking component, but it also seems too heavy for simple text notes. Somehow, the presentation just doesn’t gel for me. It might reward a larger investment of my time. I have no time at the moment however.
Stupid Simple Text Files — Still a Good Way To Go
So for the last several years, I’ve taken advantage of a feature common in text editors these days — session management. Under Windows (when I am forced to use it) I use Notepad++, under Linux, I use Kate. Both of them let me designate Sessions, collections of files to manage en masse. Under Linux, I have my default Kate session open, iconified, to the system tray on startup. Under Windows I just have a shorcut to do it on-demand. I use Windows less so I have worried about it less. This allows me to have multiple files, each to cover a broad area. Dead simple organization.
A couple micro-format conventions (dashes for titles, asterisks and indentation for outlining) take care of formatting. This is the polar opposite of the expressiveness of FreeMind, but I find it helps me concentrate on the content not the formatting. Plus, text files are the lowest common denominator of storage; easy to backup (Paste them into Evernote occasionally!), easy to mail, easy to search, amenable to source control checkin.
Let’s Note Forget: Pencil and Paper
Yep, for lots of things, you can’t beat pencil and paper. I carry a Moleskine clone in my laptop bag; I’m on my forth or fifth in four years. For notes where diagrams are important, can’t beat it. Laying UI components? Get your pad. For lots of stuff, you can’t beat paper.
The downside is, you can’t go back and reorganize easily. Sometimes notes on paper feel like they are being chiseled into stone compared to working with an electronic note.
But in some jobs, keeping a log is a must for professional reasons, as patent trails an such. Hard to argue against a physical notebook.
Right up until the point where you lose the notebook itself. Ouch.
Fun with Wiki’s
Wiki’s, like mind maps, can be fabulously expressive. We have one at the office, and while sometimes it resembles a disorganized dumping ground, searc makes it pretty useful, and most of my technical musings end up there.
TiddliWiki is a neat idea I used for a while. It is a complete personal wiki completely contained in a single HTML file. There are lots of things to tweak, lots of templates and flavors around to suit various tastes. But … I mostly hate wiki formatting. The disconnect between the editing representation and the display representation is too large for me. YMMV.
Buy Why? Why Write it Down?
Why do this? Really, at this point, recording things is part of how I frame the design and understand the problem. It helps me break things down, and build up solutions. It enables me to identify what the hard parts will be, and what is low-hanging fruit.
It never fails to amaze me how much I learn by doodling notes about a problem, walking away for a couple days, emphatically not thinking about it, then coming back to it. The back of my brain apparently isreally adept at making progress on a problem when I seed it and leave it alone. Having the original notes written down when I come back is key to making sure you don’t forget a bunch of details.
Another benefit is in the trail you leave behind. It can be fulfilling or depressing, depending, to look back and see what you got done and what you didn’t. It is much easier to identify that I am in a trough, development-wise, when I can concretely see that my velocity is down. Conversely, it is cool when you are just generating good code at a fair clip to look back a mountain of identified and disposed of tasks.
So take notes. Jot stuff down. Use any method that suits you, but your great thoughts never really happened if you didn’t write them down.