views:

30

answers:

2

How do you go about open sourcing - and then managing - the code developed from within your company?

This has happened quite a bit: Google, Google Android, RedHat, Canonical/Ubuntu, Apple, Apple CUPS etc.

In my company we've developed some ancillary code to help us make the products that we sell.

We're not in the business of developing this ancillary code and are not in the position to develop it further.

Also, we may choose to replace it with something off the shelf for our own use.

But we'd like to maximise the opportunities out of our investment (staff time) in developing the ancillary code.

The code is rough-around-the-edges and not in a polished state for selling. Given that we don't wish to invest in it further, open sourcing is an option whereby the public developer community at large could develop it further and to their benefit.

As it is not our core business, open sourcing the work would not be a threat (unless it helps a competitor make their product easier).

So the benefit of open sourcing is not so much about helping us save costs with development but more about what we might get for free by allowing others to develop it.

So how do you go about releasing the code - and then managing it e.g. running forums, approving patches to the main branch, prioritising features, handling fork of the code situations, preventing others taking ownership of the work.

A related answered post is here: http://stackoverflow.com/questions/1914104/how-to-license-code-source-but-keep-control-of-it/1914145#1914145

An unanswered post is here: http://stackoverflow.com/questions/2913347/guidelines-for-open-sourcing-code

A book on the subject: Intellectual Property and Open Source

http://oreilly.com/catalog/9780596517960

Thoughts?

+1  A: 

You might try a book on running open source projects in general, such as Producing Open Source Software.

It's also worth keeping in mind that a lot of the issues you're asking about (running forums, prioritizing features, handling fork of the code situations, preventing others taking ownership of the work) are only issues if your project attracts external developers. That's far from guaranteed when releasing code, so it might be premature to worry about them. (In particular, depending on how "rough-around-the-edges" the code is, you may find difficulty getting anyone interested at all; personally, at least, I'm rarely motivated to figure out another developer's undocumented, possibly incomplete-for-my-purposes code unless the benefits are very compelling.)

Instead of trying to determine all of these issues ahead of time, it might be better to determine a rough idea of how much time you're willing to invest in managing the open source project and what kinds of benefits you hope to expect, then adjust your approach to the project as you go based on those goals and on what kind of interest you're getting.

Josh Kelley
+1 upvoted your answer for the sound advice. I'll keep the question open for a bit longer to attract further comment and then decide on which to accept. Thanks for your contribution.
Rob
I agree with your thoughts on likelihood of external developers contributing and here's an article on a survey about contributions to open source: "Open source: A hardy few do all the work - Where are Google and IBM when you need them?" "[The census of the Gnome project] shows a large 'head' and a long 'tail'... Out of 468,000 changes committed, 65 per cent were made by the top five per cent of developers...": http://www.theregister.co.uk/2010/08/02/gnome_census/
Rob
I'm glad you provided both answers so far because if I had to accept now, I'd want to accept both, so as not to disappoint and give equal credit for. Although my question was asking for case studies, I also wanted to know how to do it, SO flags up my question as being subjective when How is in the question, so by making the same question concrete through asking for case studies I hoped to achieve the same. Thanks again. I'll follow up over the next few days.
Rob
Another article about setting legal boundaries in Open Source - "Open Source Indemnification: Why You Should Care": http://www.activestate.com/blog/2010/09/open-source-indemnification-why-you-should-care
Rob
@Rob - I'm not sure I'd read too much into the GNOME Census article. It's arguing that projects need core maintainers, so even if you open source some code, you should expect to remain a core maintainer. However, if you say that 65 percent of contributions were made by the top 5 percent of developers (who are the core maintainers), then that's saying that for every core developer, there are 19 outside contributors, and accepting outside contributions increases the rate of development (# of changes) by approximately 50%. That's still pretty impressive.
Josh Kelley
Accepted this answer as it talks of the 'ins' and 'outs' of my proposed endeavour, although I had asked for case studies, this answer that I am accepting is mainly what I'm looking for as well as the studies. Thanks for all your accompanying comments too, they add to the answer.
Rob
+1  A: 

You asked about case studies in particular (of commercial companies that have open sourced code supporting their commercial products). Here are examples I know of (marking as community wiki, so feel free to add others):

  • Google Test - the Google C++ Testing Framework, used internally for Google tools. External contributors must sign a Contributor License Agreement to minimize legal and copyright concerns (I've seen this approach with other projects as well), and external patches must adhere to the google-styleguide and must pass code review. The lead developers are willing to reject patches that don't meet their goals and are willing to debate the merits of these goals on the mailing list. The lead developers are currently decreasing their involvement in the project (due to other priorities at Google) and are encouraging more community involvement to take their place.
  • libview - "VMware's Incredibly Exciting Widgets." GTK widgets maintained as a Sourceforge project and used within (older versions of?) VMware Workstation.
  • Atlassian Seraph - Atlassian is an open-source-friendly company, and they released as open source the web application security framework that their commercial products use.
Josh Kelley
+1 upvoted your answer for the case studies I asked for. I'll keep the question open for a bit longer to attract further comment and then decide on which to accept. Thanks!
Rob
Adding: www.cups.org - Apple's open source printing system for Unix and Linux based systems: Common Unix Printing System.
Rob