Keep Your Computer Tidy

Schedule Software Hygiene


How often have you installed the latest software update, starting exploring cool new features, and discovered you've wasted hours? While keeping versions tidy is a vital chore, I find myself getting sidetracked too often. What is supposed to be a quick side trip derails the important stuff. As a system administrator, I took a page from my work Standard Operating Procedures to address this problem.

For me, this problem is a matter of focus. My cure for focus problems is to capture the interruption and deal with it at an appropriate time, rather than letting it push aside more important tasks.

For this specific chore, I schedule a recurring monthly meeting of about 4 hours at the end of a workday. My "Software Hygiene" meeting is a dedicated time for necessary (or fun) chores:

  • Checking for updates

    I don't like automatic updating, but I also don't like checking a dozen web sites. My compromise is to select "Download but do not Install" if possible; if not, I have a text list in the body of the meeting of the 10-12 pieces of software that I really care about. If something isn't on that list, either I use it infrequently, or it doesn't really need monthly attention.
    This rule is pretty flexible - my antivirus and spyware blockers update automatically. I also generally download OS and security patches the same day I hear of them. Even then, I schedule a time or create a to do for the chore rather than interrupt my current task.

    I should note that system administrators tend to fall into two camps: "patch/update if you have to", and "patch/update defensively". On my home systems, I tend towards the latter: even if an update doesn't have security implications or compelling features, I'm probably better off staying with the version that has the developer's attention.

    At work, I fall into the former. If the patch/update is urgent or a user needs new features, you'll know; if not, you're busy enough already, and you avoid the chance of an update introducing new problems. A biannual "image update" brings all patches up to the latest version in a controlled, tested version, and gets pushed across the environment to reduce variation.

  • Trying New Software

    I'm as bad as anyone - I see a blogger mention the latest handy utility, and I want it now. If it seems to be a "nice, but not necessary", I add it to the next meeting, usually by grabbing the URL of the blog or review that brought it to my attention. If it's a "just gotta try it", I'll add it to my to do list. Don't interrupt the flow. As with inbox processing, divide triage from execution to avoid getting sidetracked. One benefit of coming back is that you can read the comments and follow-ups and get a better idea of the software, it's competitors, and bugs people have tripped over.

  • Pruning

    Part of good Software Hygiene is cleaning out the cruft. If I haven't used a piece of software recently, I evaluate whether I ever will. Much of the stuff above falls into this category: if it hasn't supplanted something I already use, doesn't do something I need to do often, or stopped being interesting, it probably shouldn't be on the file system, trying to sneak back on the radar. Before deleting, update your "Orphan Software" text file. I note the package, homepage URL, and a brief description (usually cut and paste from the homepage!), plus strengths, weaknesses, quirks or irritants ("Couldn't save as pdf).

    If I discover I need it 6 months later, I have enough context to find the right piece of software, and a pointer to the latest version. Make sure you don't have any valuable data in a format that only this package understands. If you do, save it as a common format (if possible) or print it to a file as text or pdf (if necessary) so you can re-enter the data later. Annotate the pdf so your desktop search can find it ("Aunt Minnie's Family Tree"); you'll probably find the info wasn't as vital as you thought.

I rarely spend the entire four hours on the task; if I do, it's because I'm playing. Putting the task at the end of the day ensures that if it does steal time, it's from leisure, not work.<