5. 1. 2  The free software project

In addition to the technological and functional considerations of applications based on free software, one of the primary aims of any free software project is to disseminate the application or obtain a critical mass of users.

To put it another way, it is not very helpful for the future of the project if the generated code is not known and applied by potential users, even if specific problems or shortcomings have been addressed. This is also a necessary aim for its subsequent maintenance and evolution over time. In the case of free software, fulfilment of this aspect is essential for the creation of a stable and lasting user community.

Several guides have been written that, to a greater or lesser extent, contribute the necessary concepts for the creation and management of projects based on free software. In this section, we will develop this issue using Benjamin Mako's Free Software Project Management HOW TO article, which reviews the main features of the project from a practical angle.

Recommended website

B. Mako (2001). Free Software Project Management HOW TO (http://mako.cc/projects/howto).

Launch

Before launching a project based on free software, it is very important to design a solid structure that will withstand the subsequent development process with sufficient guarantees.

In general, the basic structure of the project must take into account the following:

Developers

Once the project has been launched, the next aim will be the integration and consolidation of the users and developers of the application. We must create policies and strategies allowing us to define and structure the collaboration of the latter.

Cooperation policies must meet two main aims:

Users

With products based on free software, the users are often developers too (and vice versa). One of the main aims to take into account then are application tests, be they functional, operational, quality, etc.

Support infrastructure

The daily activity of a project based on free software could not be carried out without a support infrastructure adapted to its cooperative aims.

The key actions in this regard are carried out during the project launch. However, once it is up and running, we will need to adapt, improve and supplement the existing resources in line with the progress of the project.

Usual resources

Some of the most common resources in free software projects are: documentation, mailing lists, bug tracking systems and versions, forums, chats, wikis, etc.

The application

Undoubtedly the most important component of the project is the application, on which the rest of the aspects considered are based. One of the key features required by an application is for the user to have sufficient guarantees on the performance of each version released.

The release of versions is a sensitive issue that requires careful thought. Broadly speaking, we need to consider the following:

Dissemination of the project

Lastly, as we initially explained, raising awareness of the project is important, but this task should be carried out taking into account whether we will want to reinforce its foundations over time.

As the project progresses, we need to think about publicising it in free software mailing lists or on Usenet, including the project in other public portals (such as Freshmeat or SourceForge), or advertising new versions of the application in the project's own mailing lists.