Keeping Notes As A Developer
Did you ever stop to think, and forget to start again?
-A. A. Milne
As a developer taking notes has been, by far, one of the most beneficial habits I've acquired. There have been so many occasions when having notes has saved my ass. Some times I'll needed to recall code or design decisions I had made and forgotten, or figure out accountability issues, or even just jot down a simple 'To Do' list for the day. Writing things like this down really helps. There is also a psychological side to it as well. When you think about and focusing on something hard enough to merit writing it down you are reenforcing those thoughts in your brain. Just by taking the notes you will find it easier to recall the things written in those notes.
Through trial and error I have come up with the following system for taking notes while developing.
I use very specific tools for my note taking. First, a Moleskin soft cover extra large plain notebook. This book allows the most freedom while looking and feeling great. The blank pages are perfect for writing as well as sketching and the pocket in the back is great for holding 'napkin notes', cards, and miscellanea that you want/need while developing. Second, I use a set of Sharpie pens. They are permanent, don't bleed on or through the paper, and come in enough colors for convenience (we'll be coming to the use of the colors soon).
Taking notes usually just means writing down what you want to remember in sequential order and reading it back later on for recollection or memorization in the same order. Taking notes in this manor isn't quite realistic as a developer because you rarely work on only one project at a time and even if you do only have one project its usually significantly large/complex enough to have to jump between pieces of the project. To combat this type of process while taking notes you can do 3 simple things. One, At the top of every page be sure to include the name of the project you are working on, the date, and the page number. Two, if you pick up again on a page draw a line to show separation of time and write the days date. Three, if your notes take up more then one page at the bottom of each page make note of the next page the notes pick up on. Remember there may be days or even months of separation in project notes.
Lets talk about colors for a moment. Notes can be greatly enhanced with colors. I would suggest making each of the following its own colour; main notes, supplementary notes (small notes, second thoughts), code, strike throughs (marking things off lists, etc.), and references to other pages. While it does take a little more thought and time to write the notes while using the different colors I promise you that when you look back at your notes and you can tell what is what simply by the color you will be happy you took the time up front.
I also keep special pages or sections in my note book. Usually towards the beginning of the notebook I keep a thoughts and ideas section. I strongly suggest you do the same. Its a scratch pad, dont hold back with your thoughts and ideas here. You can refine them and expand on them later on in the notebook.
If you don't take notes while developing already I highly suggest you try. Let me know how it goes. If you already do, how do you do it? Is there any way I should tweak my system for better notes? I would love to hear thoughts and idea.