Development Good Practise Using Open Source Software

Presented on 15 January 2004 at the Idlelo conference in Cape Town, South Africa.

Formats

Available in the following formats:

Abstract

I submitted the following abstract to the conference:

Whether proprietary or open, development of software doesn't require much beyond a compiler or interpreter to build and run the code, and a developer to write it. Initial sales (or usage) depend more on marketing than quality, and some manage to use only the above-mentioned combination to build high-quality software. But far more often, quality is achieved by the use of some or all of these suggested practises. Exact tools or implementation are mostly unimportant, but examples will be discussed for each suggestion.

The Linux kernel development team managed to avoid version control for many years, but only immense effort, talent, and dedication maintained such a high level of quality in a project of the scale of the Linux kernel. CVS is the "old faithful" of open source version control, but alternatives are avoiding the design pitfalls that make it inappropriate for certain types of development.

Extreme programming, and other development methodologies, suggest that tests will increase the productivity and quality of development - that writing a test and then writing the code will take less effort and have less bugs than writing the code alone.

Automated builds are a staple of many large open source projects - FreeBSD and the Mozilla project make use of them to ensure that the code still compiles and to track where errors are introduced into the build. FreeBSD uses the same mechanism to manage the entire release process with a single command, generating CD images and FTP trees populated with packages.

Eventually, manual bug tracking will overwhelm a development team. Bug tracking systems ensure that bugs are never forgotten, that reminders are sent regularly, and provide a list of non-bugs or never-to-be-fixed bugs that will not be discussed again.

In all categories, open source software exists to assist towards development of quality software and will be discussed. Examples of open source project using such software are readily available, and that usage is discussed as a case study.