5. 2. 2  Community features

The community of free software users is a dynamic and evolutionary organisation in the sense that there are several factors that influence and shape its situation and future trends to varying degrees.

When considering a free software project, it is desirable to create an early and strong user community around the application, given that part of the success and aims of the project depend on it.

Once the community has been created, it is important to schedule activities that will not only keep it stable but also enlarge and evolve it, at least at the same pace as the product. Before we take any action in this regard, we need to ascertain the current status of the user community and its recent evolutionary trend in relation to the project.

Accurately identifying the current status of a user community can be relatively complicated in practice, mainly due to its qualities of distribution and decentralisation.

This problem can be conveyed and illustrated with the problem of assessing the situation of a distributed or decentralised system at a given point in time (snapshot).

Nonetheless, we can take into account a series of indicators that will allow us to establish a sufficiently realistic approach for making decisions on this subject.

The article "Assessing the Health of a FLOSS Community," by Crowston and Howison, describes a simple but effective guide to identifying and assessing the status of a community of free software users. This guide considers the main indicators that should be taken into account when assessing the health of the community and, by extension, the free software project.

Recommended website

K. Crowston; J. Howison (2006). "Assessing the health of a FLOSS Community" (http://floss.syr.edu/publications/Crowston2006 Assessing_the_health_of_open_source_communities.pdf)

The following sections will briefly introduce some of their findings.

Life cycle and motivations

Diverse authors concur that projects are initiated by a small group of founders before being structured and publicly developed.

Once the project has been launched, a second phase should begin allowing for the progressive refinement of the initial concept. In other words, the sharing of ideas, suggestions and knowledge must revolutionise the original concept. This process cannot be completed without the cooperation of the free software community.

Moreover, the participation of members of the community in the project is chiefly motivated by intellectual development, the sharing of knowledge, interest in the application, the ideology or philosophy behind the project or free software, reputation and community obligation.

Structure and size of the community

The user community of an application based on free software can be structured in many ways, taking into account the actions and decisions of the project founders and the features of the application and/or its production.

In general, we can consider an application's user community to be healthy if it has a functional hierarchical structure aligned with its aims around an active core of developers.

Hierarchical structure

This concept can be compared to the structure of the layers of an onion (onion-shaped), whereby the most active members of the project are at the core and the less participatory members are found in the outermost layer.

Broadly speaking, we can identify the following types of member in a project:

Note

This initial classification of typologies is not a closed structure, since each project will adapt it to suit its particular features.

Development processes

The process of free software development can often be inadequately formalised in projects, mainly due to the absence of roadmaps, explicit work assignment or the lack of prioritisation in the application's features.

The organisation of the project is relevant to the functioning and coordination of production, although a certain degree of duplication of effort could be considered a positive sign of the relationship and involvement of the community with the project.

Likewise, the cycle of evaluation and subsequent acceptance of contributions from community members to the project provides accurate information on its health. For example, the rejection of a contribution can reveal a cohesive and qualitative vision of the project in the long run.