Producing open source software
[http://producingoss.com/en/index.html]
Getting Started
- Starting From What You Have
- Choose a Good Name
- Have a Clear Mission Statement
- State That the Project is Free
- Features and Requirements List
- Development Status
- Downloads
- Version Control and Bug Tracker Access
- Communications Channels
- Developer Guidelines
- Documentation (user and developer)
- Example Output and Screenshots
- Canned Hosting
- Choosing a License and Applying It
- Setting the Tone
- Avoid Private Discussions
- Nip Rudeness in the Bud
- Practice Conspicuous Code Review
- When Opening a Formerly Closed Project, be Sensitive to the Magnitude of the Change
Technical Infrastructure
- What a Project Needs
- Mailing Lists
- Spam Prevention
- Filtering posts
- Address hiding in archives
- Identification and Header Management
- The Great Reply-to Debate
- Archiving
- Version Control
- Commit emails
- Use branches to avoid bottlenecks
- Singularity of information
- Authorization
- Bug Tracker
- Interaction with Mailing Lists
- Pre-Filtering the Bug Tracker
- IRC / Real-Time Chat Systems
- RSS Feeds
- Wikis
- Web Site
- Canned Hosting
Social and Political Infrastructure
- Benevolent Dictators
- Consensus-based Democracy
- When Consensus Cannot Be Reached, Vote
- Polls Versus Votes
- Vetoes
- Writing It All Down
Money
- Types of Involvement
- Hire for the Long Term
- Appear as Many, Not as One
- Be Open About Your Motivations
- Money Can’t Buy You Love
- Contracting
- Review and Acceptance of Changes
- Funding Non-Programming Activities
- Quality Assurance (i.e., Professional Testing)
- Legal Advice and Protection
- Documentation and Usability
- Providing Hosting/Bandwidth
- Marketing
- Remember That You Are Being Watched
- Don’t Bash Competing Open Source Products
Communications
- You Are What You Write
- Recognizing Rudeness
- Don’t Post Without a Purpose
- Productive vs Unproductive Threads
- The Softer the Topic, the Longer the Debate
- Avoid Holy Wars
- The “Noisy Minority” Effect
- Difficult People
- Handling Growth
- Conspicuous Use of Archives
- Treat all resources like archives
- Codifying Tradition
- No Conversations in the Bug Tracker
- Publicity
- Announcing Security Vulnerabilities
Packaging, Releasing, and Daily Development
- Release Numbering
- Release Branches
- Stabilizing a Release
- Dictatorship by Release Owner
- Release manager
- Packaging
- Format
- Name and Layout
- Testing and Releasing
- Candidate Releases
- Announcing Releases
- Maintaining Multiple Release Lines
- Releases and Daily Development
- Planning Releases
Managing Volunteers
- Getting the Most Out of Volunteers
- Delegation
- Distinguish clearly between inquiry and assignment
- Follow up after you delegate
- Notice what people are interested in
- Praise and Criticism
- Prevent Territoriality
- The Automation Ratio
- Automated testing
- Treat Every User as a Potential Volunteer
- Share Management Tasks as Well as Technical Tasks
- Patch Manager
- Translation Manager
- Documentation Manager
- Issue Manager
- FAQ Manager
- Transitions
- Committers
- Avoid Mystery
- Credit
- Forks
Licenses, Copyrights, and Patents
- The GPL and License Compatibility
- The MIT / X Window System License
- The GNU General Public License
- Is the GPL free or not free?
- What About The BSD License?
- Copyright Assignment and Ownership
- Doing Nothing
- Contributor License Agreements
- Transfer of Copyright
- Dual Licensing Schemes
- Patents