Friday, October 14, 2005

Why don't people upgrade?

Gary mentions a topic I've always found interesting: why do people persist in running old versions of Solaris?

I know of many reasons, some of them are even valid. Most of these are in the general area of supported configurations. If a vendor (or even Sun) won't support a new version of Solaris, then you're pretty well out of luck. It's not just official support, either - sometimes the product plain won't work.

(This last point makes me wonder. Given the very strong binary compatibility guarantees in Solaris, what are some of these vendors doing to make their code stop working? Presumably they think they're being clever, but they must be putting in a lot of effort to break things.)

There are also a couple of burying head in the sand excuses I hear
  • nobody else has upgraded so there must be a problem

  • we'll wait for someone else to try it and find all the bug

both of which are bogus. Let's nail the first one for starters. Actually, plenty of people do upgrade, and don't have problems (if they read the instructions, that is). Do you want to be the one left behind? This herd instinct does seem very strong, though.

The "waiting for someone else" mentality is wrong. For one thing, Solaris doesn't go round randomly breaking functionality - compatibility is very strong and the level of bugs is very low. Secondly, the Solaris development model fixes bugs in the new version first and then fixes the older versions later (if at all), so that upgrading to a new version is the best way to reduce the number of bugs that you might be exposed to. Thirdly, it's actually already been tested (to destruction and beyond) very very hard indeed already. I know, I did it. Yes, we found bugs. But a whole lot of people inside and outside of Sun have beaten on Solaris for a long time, and most of the bugs are gone. Finally, because it's been well tested, the remaining bugs tend to be in strange distant areas that nobody has covered yet. In other words, the chances are pretty good that if you're going to get affected by a bug, it may well be specific to you, your environment, and the way you use the product - and these bugs aren't going to be picked up by other people, so it's daft to wait for other people to do the testing because it doesn't mean anything for you.

There's also the argument "it's not broken, so there's no point fixing it". Sure, it is reasonable not to immediately go out and heedlessly upgrade every time a new version comes out. And once something works leaving it alone is generally a good policy. (But I think this really ought to be expressed as "don't fiddle" rather than "never touch".) But regular maintenance is an essential part of the process, and upgrades and replacements need to be planned for. The problem with just leaving things alone is that they start to rot, and if you leave them too long you have a disaster on your hands. For example, if you don't apply any patches for 4 years, and then hit a problem, you have to apply 4 years of patches - a massive change, and a massive risk. Or if you insist on running old hardware too long, you suddenly discover that when you need to replace it you have to change the OS and application by 3 or 4 major versions and it becomes a nightmare. Essentially, planned steady change is a lot better than hanging on too long and hoping you can survive the inevitable wreck. Better many small steps than a desperate leap over a gaping chasm.

I haven't even considered all the cool new features.

So I have this message to all those still hesitating about upgrading to Solaris 10:

Come on in - the water's fine!


Andrew Watkins said...

One thing you did not mention which does make a difference when you upgrade is the desktop.

Solaris has had few different desktops which have changed with every version. Solaris 10 has JDS (GNOME 2.6)/CDE, Solaris 9 had CDE/GNOME 2.0/1.4 and Solaris 8 had CDE/OpenWindows.

I have users who are still using Solaris 8(openwindows) and if I go to solaris 9/10 I am forcing them to use a new desktop, which can be hard!

One last point is the speed on the machine, since every new solaris version seems to be a little more CPU/Memory hungry than the previous one. I have had the same Ultra 10 on my desk for (to many years) and it has run Solaris 8,9 and now 10. I have to say that Solaris 8 CDE/OW ran fine, but Solaris 9 was a pain when using GNOME and it was only the purchase of more memory saved my life. (I know it was not really solaris fault, but gnome, since it wants to run twice as many applications as CDE/OW).

So, upgrading is fine, but it can come at a cost!

Peter Tribble said...

I agree that the desktop experience is an important consideration, but not necessarily in the same way.

The Solaris desktop environment is actually pretty stable. CDE has been present for almost a decade now, and hasn't changed much in that time. So that's one constant.

As for OpenWindows, as far as I'm concerned it simply isn't fit for the 21st century. (My personal - as opposed to professional - opinion is that it wasn't fit for the 20th century either.) Using it fits squarely in the "hanging on too long" category. (Actually, it still works fine on Solaris 10, if you try it.)

Then there's GNOME/JDS. As Brian recalls, I was pretty critical of GNOME when it was first mooted as the desktop of choice, and Gary will probably remember a large explosion from the Fens when I first installed JDS 3 about a year ago. But in fact GNOME is shaping up in a pretty promising manner, and there's a good argument that Sun should actually be more aggresive in keeping up (while finding some way to allow those who want to to stay on a particular version).

As for memory requirements, my experience has been that it isn't GNOME that's a memory hog. It's Netscape, Java, and StarOffice that are the problem.