I have often found that when I’ve written a funky new piece of functionality, that replaces or augments existing functionality, that people aren’t often eager to use it. Often this is because they are used to the way it works, for better or for worse, and prefer the devil they know. In addition, loads of new features isn’t what everyone wants, and contrary to popular (developer) belief, people aren’t going to dive into all the new configuration options you’ve added.
So are people scared of change? I think they are, myself included. I think there are two reasons people resist change.
Reason number 1
I believe change can put people outside their comfort zone. I’ve experienced it – upgrading to Vista, installing those new graphic card drivers, starting a new job. It’s not unfounded, either. The reason I’m always worried about it is because when it comes to computers, I get burned all the time.
In the context of computing, it’s fair to say that PCs do burn us all the time, it’s probably only reasonable to expect people to be wary and prefer to stick to what they know. It’s worrying to think that we as developers are basically at fault, too. If our software worked faultlessly all the time, people would always want the new version, and wouldn’t worry that it might make things worse.
Reason number 2
Often the reason to not change isn’t because things will get worse for them, but because it takes effort to change, and there’s no compelling reason or tangible benefit to do so. Hands up those who are still using Windows XP or Office 2000/2003? I assume I don’t stand alone?
It’s why when I write software I try to make some perceivable change for the user. Users don’t really care about a minutely better algorithm or better error handling. They care that it does what they want, without being too complicated. Any PC has a job to do, and if it does it already, why change that?
Cost is another factor. Essentially, for an upgrade to be worth it, the following must be true:
cost * effort < perceived benefit
It’s exactly why there are still so many IS400 machines out there running EGA terminals doing back-office applications. It works, people know how to use it, they’ve learned the quirks, it hasn’t changed since 1990, and it does the job. So why bother?
Automatic updates is one way to push new software out there. It’s a good way of making sure that people get the bugfixes they didn’t know about even though they’re in the “reason 2” category.
You have to be careful not to push things that don’t work though. For example, I wasted an hour or so yesterday trying to get AVG Free to update from version 7 to version 8. Although it had been asking me for a week or so to do so (via an annoying popup that I couldn’t disable – how dare they!), it screwed up. I ended up having to delete the Program Files\Grisoft folder and registry entries and hoping a clean install worked.
Fortunately for me, this time I got it working, but how is my situation better than it was before? I have virus protection (sort of) now, and I did before. Where’s the benefit? Was it worth it?