Distributing Open Source Software
Many young open source projects face the daunting problem of distributing their software to thousands of potential users with no distribution system, not marketing budget and no PR department. A range of open source, community based, options have grown up in response to this demand and have become de rigueur.
Word of mouth
Spreading software by word of mouth has the benifit that the potential users give feedback directly to the project, giving the project direct knowledge of why their software is not being used. Feedback from users is vitally important in software engineering, and can help prioritise development, testing, support and marketing effort. It is important to accept feedback, rather than using it as the starting point for a discussion of relative merits of the software, because the quality of the software is more important than whether a specific individual potential user becomes an actual user.
Documentation is much maligned, but necessary. The volume and style of necessary the documentation varies with the target user. Software written for hackers rarely needs more than a couple of paragraphs in a README file. Software written for end-users may need entire volumes. The documentation should cover the compilation, installation, configuration, use and on-going maintaince of the software.
Make a basic install package
An install package doesn't necessarily have to be particular sophisticated, but it needs to make clear before download the software version, date and the architectures for which it is suitable (i.e. Windows, Linux, Mac, etc). Inside the package needs to contain instructions to install, configure and run the software. If the software is aimed at end-users rather than sys-admins, considerably more polish is required, typically with a graphical installer and no command-line steps in the install.
Get the software accepted into a distribution
For linux software, most software is distributed by "distributions" such as Red hat, Debian and Suse. Debian is the largest of these, and perhaps the easiest for small open source projects to get accepted into. Debian is an entirely voluntary organisation, so unless the software is spectacularly popular, the developers in the project can expect to bear most of the effect of getting the software into shape and packaging it appropriately. Once packaged, the software will be available to all users of debian or derived projects such as Ubuntu. Red hat and Suse are commercial distributions, and inclusion in these packages is base don the business case, which makes it unlikely that young open source projects will get included. There are vibrant community of third parties packaging software for Red hat and Suse, but this software is not included in the official distributions. All distributions have minimum standards for the inclusion of software, which may relate to technical, licensing and organisational issues. Acceptance into a distribution can take a long period time, particularly for those which have a relatively long time between releases.
Publish release information on news sites
When a software project releases new software to the public, it should shout about it. Websites such as Freshmeat as well as subject specific ones track the new releases of huge numbers of pieces of software. While the publicity of featuring in these sites is fleeting, they are used by distributions to automatically notify them of new releases they should be packaging.
Get on a demonstration CD/DVD
There are a number of demonstrations CDs and DVDs featuring software for Linux or Microsoft Windows. The linux demos (including Knoppix and Ubuntu ) are typically derived from an associated distribution and include only software already packaged for that distribution. The Windows demos (including TheOpenCD) tend to be based on very polished installers. Due to their open source nature projects can create their own custom demonstration disks, which can be considerable work. Demonstration disks have a very limited shelf life, because the many piece of open source software that contribute to them are being continiously updated.
Factors enabling distribution
A number of factors influence the probability of a package being distributed in a demo or distribution. First and most importantly the licence needs to meet the criteria in use. At the very least this will require a licence which permits unlimited redistribution of the software, but the criteria are often considerably more stringent, such as OSI certification or the Debian Free Software Guidelines. Secondly the software is expected to behave as other software using the same technologies behaves: all java software is expected to be packaged, if not identically, very similarly. These expectations are usually in accord with various generally accepted practices in the open source, unix and linux community. Thirdly demonstratable interest by users of the software in the applicable domain. Lastly, cooperation on the part of the developers ot maintain and fix bugs in the software is required.