Abstract

Free Software (or Open Source) is software provided with source code that may be freely used, modified and redistributed. Free Software Projects are virtual communities of developers that work on a specific free software product. These developers work geographically dispersed, using simple tools to communicate and coordinate their actions over the Internet. This work analyzes these projects with respect to their software process; in other words, the activities they do to produce, manage and ensure the quality of their software. In the initial sections, I perform a large review of related work in this field, and provide an overview of the main characteristics of free software projects. The main contents of this dissertation is based on two years of participation in free software projects, and on a survey based on a questionnaire that describes over five hundred different free software projects. I present thirteen initial hypothesis, using them as a framework to analyze the results of the survey. Among the projects evaluated in this survey, some common aspects were observed. For instance, most projects have a small team, with less than five developers. I also found a balanced distribution of leadership systems described in other works, including Eric Raymond’s ‘benevolent dictator’ and the committee exemplified by the Apache project. The domains in which these projects tend to concentrate are software engineering and development, networks and security, and multimedia applications. Concerning the software process activities, most projects have their functional requirements established by their authors: the user base for most of the projects includes the development team and the free software community. A large proportion of the projects surveyed are based on pre-existing software, or on previously published standards. Little emphasis is placed on usability and conventional forms of quality assurance. Remarkably, this lack of emphasis on conventional process includes activities like review and testing. Among the tools used by the projects, mailing lists and versioning systems such as CVS come out ahead by a strong margin. A correlation was identified between the size of the project’s team and the software engineering activities that it realizes, but I could not establish a link between the age of the project and these activities. Other correlations were established between the size of the project’s codebase (in terms of lines of code) and its age, size and application domain. The dissertation concludes describing essential parts of the software process in free software projects, and offering suggestions for future work.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call