Specifications
CHAPTER 7. OPEN SOURCE DEVELOPMENT METHODOLOGY 66
A software project always needs a decent documentation—for both end users and develop-
ers. The Input Abstraction Layer’s source code is documented using Doxygen (Appendix D,
§D.2). For this purpose, Doxygen is a powerful tool to generate the documentation while
coding. The documentation is done by commenting the source code with a specific syntax.
Doxygen afterwards parses the source code and generates the documentation. Beside others, it
generates Unix man pages, browsable HTML pages and manuals in the PDF format. Doxygen
is also able to generate graphs of dependency trees for the different source code modules and
data structures. Doxygen and its documentation are available on the project’s home page
http://www.doxygen.org/.
7.3 Collaborative Environment
Several precautions have to taken to achieve a successful FOSS project. All of them have a
common goal: communication. Communication b etween the project lead and other developers,
as well as communication between the developers and users. The primary communication
medium is email, either directly or by using mailing lists.
Users tend to have an inhibition threshold to contact developers directly using email. There-
fore, it is good to have a web-based forum where users can post comments, questions, and can
exchange their experiences with others. It is one of the most important tasks of the developers
to monitor the forums’ activity and help users who are having problems.
Capable users are a valuable resource for feedback and suggestions for the future devel-
opment. It is often that users are developing new features on their own and supply so called
patches which add new functionality to the project or fix malfunctions of the software. To
avoid unintentional side effects, patches have to be reviewed carefully by the lead develop ers
before they are applied to the source code.
To realize a central place to go for both developers and users, several services have to be
set up. Services such as a project home page, a forum, mailing lists, a version control system
and a bug tracking system. For this approach, the FOSS community can host their projects
on centralized locations to control and manage the development:
– Berlios, http://developer.berlios.de
– Novell Forge, http://forge.novell.com
– Sourceforge, http://www.sourceforge.com
– Savannah, http://savannah.gnu.org
– Tigris, http://www.tigris.org
All of these web sites offer various services for FOSS projects for free. Thus, developers do
not have to pay for network traffic, server hardware and system administration caused by the
project.
Announcing a project’s foundation and subsequent releases of the project is important to
gain name recognition. For this purpose, it is reasonable to create project entries on web sites
which are indexing FOSS projects. These web sites are visited by users looking for software.
The following web sites offer developers to add projects to their index: