What Makes Windows Deteriorate Over Time
I've been using Microsoft Windows since version 3.1. One consistent issue I've faced is that the operating system becomes degraded in some way with normal use over time. Usually, after about a year of normal use I have to reinstall WIndows - and that means reinstalling all my applications and reconfiguring all my personal preferences and customizations.
Over the years and over all the versions of Windows since 3.1 through the latest the specific issues that have resulted in forced re-installations have been different. But some common symptoms include these:
- An existing software application stops working or works incorrectly -- and very in-depth debugging fails to reveal the problem. The application works on other systems, just not on my system. Nothing except a re-installation seems to solve the problem. I recently experienced this issue with my password manager software. The developer worked very hard with me and we could not resolve the problem. Reinstalling Windows finally fixed it.
- A new software application refuses to install. This recently happened to me with a new development environment from a major vendor. Their software runs well on millions of computers - just not on mine. Reinstalling Windows was the only solution we found and that worked.
- A service pack or other update will not install. This recently happened to me when installing Service Pack 2 from Microsoft. The service pack would not install. Microsoft generously offered help, but ultimately the solution was once again to reinstall Windows.
- Windows stops booting up with a message that the kernel is missing some DLLs. It will not even boot into safe mode, etc. Some people might be able to diagnose these errors better than me, but I inevitably decide to endure the pain of a re-installation rather than try to debug/resolve kernel errors.
Each time I have to re-install Windows it feels like I'm being kicked out of my house. I spend a lot of time working on my computer -- indeed, my wife says I live there.
What would happen if, after getting a plumbing leak under your house, the plumber tells you that you must move out of your house, tear down the house and build a new one in its place, and eventually you can move back in, but you will have to redecorate all over again and move all your possessions back in from storage and all that stuff? Now, what would you think if this happened to you every 12 to 24 months?!
That's how I feel about being forced to re-install Windows approximately every year. The intense part of this re-installation takes a couple days; but then it seems to require about two weeks before I have everything completely back like it was. I don't mind the work, but I hate the fact that it is unproductive work. It isn't creative. I'm not moving ahead - I'm simply getting back what I already had and was happy with (except for the fact that it stopped working!).
Fifteen months ago I was faced with re-installing Windows on my desktop computer for about the hundredth time. I decided to install Windows Server 2003 as my desktop OS. I set it up so that all my data and as many of my settings as possible (including my complete Windows profile) were on my file server. I hoped that running Windows Server 2003 as my desktop would give me the kind of stability and reliability we often see in real Windows servers.
The Windows servers I typically work with professionally do not degrade over time like Windows on the desktop does. I've seen Windows servers that continue to run well for years. I want Windows on my desktop to hold up over time that well.
I enjoyed using Windows Server 2003 as my desktop OS for about a year. I was very careful with it. I never had a virus infection. I never had a single piece of malware infect my system. I was very selective about which applications I installed. I spent a year treating my operating system with great care. However, in the end, my fate was the same. I was forced to re-install Windows. Why does this happen?!
This time it was actually 15 months between installs, but that's only because I endured a malfunctioning operating system for at least three months before I found the time to re-install Windows. Once I did re-install Windows I realized how poorly everything had been working. Application after application suddenly began doing what it was designed to do again. That's nice, but I really want to know how to prevent Windows from deteriorating over time.
Is the degradation of Windows due to installing and uninstalling applications? I know Windows servers generally have a fairly stable set of applications. I also know that experience tells me to be very careful about installing new applications because this can often lead to problems. At the moment I feel installing and uninstalling applications is the primary suspect in Windows's degradation over time. However, there is no way to avoid installing some new or upgraded applications over the course of a year or more. I minimized the applications I installed, but I still suffered a serious deterioration in WIndows functionality that led to a forced re-installation (and all the related pain).
People often point to malware, viruses and other threats from online activities as the reason for Windows degradation over time. In my case I am confident this is not the reason (and I tested for this with the best tools I know of). What else could it be?
Other sysadmins point to lack of maintenance as the culprit. This includes things like neglect of disk defragmenting, tons of temporary files piling up, etc. As you can probably guess, I'm well above average when it comes to taking care of my system. I don't think lack of maintenance explains why I have to reinstall Windows every year (or two at the most). Plus, my servers don't suffer the same fate as my desktop. My home file server (running the same Windows Server 2003 operating system), for example, just runs and runs and runs. I actually do less preventive maintenance on it because it never gives me any problems. Why is it that the same operating system, cared for by the same person, but used on the desktop craps out after a fairly short period of use?
Installing hardware device drivers can often cause problems, but I approached this area much the same as new software applications. Over the 15 months I used my last installation of Windows I only installed a few new USB devices. I made no other hardware changes. Plus I had not made any changes at all recently. I don't think device driver problems explains what happened to me.
I would love to hear from anyone who has figured out to to prevent and avoid the Windows degradation that is so common. Everyone seems to have experienced it. No everyone has experienced it as frequently as I have, but I use my computer all day long every day.
I'll conclude this article by saying that my most recent re-installation was much less painful because of some key changes I made last time this happened to me. These are:
- I put all my personal data on my home file server. Sure there was a cost in setting up a home file server, but it was worth every penny!
- I wired my house with CAT6e and installed a GigE switch.
- I set up a roaming profile and stored it on my home file server. The price for doing this is a longer start up and shut down time in Windows, but again I feel it was one of the best changes I have made considering that Windows on the desktop deteriorates over time.
- I took My Documents (and My Pictures and all my other stuff) out of my profile and stored it directly on the file server.
- I set up email with Google. I still used Outlook and POP3, but I left copies of all my mail on Google's servers. While I was re-installing Windows, Gmail saved me. In fact, I'm not sure I'll go back to Outlook - at least not in the same way I relied on it before.
- I moved all my favorites/bookmarks online (Spurl and del.icio.us).
This time, I took a couple more steps in addition to those listed above.
I set up a home application server, for one. This server will run all my productivity applications. I will access it via RDP 6.0 (so I can have my high resolution dual monitor experience) from my desktop. I will strive to keep the set of applications very stable. I will not access the Internet from this box (except for Windows updates and a few limited situations). I won't plug USB or Blue Tooth devices into this box, and I won't install new hardware unless there is something I can't avoid. I probably will run Visual Studio as well as Office on this box. Doing development on it concerns me a bit. Maybe I should have a separate development box, but that seems impractical for several reasons. First, I use the Office apps together with Visual Studio quite frequently. Second, I'm already at a ridiculous level of complexity for a single user. (After all, why should a single user have to have a desktop, a file server, an application server and a GigE network just to achieve some level of reliability? I simple want Windows to stop crashing and deteriorating over time.)
The other step I took is to more fully embrace Virtual PC 2007 and Virtual Server 2005. I will be using these virtual machines extensively for testing any new application I may be considering installing on my desktop (or application server). I'll be using them for development work as much as possible. And I have a Virtual PC VM set up for all my online activity. It has an undo disk enabled and I virtually never commit the changes. I find that I can get a lot of online work done and save the results of my work and then simply close the virtual machine and undo all the changes. That way my virtual machines stays nearly as fresh as it was the day I first installed Windows. I do have to plan for installing updates and doing other maintenance. I simply do that work in a session where I don't browse the web, then I close the VM and commit the changes.
The virtual machines do have some limitations. For example, they don't have video support for dual monitors or high resolutions. I don't think you can burn CDs or DVDs from within a virtual machine. They don't use all the power of modern CPUs. They aren't suitable for gaming. The list goes on. Therefore, a virtual machine cannot completely protect me from the problems I have experienced with Windows degradation, but I think they will help.
What other suggestions can you think of?
I hope that the next time I re-install Windows on my desktop (or any of my personal servers) will be due to my own decision to upgrade, not because I'm forced to re-install due to deterioration of the operating system.