As we’re coming up on the release of Visual Studio 2010, I’ve been getting questions from clients about their upgrade strategy – should I upgrade to Visual Studio Team System 2008 now or wait and jump from VS2005 to VS2010? The answer — like lots of things in software — is “it depends.” The important thing is that they’re *thinking* about their upgrade strategy.
These questions have gotten me thinking about the clients I’ve worked with who haven’t upgraded — the companies who are 2 and 3 generations behind in tooling. It’s late 2009 and they’re still on .NET 1.1 and Visual Studio 2003 and they’re not planning to upgrade any time soon. That’s code that’s based on a 6 year old version of the tools. For a lot of these companies, it’s about budgets and they think it’ll be too expensive to upgrade the code to Visual Studio 2008 and/or they simply don’t want to go through a QA and rollout cycle because time is money. They’re right – it will be some degree of effort to do the upgrade – but they’re wrong, too. Like it or not, it’s a fact that they’ll eventually be left behind by the upgrade cycle. If they had updated their .NET 1.1 code to use a newer release (VS2005 or VS2008) then the next upgrade they have to do would surely be less painful…but they didn’t and now they they’re staring at a 2 or 3 release upgrade. Looking at a 1 version code upgrade is not a huge deal. It starts to become more painful when they have to hop multiple versions. The more painful it looks, the longer you put it off. The longer you put it off, the more painful it becomes.
This kind of move always strikes me as somewhat short sighted. Let’s think of this in terms of cars and car ownership. If you own a car, you’re going to do basic maintenance on it. You’ll change the oil every 3000 to 5000 miles and check that the radiator fluid is topped off. You’ll make sure the brakes are good. You’ll fill up the washer fluid, too. You’d do this kind of work on even a basic car. We’re not even talking about some kind of fancy car. Just your regular plain old car. It would be UNTHINKABLE to not, say, change your oil. Why? Because we know that it ruins the lifespan of your engine if you don’t change the oil from time to time. Spend the $30.00 on oil change; save yourself potentially thousands of dollars later on replacing the engine.
Now take a software application that probably cost a minimum of $100,000.00 to write. Or considering an application that took $500,000 or maybe even a million dollars to write. These are all very common sized applications and they they’re a key part of running the company. Why would it be ok to never do anything more than the bare, scraping minimum of maintenance on your code? This application runs your business! It’s making you money and it took a lot of money to write it. Don’t you want to make sure that it’s running ok?
Making sure that your .NET applications can be maintained and run on something approaching the latest version of Visual Studio is the equivalent of changing your oil. That relatively small amount of time, effort, and money that you’d have to spend keeping your application’s code up-to-date is a drop in the bucket.
Change your oil.