Ask Slashdot: Corporate Open Source Policy?
Phiro69 (3782875) writes Does anyone have any best practices/experience they would like to share on how their corporate entity put Open Source Software out on the Internet? Historically at my engineering firm, we've followed a model where we internally build a 1.0 release of something we want to open source, the product owner and legal perform a deep review of the release, and we push it out to a platform like Github where it typically sits and rusts.
Our engineering interns have started down a new path: Using Github from the beginning (I set the repo private), and, after a bare minimum is completed, flipping the repo public and continuing development in the open using Github. How do PO and Legal reviews fit in? How can we ensure we're not exposing ourselves or diluting our IP if we're doing semi-constant development, publicly, sans a heavily gated review process? What does everyone else do? Or does corporate America avoid this entire opportunity/entanglement/briar patch?
Our engineering interns have started down a new path: Using Github from the beginning (I set the repo private), and, after a bare minimum is completed, flipping the repo public and continuing development in the open using Github. How do PO and Legal reviews fit in? How can we ensure we're not exposing ourselves or diluting our IP if we're doing semi-constant development, publicly, sans a heavily gated review process? What does everyone else do? Or does corporate America avoid this entire opportunity/entanglement/briar patch?
Having a solid Contributor License Agreement process in place would probably be a good idea. That way, it's clear who owns the code that comes in and encourages people to contribute while defining a (necessary evil) process for doing so. You'll lose random passers-by, but just one passer-by who gets litigious could be more of a headache than it's worth.
Colin Dean Go a year without DRM
"Historically at my engineering firm .. the product owner and legal perform a deep review of the release .. How can we ensure we're not exposing ourselves or diluting our IP"
..
Fire all your IP lawyers and hire on more developers, else stop trying to FUD Github
I'd do some research and find out what other projects have had issues with. In particular, make sure you actually own the copyrights or have a distribution license for everything you intend to open source. All it takes is one lazy cowboy coder and Google to screw your whole project. Also, understand the license you intend to distribute under, and what licenses are incompatible with it.
My company has released a handful of open source projects that are mostly used by us. But we just release them as open source from the start. Part of the rationale behind that is that each of the libraries are meant to implement some kind of protocol or perform some specific, but generic, functionality that we wouldn't mind feedback on early in the development process. So, we just do them as open source from the first line of code that is committed. No legal review, just the developers that will be working on the project and one manager signing off on doing it this way. We're not a huge company, but we're a couple hundred employees strong and the development team basically makes the call, since they are the experts.
Even if I knew that tomorrow the world would go to pieces, I would still plant my apple tree. -Martin Luther
First let me say, there is nothing wrong with open source. But if you and your business associates are intent on giving stuff away for free, there's no reason to hang yourself with the GPL. Just bring your code and operations manual to the next convention and leave them on the table. At least your competitors might buy the drinks later.
The only way around a review process is to keep the development work walled off from production entirely. That way there's no risk of cross-contamination and you'll only have to do reviews when bringing stuff in, and not pushing it out.
Or does corporate America avoid this entire opportunity/entanglement/briar patch?
Yes, to a large degree, and they're stuck in the last century. IP has always been an imaginary government monopoly meant to enhance the business interests of a certain caste; originally that was the author/inventor, but that ship has long sailed - now it's corporate profits almost exclusively (and you may find exceptions that prove the rule).
The next century will be on the Internet and artificial scarcity will be seen as a quixotic relic. Understand this and move forward - businesses that do will outcompete businesses that don't because they're going with nature, not against it. You do still need to keep yourself out of courts, because the death throes of the old corporations will be violent, but use your legal team as protection from other corporations, not protection from customers.
If your company cannot embrace the future and *you* get it, then that's a great signal to move on to a place with a positive slope. These are, of course, long-term trends, but fighting the brushfires of a losing battle is no way to spend one's life.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
If you just barf your code on the internet, it feels like you are just asking the rest of the world to take it over for you. Building publicly from the start (or very early) allows you to build such a community, which will give you a much better chance that the code will survive outside just your team working on it and continuing to dump more code online.
like Exago (http://www.exagoinc.com/) that will try to extort money from you if they catch you open sourcing software, we simply stopped doing it. It's just too risky.
In Exago's case, they claimed that because we were graphing SNMP data that we had to pay them money. Unfortunately they got my home number and would call me at 4am each night. They are simply toxic.
Just sayin'
Your question is far too generalized. You don't mention what your product is, what your firm does, or what the risks you're trying to protect from. Nobody can give you any meaninful advice unless you provide real details. What is it you're afraid of exposing? What's the IP you're afraid of diluting? Is your company a 100 person shop, or a 10,000 person shop? It matters.
Those risks may be illusory, depending on what this code is. I've had a few project I'd like to release as OSS, but there's zero IP dilution and zero risk of exposing anything. Despite what people tend to think, code isn't a commodity. The specifics matter quite a bit. The only answers you're going to get with the information you provided are very generalized useless ones.
AccountKiller
What incentive does the typical company have to make their software open source?
Make your public repo controlled by legal so they approve what goes out. Have the public one be a fork of your private repo. So you make changes to the private repo, have legal review, and push approved code to the public one.
Your comment about "pushing it to a platform like Github where it typically sits and rusts" is telling. What do you think will really change if you just shift when you push your code to Github?
In a nutshell, "if you build it, they will come" is a nice fantasy, nothing more.
Even very high-profile open source projects often have very few contributors outside of the companies that first created them.
And I don't think the problem is that these projects don't get community developers on board soon enough. Why would a hobbyist or other unpaid developer risk devoting time and resources to a project that is mostly vaporware?
The problem is that it's very difficult to get unaffiliated developers to commit to working on something -- especially business software -- when there's no real incentive other than "someday this may end up being a product that your company might decide to evaluate to see if it might be possible to use instead of the commercial alternative that it has already sunk capital into and has been using for the last five years."
Breakfast served all day!
Do not become the next Sergey Aleynikov. He was acquitted, but not without a huge impact on his life.
One thing I notice is that sometimes a company decides to open source some in-house crapware because they heard its a good way to get free publicity and perhaps attract more developers. Quite often the project ends up with zero adoption because its not that interesting and often there's a bunch of existing projects with already built communities that are doing more or less the same thing. Or the focus is so narrow that it solves nobody's problem. What usually tell people is that its better to learn to contrib to an existing project rather than release some vanity ware and try to pretend the company is all hip and cool because you have a github account.
Its also a good way to get around the legal review and all, since generally if you are just sending patches to an existing project, typically bug fixes and feature enhancements there's not a big need for it. I think its easier for rusty management to accept you contributing documention, test cases and bug fixes to an already existing project than to get them to allow you to take some big in house project and get it out in the open.
If you build your in house stuff around existing open source projects and really leverage open source at all points in the stack (from automation and up) you will find lots of good ways to contribute back to those projects and you will find your custom code is mostly glue and company 'secret sauce' that you'd never give away anyway.
Peace, or Not?
Exceptions don't prove the rule, the probe the rule. Having an exception proving the rule doesn't make any sense at all.
Does your really have a strong incentive to go OSS? Open source does not automatically make everything better. Often it is like handing the knife to your competitors.
Pushing to Github is nice and all but for a project to get any type of traction you need to tell people about what problem it helps to solve, show them how, and ideally make it easy for them to try it. Something up on a corporate blog. Compare it to other solutions. Have an instructional site in your space review it and write about it.
Unless you can show what it does and then differentiate why it's better than existing options, rust is exactly what will happen.
"Don't teach a man to fish, feed yourself. He's a grown man. Fishing's not that hard." - Ron Swanson
Quite often the project ends up with zero adoption because its not that interesting and often there's a bunch of existing projects with already built communities that are doing more or less the same thing. Or the focus is so narrow that it solves nobody's problem.
And those are the better ones! The really bad open-source dumps don't even really build or work outside the original company's complex production environment, and don't have any documentation for how to set up such an environment.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
My former company's policy was to remove all comments and documentation before making the code public.
My corp freaks out when I just want to use a library/piece of code I found on GitHub.
I made my first open source contributions back in 1987, and I did so not by launching a new project, but by contributing to an existing project (GNU). Over time, those contributions took on a life of their own (GNU C++). It was quite some time (after starting Cygnus) that we had any need to launch new open source projects (such as automake, configure, Deja GNU, etc.) My recommendation for corp OSS folks is (1) figure out how to make what you need out of existing projects and do that. If/when you reach those limits, explain the new problem you are trying to solve, see if there's interest (or even an existing solution), and then work from there. But never stop contributing to the ecosystem that likely surrounds the new code you're trying to launch. If you only ever work on your own code, people will reciprocate by only working on their own code toward you. If you work on your own code and help improve the code that lives around it, you may well find many who want to join your project, too.
(disclosure: I work for IBM, but these are MY comments, not theirs)
IBM has done a lot in this area, and they even have publicly posted documents around subjects like these. (See http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP101260 or http://www-03.ibm.com/linux/ossstds/ for examples.)
They do have a lot of legal reviews around the use and even viewing of code, so it is not something taken lightly.
It can be a legal mine field, but it can also be a beautifully rich and prosperous garden.
Or for the really, really bad ones, the dump had a bunch of 3rd proprietary libraries ripped out of it with nothing to replace them, so there was a bunch of poorly documented catchup work to be done before anything would come close to compiling.
Save Maine's economy: write stuff down. All comments are exclusively my own, not my employer.
You are technically incorrect; the worst kind of incorrectness.
The distinction between the two words is far more recent than the phrase in question. Both words are very nearly identical in the current lexicon, and both share the same origin, the latin probare. The phrase itself derives from Roman jurisprudence, in full: exceptio probat regulam in casibus non exceptis, “the exception proves the rule [exists] in cases not excepted.” For example, if I told you that British naval officers were privileged to drink the King's health while seated, you would be able to infer from the exceptional case that the general rule is to drink the King's health while standing.
It's difficult to enumerate the various senses in which you are wrong: it's almost an achievement in itself.
You really do need to initially invest in building some community, if you want a community who will provide bug fixes and new features for you. It doesn't need to be a large community. Two or three or other companies / developers using the software, sharing development costs, can make a big difference. That can provide the critical mass to keep the project going and attract occasional contributors.
My primary job is working on specific open source software. The larger framework is used by many organizations. Some modules are used by three to five organizations. If three other organizations are using it and helping with development, that's a lot of work I don't have to do.
No, what only need is more women policy.
At Odoo, the Open Source ERP, we work with around 1000 partners and/or customers that have a dedicated IT department developing Odoo modules/apps. From my past experience working with them, I would say that it's less about contribution than collaboration.
Some companies think that it's good to contribute to open source (for different reasons) and they just do that. It's usually a big failure as nobody uses their code and they get nothing from having published their development. The main reason is that something that has been developed for your own need rarely fit others needs (in terms of quality, feature, collaborative platform, ...).
If you think about it in terms of collaboration (working on github since the beginning, blogging about what you do, answer on issues, tweets, ...) you can get benefit from your open source contributions. Those benefit are mostly about small contributions (bug reports, translations, new features) or visibility. The key is to make it easy to on board new users/developers: work on the platform they already use (github), use transifex for translations, ...
I think it's a bad idea to start your repository private at the beginning. People are always afraid to "show to the world" an unfinished development but it's not a real issue if you are transparent about the status of the project. If you want people to feel engaged in your project, you have to on board them since the beginning. And contributions are more valuable if they come earlier in the development process. We noticed we get a much better engagement with our communities when we engage them in the very early stage of the project, at the analysis phase.
Protecting your IP is quite easy: choose the right licence and set a Contributor License Agreement. Merge Pull Requests only if they agreed on your CLA.
Fabien
That's proven literally a 100++ times in this exchange http://it.slashdot.org/comment...