“The solution to these problems is to always use a release branch. A release branch is just a branch in the version control system (see branch), on which the code destined for this release can be isolated from mainline development. The concept of release branches is certainly not original to free software; many commercial development organizations use them too. However, in commercial environments, release branches are sometimes considered a luxury—a kind of formal ‘best practice’ that can, in the heat of a major deadline, be dispensed with while everyone on the team scrambles to stabilize the main tree.” (Fogel, p. 122)
A nice discussion of how version control software enables this behavior is provided. There are also political aspects to the release schedule, which relates back to the discussions on Infrastructure and Communications above.
Fogel provides a fascinating discussion on what really motivates programmers, what sort of tone one should adopt when requesting project members to perform work, and how to express both praise and criticism. While his comments are intended to apply to the realm of Open Source projects, managers of programmers in any venue would do well to peruse this chapter closely.
LICENSES, COPYRIGHTS, AND PATENTS
Fogel finishes up with a discussion about legal issues as they apply to Open Source licensing. He makes the distinction between the terms free software, Open Source, FOSS, F/OSS, and FLOSS. He also discusses the vital area of copyright assignment and code ownership – the team would be well served thinking of these issues sooner rather than later.
ON-LINE RESOURCES FOR OPEN SOURCE PROJECTS
THE SOURCEFORGE.NET SITE FOR THE OS3A PROJECT
Shown above is main page of the Open Source SAS® Software Applications project on SourceForge.net. Each of the areas shown across the page at the bottom of the orange section has a menu with several options like the Admin menu shown on the right.
The site offers all of the technology needed for a project recommended by Fogel as described above. Within this main site, several quasi-independent sub-projects could be developed. Some of the sub-projects could be common libraries that are used by several applications that are specific to a particular domain.
FUTURE OF THE OS3A PROGRAM – WHAT IS TO BE DONE?