There is more to open source than a licence. It is also a development methodology. This page links to various resources about different aspects of open source development.

TableOfContents(2)

Support

Documentation

Documentation is key to the success of your project. If your users can't use the software then they will simply leave. If your potential developers do not know how to contribute they simply won't bother.

Mailing Lists

Code Development

Version Control

UsingSubversion - Subversion is a very common version control system that allows multiple people to work simultaneously on the same documents and code.

SoftwarePatch - Working with patches

Team Communications

["SVN Commit Messages"] - SVN can send out emails on every commit, great for peer review and keeping up to date

IPR Management

ContributorLicenceAgreements - a contributor licence agreement helps ensure that all contributions to the project can legally be included

Build Automation

Dependency Management

ApacheIvy

Issue/Bug/Patch Tracking

Testing

Quality is key. This does not mean shipping without bugs, that is close to impossible, what it does mean is shipping with no known bugs (actually shipping early releases with known. but manageable bugs can be ok too). Testing is the way to ensure you are shipping (near) bug free code. Testing falls into two camps, user testing and automated testing. Both have their strengths and weaknesses.

User Testing

Automated Testing

[http://tapestryjava.blogspot.com/2007/05/free-and-excellent-code-coverage-for.html EMMA] code coverage plugin for Eclipse

Release Early, Release Often

Open source development is all about attracting users and developers. It is therefore important to release the software early, and as frequently as possible. Many people have difficulty with this concept, asking questions like "won't users be put off by the bugs?" Well, no, that is the point of open source, we are honest about our bugs and, if it really bothers you, you can fix it yourself (or pay someone to fix it).

Bugs exist in all software, not just open source. As long as you don't claim the software is more complete than it really is users will be happy to work around its limitations, safe in the knowledge that it is temporary.

More on ReleaseEarlyReleaseOften.

Release Management

["Release Management"]

[wiki:ReleasingOpenSourceSoftware Releasing Open Source Software]

[http://en.wikipedia.org/wiki/Release_Management_method Wikipedia on Release Management Method]

[http://www.ics.uci.edu/~wscacchi/Papers/Open-Source-Research/OSSE3-Erenkrantz.pdf Release Management Within Open Source Projects by Justin R. Erenkrantz]

[http://www.tldp.org/HOWTO/Software-Release-Practice-HOWTO/ Software Release Practice HOWTO by Eric Steven Raymond]

Release Packaging

You should make the installation of your software as easy as possible, ideally users should be able to download and install from a binary, whilst developers should have a clear document describing how to configure their environment.

Installers

IzPack - an installer generator for the Java platform.

Related Documents

OpenSourceDevelopmentInAction - a few examples of how doing it right saves time and effort later

Creative Commons License
The content of this wiki is licensed under the Creative Commons Attribution-ShareAlike 2.0 England & Wales Licence.

OSS Watch is funded by the Joint Information Systems Committee (JISC) and is situated within the Research Technologies Service (RTS) of the University of Oxford.