Monday, October 19, 2009

The importants of logs.

I'm a history buff... Well kind of. I don't have the date recollection that many do but I love history. It's easy to look through history and see villains and heroes, or just normal people living through extraordinary times. You can look through the diaries of John and Abigail Adams and see two brilliant people who in the middle of one of the greatest changes in history still have normal life events happening. It lets you know that John Adams, though brilliant, was still a man. Sure he was better educated then most today and don't get me started on Ben Franklin, but needless to say he was a self made man who people should look at and not say "well he was a genius so of course things worked well for him" and instead realize he was a genius who made something of his life.

But how does this all fit in with "Tech". Simple, it's evaluation time and I must sit back and recount what in the name of St. Torvalds did I do this year? Logs, diary's, journals all things I used to shun and now something I'm glad my manager wants us to do. This process becomes a lot easier when I look back and see what I have done at work. I may have to start one at home as well so I know what I did there. If anything it will be helpful to the historians who look back on my life and see that even though I lived in extraordinary times I was still just a normal guy.

But enough of that, how does logging help you? Well unless you have a photographic memory and instant recall of information your going to forget what you did, when you did it, and why you did it. Here is an anecdote to help with my case.

I was writing a file compression utility to help with about a terrabyte of data on an sftp server. I have to admit I was being a little lazy having previously worked on the code the day before I made an undocumented change. It was a smart change but upon looking at it the day after and forgetting why I made it I was confronted with the problem "What in was I thinking when I did this?". Fortunately the code was still being developed and my test environment was easy to duplicate. I say "fortunately because when I started working on it the next day I changed something that started putting my compressed files into a folder that was not self incrementing. Oops!

If I had made the notes I should have I wouldn't have had a self writing compression script that went on forever over writing it's data. My change from the day before was a smart one and kept this from happening and now I had broke it by undoing my brilliance.

So two lessons.
  1. What you did the day before had a good reason.
  2. Log what you did and the process behind it or you will surly cause your self double the work.
Logs, notes, journals, all are things that can help use deal with the massive amounts of data we ingest and create. Unfortunately they are also time consuming. But is that time lost for making the notes a good counter to time lost with breaking something? That all depends. Set processes have notes made and should be easy to back track and see were a step was skipped/missed. Thus you are covered. It's the undocumented process that bite you and can throw off an entire day.

There is also those points in your career where you have to sit and wonder "What did I do this year?" and in most case you remember one or two big projects but and remember the last couple of projects at the end of the year but forget all that happened in the beginning.

Just like a server logs it's events, log your own. You may not be a John Adams and partake in a world changing revolution, but you might just save your brain from being taxed on what you did with your life.