Upgrading
Wednesday, April 30th, 2008Did you ever though about how can you spot a real IT guy looking at his computer? Sure installed JVM is a good indicator but there is another way. Just look at software versions. Guys like us always upgrading just for the sake of it. It is easy, fast, brings you new features and eliminates old bugs.
Except sometimes it brings new bugs and breaks features you liked. Every one of us I’m sure has a couple of disaster upgrade stories. Every now and then it happens. Just a month ago I upgraded to a beta version of Ubuntu and my system suddenly lost sound. I mean common, it was like three weeks before release, software should be stable as hell at this moment. But it didn’t I my system stayed noiseless for a couple of weeks when eventually bugs got fixed. It wasn’t pleasant experience especially since I didn’t have any way to fix it myself, you couldn’t just downgrade a piece of software and reinstalling OS is too much pain.
But here you go, it happens. Some guys decide not to upgrade at all and therefore not to have any upgrading issues, leaving the system as stable as possible. And while I think it makes sense for some systems like a Nuclear Power Station computers we as developers shouldn’t follow it. We should run the latest more or less stable build of any software we use.
Here is why - we write systems as well. We’re not afraid of bugs, we’re use to them. Stability is a good option but it is not that important in our world. I’m sure any of you accustomed to save the document you’re working on every second or so. And the most important thing is - we could test software we’re building in most recent environment. That is just essential. You couldn’t develop a web application now without testing it on Firefox 3 and IE8, because that’s where your application is going to work very soon. You can’t just skip testing any Windows application on WinXP with SP3 and Vista with SP1. You can run tests within virtual machines while leaving your system clean and stable but it just not the same, you wouldn’t find as much that minor issues and incompatibilities as you could find living with the system all day long and developing on it.
Don’t get me wrong, you have to understand what you’re doing before upgrading. Just read release notes, google for a while to find out how stable the new system is. But when it exceeding some threshold of stability and you can actually live with it - go ahead and install it. It’ll help you fix any new system related issues now and not when the new system hits the market and your product suddenly stops working. On the other hand it’ll test your product in unstable environment, which is always a good thing to do.
So upgrade. To beta and maybe even alpha versions. Just be aware of the possible problems and make a backup, just in case.