Welcome!

Open Source Authors: Maureen O'Gara, Jeremy Geelan, Liz McMillan, Reuven Cohen, Lavenya Dilip

Related Topics: Open Source

Open Source: Article

The Unofficial How-To of Open Sourcing

Best practices and lessons learned

5.  Build the Open Source Project Infrastructure
As part of the open sourcing process, you need to build the infrastructure for your project which allows the project to be visible to the outside world and offer communication and software development tools to the project team and to the open source community. A typical project infrastructure includes a web site, a code repository system, one or more project mailing lists, a bug tracking system, a release or patch tracking system and a feature request tracking system.

  • Web site: The web site of any code contribution must specifically:
    - describe the purpose of the contribution
    - explain the problem the contribution solves
    - explain how the contribution works
    - describe the benefits of the contribution to the common user
    - provide test cases and test scripts so that open source developers can experiment with the contribution and see its benefits
    - advertise news related to the project
  • Code repository system: Two popular code repository systems are Concurrent Versions System (CVS) and Subversion (SVN). Select one and populate it with your source code. It is also useful to define a coding standard and enforce it.
  • Mailing lists: You need to host one or more project mailing lists. For instance, your open source project might require a mailing list for developers involved in the project (whether they are your company's developers or external developers from the open source community), another mailing list for the user community, and possibly a third one for quality assurance or software testing. The goal of having more than one mailing list is to keep discussions focused. Typically, the core team of the project would be subscribed to all mailing lists, while other contributors would be subscribed to the list that is of most interest to them.
  • Bug tracking system: A bug tracking sys-tem allows individuals or groups to report bugs against your project; it allows you and others to keep track of outstanding defects.
  • Release or patch tracking system: A release tracking system allows individuals or groups to keep track of your project software releases or patches.
  • Feature request tracking system: You should define a process for users to sub-mit feature or enhancement requests and select an appropriate request tracking system.
SorceForge.net offers this entire infrastructure for open source projects, for free. Thousands of open source projects are currently hosted on that site. As an example, you can visit http://sourceforge.net/projects/ppacc/, the web site for a Motorola contribution to the Linux kernel called Precise Process Accounting, and examine all the features provided by the web site.

6.  Announce the Project
Once you have created your project infrastructure, you are now ready to announce the project to the world and invite people to provide feedback and contribute to the project. The primary method used to announce your project is to send an email to the relevant mailing lists. Projects can also be announced at conferences, through press releases, or through articles published in Enterprise Open Source Magazine, or any other Linux focused publication.

When making the announcement via mailing list there are some general guidelines to respect:

  • Use subject line "[ANNOUNCE] X" to announce the contribution where X is the name of the contribution
  • Give some background and introductory text
  • Include motivations for your contribution
  • Explain how your contributions is different from existing or similar code
  • Explain how people will benefit from it
  • Don't attach any documents in the email; instead point to a web site.
7.  Follow Open Source Development Model and Community Practices
Now that you have announced your project to the world and hopefully have attracted the attention of open source developers, it is your team's responsibility to respect and follow the open source development model and open source best practices. Below we outline the most important practices:
•  Listen to the open source community: The feedback received from open source developers over the project mailing list can sometimes be negative. Don't worry about it. It is important to review the feedback and understand what the developers are trying to say. It is best not to take such negative feedback personally. After all, the intention is to improve code quality through intensive review. Take the good suggestions you receive and incorporate them into your code. If there are solid technical reasons why the suggestions are not valid then explain those reasons over the mailing list.
•  Embrace code reuse: Open source developers promote and encourage the development of reusable software. In line with this practice, if someone has already implemented the capability or feature you need, you can use it and build on top of it. In the event that you are starting a new project from scratch, keep software reuse in mind and develop code in modules that can be used by others and by you without many modifications.
•  Be open: It is important to be open in terms of disclosing problems, bugs and challenges. This openness is much appreciated and is also expected by the open source community, who will help you with immediate workarounds and fixes.
•  Release early and release often: Open source projects tend to make software releases available early to the user community and then issue frequent updates as the software is modified. This practice is called "release early, release often". The open source community believes that this practice leads to higher-quality software because of peer review and testing by a large base of users who will report bugs and contribute fixes. A side benefit of having many people looking at the code is that the code is reviewed for adherence to coding style; fragile or inflexible code can also be improved because of these reviews. Furthermore, this practice allows the release of small incremental changes that are easier to understand and test.
•  Follow community coding style: The open source community follows a strict coding style to make it easier to understand the code, review it and revise it quickly.

8.  Be Visible
It is important to be active and visible not only when you first launch your project but throughout your project's lifecycle, as this will allow you to rally an increasing number of contributors. You can write articles about your project in open source magazines such as Linux Journal, Linux Magazine, Linux Planet and Open Source Enterprise Magazine; you can attend and present at open source community events and conferences such as the Ottawa Linux Symposium and Melbourne's linux.conf.au conference.

9.  Be a Good Open Source Citizen
Being a good open source citizen starts by being part of the open source community, contributing to the community, following and respecting its practices and processes, and leading by example, i.e., getting things done by doing them.

Conclusion
This article reviewed some of the best practices to follow when open sourcing a proprietary technology. Many companies have tried to go the "open source way". Some have bailed after failed trials; other companies are not doing so well and others succeeded and are being regarded as raw models for working with the open source community. It is your responsibility to learn, understand and follow the working methods and best practices of the open source community.

In a follow up article we will describehow we went through the described process to open source a contribution from Motorola to the Linux kernel called the "Precise Process Accounting", which is available today from: http://sourceforge.net/projects/ppacc/.

Stay tuned!

More Stories By Ibrahim Haddad

Dr. Ibrahim Haddad is a seasoned telecommunications expert with over a decade of multinational experience in infrastructure, carrier grade, Linux mobile platforms, software development, standards, industry global initiatives, Open Source software and legal compliance. Dr. Ibrahim Haddad is currently Director of Open Source at Palm. His previous professional experiences include Ericsson, the Open Source Development Labs and Motorola. Haddad is the author of “Practical Guide to Open Source Compliance” to be published early 2010 and co-author of two books on Red Hat Linux and Fedora. Dr. Haddad is a Contributing Editor of the Linux Journal and served on numerous conference and review committees. Haddad received a B.Sc. and M.Sc. in Computer Science from the Lebanese American University (Byblos, Lebanon) and a Ph.D. in Computer Science from Concordia University (Montreal, Canada).

More Stories By Frederic Benard

Dr. Frédéric Bénard is Engineering Manager at Motorola and leads the Open Source Software Center of Excellence, which is part of the Motorola "Embedded Systems, Open Source and Linux Technology Group". He holds a B.Sc. in Physics from McGill University, a M.Sc. and a Ph.D. in Physics from the University of Toronto, and an MBA from McGill University.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.