Value Beyond Being Better

Here's the scenario: project foo is a widely used program that has been around for quite a while.  It's starting to show it's age, yet people still use it because it's the unofficial standard (ex: struts, pcgen).  A new application, project new,solves many of the shortcomings of project foo (ex: webwork, shard).  Why hasn't project newachieved the sucess of project foo if it's better than project foo?

I've come to the conclusion that a project can not be successful by solely being better. Sure, it's good for a project to have newer technologies, better architecture, cleaner code, but that's not why users change to newer applications.  If project new proclaims, "Stop using project foo!  Use project new because we're better!", users will simply sigh and continue using their current application.  The bottom line is that if you want users to start using project new, you need to also support project fooOpenOffice is a good example of this.  The majority of people don't start using OpenOffice simply because it's "better".  They take the OpenOffice plunge once they feel comfortable that OpenOffice will still support their existing Microsoft Word documents.

This has been particularly relevant to me, as I try to figure out how to make shard a successful open source project. PCGen is currently the "top dog" when it comes to d20 applications, and user's aren't going to migrate to shard simply because it's better.  Shard has many significant improvements over PCGen (database support, simple user interface, etc), but that alone is not going to convert users.  What is really needed is for shard to help users migrate from PCGen quickly and easily.  The next version of shard will officially support importing PCGen datasets into shard.  An experimental import of SRD skills is already up and running, so it won't be long before shard supports the rest of PCGen's LST files.