YOUR FEEDBACK
SOA Feature Story: Real-Time SOA Starts with the Messaging Bus!
Gerardo Pardo-Castellote wrote: Regarding the previous comment about "TCP ...
AJAXWorld RIA Conference
$300 Savings Expire July 25
Register Today and SAVE!


2007 West
GOLD SPONSORS:
Active Endpoints
Your SOA Needs BPEL for Orchestration
BEA
Virtualized SOA: Adaptive Infrastructure for Demanding Applications
Nexaweb
Overcoming Bandwidth Challenges with Nexaweb
TIBCO
What is Service Virtualization?
SILVER SPONSORS:
WSO2
Using Web Services Technologies and FOSS Solutions
Click For 2007 East
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
SYS-CON.TV
TOP LINKS YOU MUST CLICK ON


The Unofficial How-To of Open Sourcing
Best practices and lessons learned

Digg This!

Page 2 of 2   « previous page

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!


Page 2 of 2   « previous page

About Ibrahim Haddad
Dr. Ibrahim Haddad is Director of Technology in the Software Operations Group at Motorola Inc. focusing on embedded and open source technologies and roadmaps.

About 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.

ENTERPRISE OPEN SOURCE MAGAZINE LATEST STORIES . . .
SOA Company IONA Partners with Chariot Solutions
IONA has announced that Chariot Solutions has become a FUSE Partner. Chariot Solutions, as a FUSE Partner, will resell IONA's FUSE family of Open Source services and solutions to address customers' enterprise Open Source requirements.
IONA and Chariot Solutions Accelerate Adoption of Enterprise Open Source
IONA announced that Chariot Solutions has become a FUSE Partner. Chariot Solutions, as a FUSE Partner, will resell IONA's FUSE family of Open Source services and solutions to address customers' enterprise Open Source requirements. As a FUSE Partner, Chariot Solutions' consulting custom
DeathWish Might Have Been a Better Name
As predictable as the bet that night will follow day, Apple sued a little widely watched wannabe Mac cloner in Florida called Psystar that's been selling a $399 box called Open Computer for the last few months.
Red Hat Solutions Deliver Flexibility and Reliability for InfoCamere
Red Hat announced that InfoCamere, an organization responsible for managing the IT systems that connect and secure over 100 Italian Chambers of Commerce, relies on Red Hat and JBoss solutions for flexibility, reliability and ease of use for its mission-critical systems.
Virtualization, Microsoft, Yahoo & Google
Citrix has tapped its VP of channels and emerging product sales Al Monserrat to replace its departing sales chief John Burris, who, as previously reported, is going to Sourcefire as CEO. A couple of years ago Monserrat was responsible for Citrix' North American sales. Meanwhile, Citrix
Zoho Signs Swisscom to Six-Month Pilot
Zoho, the online Office wannabe, has gotten Swisscom, the telephone side of the old Swiss PTT monopoly, to offer its 300,000 business customers a suite of Zoho's SaaS applications as part of a six-month pilot through its Teamnet portal. The Zoho Business suite, including Zoho Writer, S
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

SYS-CON FEATURED WHITEPAPERS

ADS BY GOOGLE