> I think the biggest problem is software changing from under people's feet. We used to have stable version cycles and when it was time to upgrade, users expected change and having to re-learn some stuff.
This. I think it's incredibly inconsiderate to do that to a user who never asked for it.
As a user, I abhor this mentality, and respond to it by leaving. And if I have to stay, I boycott the nag dialogs and just leave them open, to embarrass the developer in front of anyone who may be watching my screencast.
As a programmer, I go out of my way to ensure that my software works the way the user wants, and an upgrade is never demanded.
I design for back and forth compatibility, so that I can go back and forward to any version I desire, as long as there's a commit for it.
It may not work perfectly going back a year, but if it's a stable version, it should run.