How to get sysadmins to never use your software again

December 10, 2010

If your software keeps some sort of database or even just reads data files, and you want happy sysadmins, make it always be backwards compatible with the file formats of older versions. If you want moderately unhappy sysadmins, give it an automated migration process so that it reads the old format files and rewrites them in the new format.

(This makes sysadmins moderately unhappy because we can't back out of an attempted upgrade without restoring the old versions of the files, and as a corollary we can't switch back and forth between the two versions.)

Conversely, if you want to get sysadmins to never use your software again, make new versions of your program require active upgrade procedures, things that the sysadmins have to look up and do by hand (even if it is just running a program). You earn bonus points if part of the upgrade process is 'and check to make sure that nothing went wrong', and if it is a multi-step, multi-command thing that requires manual intervention and careful attention.

You might be tempted to say that any sysadmin who installs a new version of your program ought to also be willing to do some extra work along with it and besides, it's not that hard. There are two problems with this.

First, sysadmins often aren't actively choosing to upgrade to the new version of your program; instead we have the upgrade forced on us when we do things like upgrade our distribution. Second, we often aren't deeply experienced with your software and familiar with all of the fine details; instead we've taken a system package and slapped together something that worked. Then when your software turns an upgrade into a four alarm fire drill requiring major work to migrate a test version of live systems, test extensively, and then re-migrate the live system when the upgrade happens, sysadmins swear solemn vows to never ever be caught in the same trap again.

(Please don't suggest that we should ignore the version of your software that the distribution packages and instead compile from source. That too is a non-starter, for good reasons.)

On related news, Ubuntu 8.04 has MoinMoin version 1.5.8, Ubuntu 10.04 has MoinMoin version 1.9.2, and our support site currently uses MoinMoin. It is rather unlikely to do so in the future, because we are smart enough to only stub our toes once.

Written on 10 December 2010.
« A small request for C programmers: no static locals
The danger of having system programmers around, illustrated »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Fri Dec 10 01:15:20 2010
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.