Office OneNote - one of the best code development tools around

I use a pretty extensive suite of tools as a developer - two IDEs, debuggers, code analysis tools, profilers, etc.  But one tool stands out as the glue between all of my tools - OneNote 2007.

Here's a rundown of a few of the tasks where Outlook is invaluable to me:

  1. As my short-term memory.  I paste output from my debuggers and other tools, to keep track of them.  Many tools I use are GUI and don't have a built-in "scrollback" mechanism where I can see previous state.  For example, when I debug, I often want to see the contents of the memory window from some point in the past, not the current contents of that memory.  OneNote is a quick and easy place to group together this "short term" content in a single page.
  2. As long-term memory.  It seems I'm always doing code-reviews of unfamiliar code, looking for bugs, or to understand how a subsystem works.  OneNote's free-form note-taking and rich copy/paste let me quickly jot down what I learn about the codebase, and keep the notes with me at all times.
  3. As a research tool.  If I copy/paste content from my web browser into OneNote, the new content is automatically tagged with the page URL.  So it's easy to return to the content later, and revisit the URL.
  4. New in 2007:  Content syncs between my many machines.  My Windows Vista laptop and Windows XP 64-bit desktop sync their OneNote content automatically and transparently.  So notes I make on my desktop are available when I bring my laptop home at night.  OneNote Mobile on my PocketPC device also syncs a subset of my OneNote content.
  5. As a bug reporting tool.  It's easy to log repro steps for a bug as I create them, then I can use OneNote's screen capture to record precisely what I saw on my screen.
  6. As a note taker during meetings.  Notes are automatically data and time stamped.  Outlook and OneNote have some great interactions, where OneNote can create new Tasks, and Outlook can associate OneNote content with contacts and calendar items.

OneNote's UI seems to work exactly the way I work - I almost never use the menus or toolbars, as it's in the right state already.  Just right-click on the right part of my notebook, pick "New Page" or "New Subpage" and start typing.  It doesn't interrupt my train of thought with modal dialogs or any other up-front decision-making. 

It's also very easy to reorganize content - since it all sits in OneNote, it's easy to drag pages and subpages around, shuffle portions of pages around, etc.  When I kept notes with notepad, I had content scattered across many files in many directories and bookkeeping had gotten out of control.

I'm still exploring OneNote.  I haven't had a chance yet to look at:

  • Live sharing - several people can work simultaneously on a shared page
  • Hyperlinks to OneNote notebooks, sections, pages or paragraphs, to link content together
  • Annotate PowerPoint slides - use "Insert slides as printouts" then annotate overtop of the slides in OneNote
  • Audio and video recording (you can even search the audio recording!)

If you're interested in experimenting with OneNote 2007, a trial edition is free to download, from https://us1.trymicrosoftoffice.com/product.aspx?family=onenote&culture=en-US.  There is also an online test drive at https://www.microsoft.com/testdrive  if your browser supports the Citrix Web Client control and you have a Passport account.