views:

167

answers:

6

Suppose several companies want to share a set of core libraries, and build their own products on top of them. Also, each company will be updating the core libraries. How would I go about licensing the core libraries? I'm thinking that I'd like something like the MIT license, but rather than having an open source project shared with the world, it would just be shared between these companies.

+3  A: 

that might work - until companies start 'proprietary' extensions that they don't want to share

an alternative might be to create another 'technology' company that owns the source code, and that licenses the use of the source code to the other companies with the stipulation that modifications get reflected back to the holding company - which decides whether to incorporate them or not

it is possible for multiple versions/branches to be active at once, independent of the 'core' product source; without the central authority the 'core' will likely get diluted/polluted/corrupted

Steven A. Lowe
+2  A: 

You probably have to think about whether the core will be a committee-based effort or if there is a "primary" owner that managers the code base.

You'll also probably want to think about new entries into the consortium and exit for members as as well.

Is there one company that has contributed more so far? in that case maybe the othes "buy in"?

You'll need to work out the details like source access, releases, merging, etc.

Without more details about what you want to do there's not a lot of specific help. Mainly you have to figure out what you want to do.

It's ok if it is fluid as well - as long as all the members understand and agree to it.

You could have different levels of participation - some members can contribute back to the product, some just get the source, etc.

EDIT

As Steve pointed out - there is a huge potential for this to be a nightmare to manage - with branches all over.

Defining a common goal and ensuring that it really makes sense for all involved is the first step. Without that it is useless to continue with the "everyone contribute" model.

Tim
+5  A: 

Have your lawyers draw up some legal documents outlining exactly what the specifics are about how the code will be shared. While this probably won't be the most popular answer, it's probably the most correct thing to do in most business situations. Make sure that all the terms are laid out before hand so that you don't get into any arguments over who's code is who's.

Kibbee
+1 for suggesting getting lawyers involved in a process that has to be legally sound.
David Thornley
I would also add that it's worth finding a lawyer who knows something about software and software licensing.
Will M
+1  A: 

I think you should make some very hard agreements else you can easily enter the path of problems:

  • Company A changes the library which breaks the build of company B. Who is goint to solve it?
  • Company A spends a lot of time fixing problems. The other companies are lazy but thankfully use the bug fixes.
  • A major feature must be build, company A wants variant X, company B wants variant Y, unfortunately only one variant can be build.

A better solution could be, raise a new company that is owned by the other companies. The new company is responsible for the library. The other companies pay for features and maintenance. Eventually, the new company can go public with the library, creating a new cashflow.

Gamecat
A: 

While not useful, I'd like to point out that there are really only a few types of people who are going to read this question:

  1. Laymen who cannot give you a great answer to your technical legal question;
  2. Lawyers who will not give you a great answer to your technical legal question; and
  3. Everyone else (catchall for those willing to practice law without a license or to perhaps establish a lawyer-client relationship over the internet).

Really, this is a legal question, get a lawyer. You wouldn't call a lawyer to administer your servers, don't call sysadmins to answer legal questions.

Richard Campbell
Thanks for the advice. I know that I need to talk to a lawyer, but I would like to have some ideas before I do. They charge by the hour you know.
Lance Fisher
+2  A: 

Licensing software is more than just "who owns what". A great license will highlight the methods for issue management as they arise during development.

Think of it this way, if you create an inflexible license, the parties will attempt to work their way around the wording to achieve their goals - creating branches in the code, etc.

What needs to be in the license is the methodology for creating/developing/improving the core libraries. E.g. who is involved when the core libraries are altered, what if it negatively affects the other company's software, what is the chain of escalation.

If the license is flexible enough, it will help to increase the chance of success than hinder it.

Also, there are people on Stack Overflow that are Lawyers AND Computer Engineers!

Jordan L. Walbesser