Free Software Project Management HOWTO

Benjamin "Mako" Hill

      mako@debian.org
    

Revision History
Revision v0.3.118 June 2001Revised by: bch
Revision v0.35 May 2001Revised by: bch
Revision v0.2.110 April 2001Revised by: bch
Revision v0.28 April 2001Revised by: bch
Revision v0.0127 March 2001Revised by: bch
Initial Release

This HOWTO is designed for people with experience in programming and some skills in managing a software project but who are new to the world of free software. This document is meant to act as a guide to the non-technical aspects of free software project management and was written to be a crash course in the people skills that aren't taught to commercial coders but that can make or break a free software project.


Table of Contents
1. Introduction
1.1. Copyright Information
1.2. Disclaimer
1.3. New Versions
1.4. Credits
1.5. Feedback
1.6. Translations
2. Starting a Project
2.1. Choosing a Project
2.1.1. Identify and articulate your idea
2.1.2. Evaluate your idea
2.1.2.1. Finding Similar Projects
2.1.2.2. Deciding to Proceed
2.2. Naming your project
2.3. Licensing your Software
2.3.1. Choosing a license
2.3.2. The mechanics of licensing
2.3.3. Final license warning
2.4. Choosing a Method of Version Numbering
2.5. Documentation
2.5.1. Man pages
2.5.2. Command line accessible documentation
2.5.3. Files users will expect
2.5.4. Website
2.5.5. Other documentation hints
2.6. Other Presentation Issues
2.6.1. Package formats
2.6.2. Version control systems
2.6.3. Useful tidbits and presentation hints
3. Maintaining a Project: Interacting with Developers
3.1. Delegating Work
3.1.1. How to delegate
3.1.1.1. Allow a larger group of people to have write access to your CVS repository and make real efforts towards rule by a committee
3.1.1.2. Publicly appoint someone as the release manager for a specific release
3.1.1.3. Delegate control of an entire branch
3.2. Accepting and Rejecting Patches
3.2.1. Technical judgment
3.2.2. Rejecting patches
3.2.2.1. Bring it to the community
3.2.2.2. Technical issues are not always good justification
3.2.2.3. Common courtesy
3.3. Stable and Development Branches
3.4. Other Project Management issues
3.4.1. Freezing
3.5. Forks
4. Maintaining a Project: Interacting with Users
4.1. Testing and Testers
4.1.1. Automated testing
4.1.2. Testing by testers
4.2. Setting up Support Infrastructure
4.2.1. Documentation
4.2.2. Mailing lists
4.2.2.1. Separate lists
4.2.2.2. Choose mailing list software well
4.2.3. Other support ideas
4.2.3.1. Make your self accessible
4.2.3.2. Bug management software
4.3. Releasing Your Program
4.3.1. When to release
4.3.2. How to release
4.3.3. Alpha, beta, and development releases
4.4. Announcing Your Project
4.4.1. Mailing lists and USENET
4.4.2. freshmeat.net
Bibliography
A. GNU Free Documentation License
A.1. 0. PREAMBLE
A.2. 1. APPLICABILITY AND DEFINITIONS
A.3. 2. VERBATIM COPYING
A.4. 3. COPYING IN QUANTITY
A.5. 4. MODIFICATIONS
A.6. 5. COMBINING DOCUMENTS
A.7. 6. COLLECTIONS OF DOCUMENTS
A.8. 7. AGGREGATION WITH INDEPENDENT WORKS
A.9. 8. TRANSLATION
A.10. 9. TERMINATION
A.11. 10. FUTURE REVISIONS OF THIS LICENSE
A.12. Addendum