When I started my first IT job, my supervisor gave me one piece of advice that took to heart, and immediately ignored at the same time:
“Buy a notebook and put it on your desk. Write down everything you do, and everything that is asked of you. Don’t rely on your memory – come Monday, you won’t remember half the stuff that happened on Friday.”
Sure enough, I bought a notebook, took it to work and installed it on my desk. Then I proceeded to never, ever use it because I am not a fucking stone age caveman. Writing stuff by hand is a bit barbaric and uncivilized, don’t you think? So I used my trusty notebook for doodles, and writing down all kinds of reference numbers: case numbers, FedEx tracking numbers, license numbers, phone numbers, etc..
But, the advice above is solid. If you work in IT, you should write stuff down. Ideally, you should use a company wide issue tracking system for this. Every time something happens, someone calls you, or gives you a task, you open a new issue in the system, and then you close it once you are done with it. This creates a nice log of your activities which you can use as a proof that you didn’t just play Nethack and browse Reddit the other day – you did other stuff too.
But of course we do not live in an ideal world, so this solution may not be 100% applicable to your position. For example, lets say you don’t have an issue tracking system. Maybe you have a bug tracking system, and you are not supposed to log stuff like:
“I just spent four fucking hours on the phone, trying to explain to the new guy how to use SVN… Kill me NOW!”
There is a whole class of issues, mini-tasks and chores that you might want to track for your own purpose (ie. covering your own ass when the boss asks why your shit is late) which may not happen to be metrics that you company is interested in tracking. Call it auxiliary memory that you can use to supplement the shitty, flaky and unreliable biological wetware you were born with.
In the past, I tried to implement this sort of logging by using a popup dialog that would ask me what I was doing every hour or so. As you can imagine, this was a horrible idea. No, seriously – if you are thinking about doing something like this, don’t. Unless of course you like to be interrupted every hour on the hour. In fact, if you do like that stuff, why don’t you implement your interruption script to use the Clippy avatar in order to make the experience even more enjoyable.
Clearly this is not the way. Besides, you only want to log stuff that is worth logging. Hourly updates are useless, and they tend to populate your log with messages like “still waiting for my shit to compile”, and etc… You want to log stuff on your terms.
Let me show you a trick that I have learned few years ago, and have been using to log Windows server configuration changes in an easy, hassle free way. Granted, this only works on windows but it is neat, and you could use it as a running work log without stooping down to something as barbaric as a dead tree notebook.
Here is what you do:
- Open Notepad
- Type this in on the first line: .LOG
- Save the file somewhere
- Close it
Got it? Good. Now open it up again (using Notepad). If you did it right, Notepad will append current date and time to the end of the file, then insert a carriage return putting your cursor directly below it. This is a built-in hidden feature that most people have no idea about. But once you learn about it, you will love it.
As shitty as it is, Notepad makes for a fairly decent logging tool. Using this trick is quick, easy and simple. The only downside is that the file is not properly structured – the date and time is ass-backwards, and sorting the file is not trivial. Searching for entries from a particular day may require some scrolling, or using Notepad’s built in search. And since the format puts time of the entry on a different line than the entry itself, tools like grep and find can’t be easily used for keyword searches.
I decided to create my own tool that does the same thing, only slightly better. It looks like this:
The basic idea is this: every time you type something into the text box, and hit “Save” this tool will try to append it to a file named something like 2011-05-04.txt, or whatever happens to be the current date written in ISO format. If the file does not exist, it will create it. The little calendar tool can be used for browsing the past entries with ease.
The log files are friendlier to basic text search tools since timestamps are on the same line as text entries, and file names are associated with the date of creation.
I’m not claiming this is the best tool for this job. I’m not even claiming it is a good one. But I figured I might as well share it. Some of you might find it useful. You can grab the installation file from maciak.org/worglog.
If you have an idea on how to improve it, feel free to fork it. The code is available on GitHub and the app is released under GPLv3.
Oh, and if you find a bug, let me know.
Do you write stuff down, or otherwise track your work in any way? What do you use? Maybe you have a way better tool than mine. Please share your log writing tricks in the comments.