Presentation

The process of contributing to free software (also known as “open source software”) projects has special characteristics that have fostered the emergence of many practices, each of which influenced by various forces and entailing trade-offs.

In this book, we document such practices by means of patterns. The Free Software Patterns book is a open project, and you can contribute to it.

The Free Software Patterns are organized around clusters. Each cluster of patterns is presented as a simple pattern language, that is, a set of related patterns that may be combined to address a common set of problems. Our three clusters of patterns are:

The Selection Patterns and Contribution Patterns clusters are intrinsically associated with the nature of free software projects, and represent novel work by us.

Getting involved with a free software project, however, presents several similarities with the process of getting involved with any software project, such as investigating the existing documentation, building the system from its sources, reading the code, etc. For that reason, the Involvement Patterns cluster reuses several patterns from the excellent Object-Oriented Reengineering Patterns, by Serge Demeyer, Stéphane Ducasse and Oscar Nierstrasz, together with a few new patterns proposed by us. In general, Reengineering Patterns is a recommended companion to Free Software Patterns. We are grateful to Demeyer, Ducasse and Nierstrasz for having licensed their work under a Creative Commons license, allowing us to partially base our own work on theirs.

Table of Contents