The quality of free software has sometimes sparked debate between its advocates and detractors, particularly concerning aspects such as the openness of the development model or the skills level of collaborators who contribute to the project, for example.
As with any software project, free software production should establish measures for quality control throughout its life cycle. In other words, we must be able to assess its quality and compare it with the levels expected at any stage of production or exploitation and from any angle (founders, users or community).
While the openness and decentralisation of the model of free software development allows for quality control and management mechanisms, they are not a solution in themselves and planning should not be overlooked because of these features.
To develop the quality aspects of free software production, we will study the Dhruv Mohindra's article "Managing Quality in Open Source Software", which conducts a detailed analysis of quality control in free software environments. In the subsequent sections, we will review the main ideas of the article.
Recommended website
D. Mohindra (2008). "Managing Quality in Open Source Software"
(http://www1.webng.com/ dhruv/material/managing _quality_in_oo.pdf).
Quality in free software
In general, the quality of a software solution can be assessed both by its architecture or internal design and by the functionality it provides to the user.
The specific features of openness and decentralisation of the free software development model create an infrastructure that allows for quality management policies to be established through the identification and resolution of problems, among other aspects. Still, a lack of clarity and/or structure in production processes can sometimes generate unexpected results.
Assessing quality
There are several formal methodologies and metrics for assessing the functional quality of an application. Quantifiable metrics depend largely on the typology of the software itself, so they must be chosen in accordance with the features and aims of the application.
The free software community plays an important role in non-quantifiable quality: firstly, in the tests performed by the quality team, and secondly, in the activity of the users of the application, who report evidence of malfunctions or for product enhancement.
In this sense, the decentralised and distributed nature and operation of the user community is important for increasing the quality guarantees of the production process.
Control and review
An important factor in end product quality is the control and review of the entire development process. In general, free software production projects use version control systems to efficiently and effectively support the evolution of the diverse project components.
There are different ways to organise the control and review of the evolution of the software and its branches of development and repositories, among other aspects. In all events, though, it is a good idea to adapt the production methodology and systems for the control and review of changes to the specific features of the project and the product being created.
Free software myths
Despite the passing of time, there are still some myths, both positive and negative, associated with free software that can influence its assessment to different degrees.
These myths have no solid foundation on which to base a coherent and sustainable quality management, so we need to identify and evaluate each one individually.
We will then discuss some common myths associated with the quality of free software.
The fact that the source code is public does not guarantee that it is secure and/or of good quality, as this depends on the community interest and reviews.
Feature freezing does not increase the stability of the application in itself, because the important thing is to write good code from the start.
The best way to understand a project is not to correct its possible shortcomings, as the documentation is significantly better for this purpose.
Generally, users do not have the latest version of the repository with updated bug-fixing.
Broadly speaking, the testing and review processes, and the public discussions and hacker culture specific to the user community must be complemented by the active planning and management of production quality.
This management should seek to fill any gaps in one or more aspects of the product, e.g. production planning, development of the features or the documentation of the application.
Additional quality considerations
In general, both the release of the source code and the incorporation of error handling systems and the sharing of responsibility for the product among all those involved are key aspects of quality management.
Hence, it is also important for the overall quality of the project to consider transparency in all actions, trust the development team, review and test all parts of the source code and promote both the peer-to-peer philosophy and the importance of doing things well from the start.