Saturday, June 30, 2007

Getting ready to GTD

I have decided to give the "Getting Things Done" personal organization method a try.

The first step in this method is to collect all your "stuff", for which the book suggests blocking out a full day (6~8 hours) to go over all your cabinets, drawers, shelves, notes and papers, computer files, etc. collecting items that you think "are not in the way they should be" and dumping them in your "in basket." Then, after the "physical sweep", comes the "mind sweep": collect anything that might be still residing in you "psychic RAM."

The end result should be a big pile of "stuff", which in my case looks like this:


IMG_0715.JPG


As part of the collection process, I gathered over 100 items, and yes, it took that many hours as the book recommends (including lunch break and a brief nap; it's Saturday after all!)

The next step in the process is organizing all this pile into lists of actionable items, deferred items and archived items. But that's going to be tomorrow.

Monday, June 18, 2007

The Curse of the Cone of Uncertainty

"Truly free?
Then thus I give you my freedom's first greeting!
Since by curse it came to me, accursed be this ring!"
--- Richard Wagner, "Das Rheingold", Scene 4


When I first read about the Cone of Uncertainty, it was a liberating revelation to me. However with time I have observed other side of it.

As the cone predicts, your initial estimates are "wildly inaccurate." They improve with time, but by then your credibility has taken the hit, and your audience may not believe you any more. I think I will call this "the curse of the Cone" (or maybe the "Lying Shepperd of Project Planning", if you prefer a friendlier methaphor :-)

Nevertheless, the Cone of Uncertainty is a very important concept in project estimation. Brad Appleton has a nice collection of links to resources on that subject.

Friday, June 15, 2007

Workbench Productivity

"Every woodworker needs a good, solid, reliable workbench, somewhere to hold work pieces at a convenient height while he or she works them. The workbench becomes the center of the wood shop, the craftsman returning to it time and time again as a piece takes shape." --- "The Pragmatic Programmer", Chapter 3

How much thought do you put in customizing and streamlining your "virtual workbench"? I'm of course referring to the operating system shell, that piece of software that allows you to interact with your computer and carry out your tasks.

When the Pragmatic Programmer points out the connection between the OS shell and productivity, they are talking specifically about the command line shell, where the productivity impact can be quite dramatic, but I think it follows that the same principle also applies to the case of the graphical desktop.

By taking a closer look to the kind of customizations I have made to my Windows desktop, and the kind of operations I tend to perform using the GUI rather than the command line, I think the general organizing principle seems to be the preservation of flow.

For example, I usually need to restart some Windows services very often. The "standard" way of doing this with the GUI is to go to the Start Menu, then Settings, Control Panel, Administrative Tools, Services, then find the service in question, right-click it and select "Restart." Way too long! If I did that, then there would be an interruption in my train of thought; the flow of the task I was performing would be interrupted with all this clicking. Instead, I keep a short-cut in the task bar that runs a script with net stop/start commands. That way, restarting the service becomes a simple step in the flow of things part of my current task, and that helps preserving concentration and overall productivity.


"Every craftsman starts his or her journey with a basic set of good-quality tools. [...] Over time, each will wear according to use, until the grip looks like a mould of the woodworker's hands and the cutting surface aligns perfectly with the angle at which the tool is held. At this point, the tools become conduits from the craftsman's brain to the finished product -- they have become extensions of his or her hands. [...] Tools amplify your talent. The better your tools, and the better you know how to use them, the more productive you can be. Start with a basic set of generally applicable tools. As you gain experience, and as you come across special requirements, you'll add to this basic set. Like the craftsman, expect to add to your toolbox regularly. Always be on the lookout for better ways of doing things." -- "The Pragmatic Programmer", Chapter 3

These are some of the tools I use to improve my flow when working in a Windows environment.

Dealing with files and navigating the file system are the most common ways to interact with the shell. For those directories I keep visiting frequently, I just don't like to have to navigate the directory tree to find them, or even to remember where they are located, so I keep two list of short-cuts: one in the "Links" menu, for those I visit when I am already in Windows Explorer, and other in a custom menu I added to the Windows task bar, for those folders I tend to visit while doing work in other applications.


In the same menu, by the way, I keep a "Scripts" folder which contains short-cuts to scripts I use frequently, like the one to restart services I mentioned earlier.

Very frequently you have to do some command line operation in a specific folder. I found very useful for those cases to have options in the folder's context menu to directly open different command line interfaces (Window's CMD, or Cygwin's bash) with the current working directory already set there:


I also profusely use the task bar to keep short-cuts to applications I use frequently. I have found that it works better for me if I keep directly in the task bar those applications that I start and stop frequently, several times, throughout the day. For those applications that I either use more sparingly or that I launch only once a day and stay open most of the time (like Firefox and Outlook) I prefer to keep them in the popup menu, so they don't clutter the task bar. At the same time, though, I don't like to be distracted by the task bar, so I set it to "auto-hide" mode.


None of this ideas are extremely advanced, and surely are obvious for many Windows users. I find them useful, however, to maintain flow and focus, by not having to think "how" to do some common tasks, and just "do them" instead.

I'm sure you have your own bag of Windows shell tricks. I'd love to hear about them and potentially add them to my own arsenal, so feel free to leave a comment here about them.

Tuesday, June 12, 2007

Jeremy Miller Ipse Dixit

"Everyone, including me, repeat after me:
I am not my code. A criticism of my code doesn't have to be a personal attack on me.
I am not the tools that I use. A criticism of my tools shouldn't be construed as a personal attack on me.
I am not the programming language that I use"

_____


"Look, I like to put the headphones on and go heads down as much as the next person. I'm one of those people who likes complete quiet to concentrate fully, but that's a local optimization for my personal productivity -- and we know that local optimizations are a fallacy."


From "A train of thought - May 21-28, 2007 Edition", by Jeremy Miller.

"Ipse Dixit" is a Latin expression that translates to "He himself said it" and it's used for an unsupported statement that rests solely on the authority of the individual who makes it (more details here.)