Last week, I wrote a blog post entitled “It’s Just Setup – Who Cares?”. What I didn’t do was go into the other side of that equation: uninstalling/removing an application. As bad as some software installers can be, trying to remove that software can sometimes be 100x more painful. I’m sure you’ve experienced this either on your own personal machines (regardless of OS) or your enterprise servers at some point in your lifetime.

To be honest, this annoys me much more than a bad installation process. In my mind, any piece of software that gets put onto your computer should be able to be removed completely with none of its traces or hooks still around. I think that’s not an unreasonable expectation … or is it? I mean, I’ve seen numerous times where the odd folder/directory, configuration file, or set of registry entries is still hanging around like that bad party guest who doesn’t want to leave at the end of the end of the night.

Oh, and don’t get me started on programs that will require a reboot to complete the software removal. I have never seen an uninstaller tell me that little fact when the process begins, and I love one of these two situations more:

  1. At the end, a dialog pops up and says something like “Your computer must be rebooted to complete this process” with an OK button. You click, computer reboots.
  2. No dialog, just reboot with no care as to what else may be going on. Working on a document you haven’t saved? Too bad, so sad.

Do you want either of these situations on your computer – especially a mission critical server? Heck no! If whatever you’re trying to eradicate from your computer or server does require a reboot, at least give me the option of when I choose to do the reboot. Again, I don’t think this is a completely unreasonable request of any software vendor. I am not thrilled I’m left in a pending state, but at least I control my own destiny.

Both of these blog posts underscore one thing that holds true: pick your software carefully and test things like install and uninstall before you go live. Knowing is better than flying blind, especially in a production environment that has very tight SLAs for uptime. That 128GB server isn’t coming back online in 30 seconds after a reboot.