include("data.inc"); $projects = getProjects() ?>
It is a public survey of software process activities in free software projects. The general goal is to develop a good understanding of the processes that exist in these projects. Many projects apply interesting and innovative solutions to the problems that distributed management of developers requires.
Part of the work is finding similarities and differences between projects, and trying to establish relationships between the way they are organized and general attributes of the project, such as domain, developer expertise, productivity and overall quality.
Well, my loose definition of a free software project is a group of developers and users that work on a specific free software package. You may of course use the Open Source term to designate this type of software; I am referring to software that can be freely modified and redistributed with source code though one of the many free software licenses.
Usually, a free software project will communicate through a mailing list, website and/or IRC, sharing opinions and code based on discussion and the participant's needs and requests. There is almost always a centralized codebase kept by the project. There is usually also a hierarchy where people that know the code better have more authority over what is accepted as an official part of the code.
Actually, a number of things. First, one thing that is very special is that developers rarely meet personally - all development is usually done separately and communicated through email or a bug/patch manager. Another is that the work is usually done by volunteers. Yet another is that usually, the authority and control over the project is done in a milder fashion and there is substantial amount of freedom to innovate and propose changes.
From the Software Engineering viewpoint, these are very interesting characteristics. Few environments outside of free software projects present this sort of peculiarity. When observed that the software produced is actually freely available and of high quality, these facts become of major importance.
This is the subject of many CS and Computer Engineering courses, and a good definition is hard to be hashed out, but basically it is a discipline that studies and applies good software development practices. This includes team management, quality assurance, planning, documentation and pretty much everything else that can be considered strategic with relation to developing software. It is as if it were a view into why and how we are building software, and less into what we are building (which is Computer Science proper).
Well, roughly it's the set of activities that a project will go through from the creation of the software onwards. A process can be summarized as a sequence of activities that are executed during the process of creating software. A process model is an abstraction of this set of activities, and can be seen as a generalization or simplification of these activities in a certain viewpoint. For instance, a software lifecycle can be seen as a process model with relation to activities and the time and order they are executed.
Just email me, or tell me on channel #async on irc.openprojects.net and I'll fix it.
This research project is part of my MSc studies at ICMC USP São Carlos, which is a University in the state of São Paulo, Brazil. My MSc project (in portuguese) is intitled "Characterizing a Process Model for Free Software Projects", and this survey will provide me with data to base my analysis and conclusions on.
The data obtained, however, is made freely available to anyone who so requests it through email. If you would like access to the statistics, email me and I'll arrange a format to have it exchanged.
My name is Christian Reis. I'm a Brazilian developer involved with ORBit-Python, Bugzilla, PyGTK, Stoq and occasionally some other free software projects. I started my MSc in 2000 and this survey is an important part of the research (which is why you should be nice and help out). I have something of a webpage, too.