Ask Slashdot: Open Vs. Closed-Source For a Start-Up
atamagabakkaomae writes "Together with a friend, I am starting up a company in Japan that develops sensors used in motion capture. For these sensors we develop hardware and software. Part of the software development is an open-source toolkit called openMAT. We have some special purpose algorithms that we developed ourselves and that are better than our competitor's technology. I first wanted to publish everything open-source to spark interest in our company and to do development in collaboration with the community. My company partner disagreed and said that we will lose our technological advantage if we open-source it. So I eventually published only a part of the toolkit open-source and closed the most interesting code. How do you guys think that open-sourcing your code-base affects a company's business? Is it wrong for a small company to give away precious intellectual property like that or will it on the contrary help the development of the company?"
You believe you have better algorithms than the competition. Starting a company is hard enough without giving Christmas presents to the competition. Keep everything closed while the company is young and vulnerable. Open source your code later if it won't help the competition AND you believe it will add value to your company. How far would Google have progressed if they had open sourced their search engine ten minutes after they had it working?
Frankly, if you have to ask this question you aren't really serious about succeeding.
Your company is just starting up and probably isn't established in the industry. Giving away everything you have done better than your competitors is not going to end well. Remember that they are already established in the industry, and way more known than you. You're already at disadvantage there. Don't give away the one thing you have - technological advantage.
Since you work in a very specific industry and not with something that has everyday uses for everyone or at least lots of people, open sourcing your code won't spark interest in your company or get you a community that helps you develop it. Less specialized software already doesn't get contributors, and if they do, it takes insane amount of time to look over the contributions. You work in a very niche industry - you won't get either one of these, but instead you will give away whatever advantage you have.
Now is not a good time to open source it. Maybe later if you grow to a large company, but not now. You will probably see most comments suggesting open sourcing it, but they are only saying so because of the community of slashdot. They aren't thinking it in business sense.
Tom Preston-Werner from GitHub recently posted his take on this question:
http://tom.preston-werner.com/2011/11/22/open-source-everything.html
The tl;dr version of it -- open source everything except what is intrinsic to your core business value. My personal take is that if you can't beat your competitors with a mostly open book, you won't beat them with a closed book either. Hire the best people you can find, be thoughtful about your product, and hope for a bit of luck.
There are a few. Red Hat is a good sized company. Springsource had a reasonable-sized business (tens of millions in revenue) before being acquired by VMwware. mySQL was similar in revenue, and got acquired for crazy money by Sun. There's SugarCRM. But in general .. most of the really valuable companies have really valuable software they keep under lock and key.
Focus, focus, focus on getting that product out the door; that alone will take everything you've got. Open-sourcing involves managing a team of people who are distributed in geography and in time zones, and may not care about the mission of your business. It's way more headache than you need right now; I'd definitely not try to add that to your already-full plate.
Open-sourcing isn't really a marketing tool. Once you have a harem of happy customers, they will provide all the buzz you need, and then if you're profitable, you might have some breathing room to think about helping society.
Provided that you're selling something else. The reason we open source things is to give something back to the community; it helps us get our jobs done. But we don't give away our work.
Incidentally, I'm split on the issue. I happen to know a chip vendor that lost at least one contract because their development tools were proprietary; we instead developed with their competitor's FPGA because the tools provided were free.
But it sounds like your expertise is not in the HW, but the SW. Consider that your competition sounds like they're expertise is not in SW, but HW. With their better expertise in HW, they could probably use your algorithms to offer a better overall solution than you can, effectively shutting you out of the market.
The society for a thought-free internet welcomes you.
Open source is only acceptable when it's other peoples work!
Consider:
- Is your product something that hobby developers might take an interest in? Will their contributions add value to your codebase or company? Will they want to contribute?
- Is your product something other companies might find useful if they took it, added a feature, and contributed it back to you? Will they have any incentive to send anything back to you?
- Do you have anything that you can subsequently sell to the people using your open code, that they are going to want to buy, that a competitor can't quickly spring up and take the opportunity from you?
- Could opening the code allow you to steal away a significant part of the market, that you can later sell products or services to, for a net profit? Is this likely?
And weigh this up against:
- You've given away the code. Is there anything left to sell, and will people want to buy it?
- Would your company survive if someone saw the code, thought it was a good idea, and put double the number of developers on it and told them: "make something like this"? Assume they will use your code as a reference, but no proof of it will ever be found.
- A company with an international presence steals your code, builds it into their product, and sells it. Do you either have the resources to fight a huge multinational (possibly hiding behind a subsidiary in a different country), and the ability to survive for a few years whilst it works its way through the courts, as well as fight off baseless countersuits? Or is your product such that your company will survive, even if it is being ripped off, possibly even benefiting from the exposure?
Since I work as sales director for an Open Source company, you will know my answer.
Tell your partner, that not only will you keep your technological advantage, but you will always be one step ahead of any competition if you work with a community. Be a leader for that community. Provide an infrastructure that makes communication easy among contributors. Inspire them by giving directions and accept input at the same time. Tell the community about your goals, let them be part of the story, inspire them to contribute and make yourself a desirable target for talent.
What you need is a clear focus on your business model. As an Open Source company you will market your know how, your unique expertise and tell everyone that you and only know are the ones to support a customers into the deepest abysses of technical problems. Find partners and share your expertise. Identify key contributors to the project and hire them. Be the experts in your field of knowledge and make yourself independent from a product that others can copy. Develop a business case, a sales pitch that potential customers will easily understand and identify as something that will bring a distinct advantage to their business by using your product.
One last thing: You will have lots more fun building an OSS company than going the closed way. You will be part of a community, you will lead it and you will continuously get input from intelligent people, input that otherwise will cost you dearly when hiring external consultants.
Despite Richard Stallman's objections if he heard the same question*, open-source is not going to help in any way here. Your technology is what's known as a "trade secret", and would be the basis for whatever revenue your company makes. Giving out the algorithms to your competitors would be corporate suicide, and gain absolutely nothing except a reputation for being a total idiot.
Google open-sources things that it can afford to have open sourced, because it's to their benefit in various, interrelated ways. They're in the business of information after all, and whatever avenues they can make in obtaining said information are all the better.
* His first objection of course would be to first clarify the difference between free and open-source software, which I'm aware of but don't see the relevance in this particular case.
To all newcomers - people here are very close-minded and can't handle complaints about Linux. Keep this in mind.
For many of your customers, closed source (i.e., binary or restrictive source license) may simply not work, for example because they are at a university (and can't guarantee that the source code won't leak out), or because they need to run the software on specialized hardware that you can't provide binaries for. Your advantage may also not be as big as you think, so open sourcing the software may not matter much, and other people may provide you with useful input and improvements. So, I think you should seriously consider open sourcing the software. You could make it a dual license (GPL + proprietary).
The best choice would be if you could incorporate those algorithms into your hardware. Can you add a small DSP do the hardware? That doesn't just protect your code, it actually may also make your hardware easier to use (fewer software dependencies). On the other hand, that way, you won't get any improvement from the community.
You have a third option here: patent the special purpose algorithms, then open source it under a license that does not include a patent grant. This way, your value-generating asset is protected, but your users still get some benefits of OSS - the ability to tinker with the code and adapt them to their needs, and knowledge that they can support it themselves in long term if need be.
If you want, you can also add an explicit patent grant for open source applications only (e.g. only for GPL v2 and v3). That way you get FOSS community onboard, but any commercial competitors would still have to license your patents (which you could refuse outright, or at least ask a fair price) to reuse the idea.
Put the algorithm in the hardware if you can, then you can publish the library open source without any risks.
There is also the question of whether closed source will even protect the algorithm. Binaries can be disassembled and reverse engineered, so closing source just makes thing more difficult if it's something as simple as an algorithm you are trying to protect.
1984 was not supposed to be an instruction manual.
I've done plenty of startup software development - we tend to use open tools and LGPL libraries, staying away from the pure GPL stuff because of the shades of green that the investors turn when they hear that they don't own secrets in the code.
Irrelevant! They were all pretty much massive juggernauts with well-established reputations when they went on their respective forays into Open Source, not fledgling startups. Regardless of the success or otherwise of their OSS experience, their stories are not even remotely comparable to a startup selling Motion-Capture sensors.
Ahh - My eye!
The doctor said I'm not supposed to get Slashdot in it!
You won't build any community among your customers if they feel locked out of key pieces of the product. If anything, they will be resentful. Jon Oosterhout tried it with TCL (Scriptics). Ransom Love tried it with OpenLinux (Caldera). Both failed.
You have already build your software on top of openMAT. If you want to be a closed-source company, then do the right thing - dump openMAT, and write your own replacement.
For what it's worth, in my opinion people are overly obsessed with the importance of protecting their precious "IP". You are not that smart. Any "edge" it gives you will only last a short time. It is more important that the products that you make do what you say they will do, that they are delivered on schedule, that they are reliable, that they are properly documented, and that you are available to stand behind them.
Turn in your geek card. RMS failed at maintaining emacs (for some reason, people don't like working with him), and was forced to import the complete xemacs fork and rename it "emacs".
Same story with gcc and egcs.
RMS can't earn a living with "his" code, which is why he rambles around talking about how you too can be dirt poor via open source.
Only open source your codebase if you want to outsource your entire company and any future profits to your competitors.
I'm releasing tools from my work that I developed for our operations.
We don't want to sell the tools - for the kind of money we could get for them in a market full of existing commercial options, it wouldn't be worth the trouble, let alone the sales and support overheads.
We could keep them closed in-house. There's nothing wrong with that and it's a viable option, but it means we give up the chance of sharing maintenance costs with others and benefiting from others' improvements to the tools.
Consequently, we've decided to open them up. This will permit competitors to use them - but most of our local competitors have already licensed expensive commercial equivalents they're committed to, so the only way they're likely to benefit is if we push pricing down across the industry, which isn't likely at this stage given that our tools are significantly less polished and more limited than the existing commercial offerings. It'd also permit new start-ups who wanted to compete with us to use them - but we're the dominant player in a mature and saturated local market with significant community loyalty. Startups have consistently failed despite having vast amounts of cash pumped into them by outfits who want to knock us out of the way and don't mind taking epic short-term losses to do it.
The upside of opening our tools up is that we're hoping to see participation from other companies and non-commercial publications, reducing the cost of ownership of our in-house tools, making them easier to maintain and less dependent on just one person in one company. That should help future-proof them for us if they're successful, and hopefully get us the use of contributed enhancements we wouldn't have developed ourselves.
IMO this is one area where OSS is really key in commercial use: when you need to build tools that help your business but aren't viable as a product.
If it's a cost center, open source it. It may offset the cost slightly. If it's a profit center, hold it to your chest.
The question is: What are you selling? Hardware or software?
If the software is the product, then close it obviously. There's money to be had from support contracts, but that's more of a pathway for monetising an existing free software project than for setting up a new business.
If the hardware is the product, then open the software. In doing so you effectively recruit every university doing research in the field, since they will all have tweaks and improvements. They publish their research, along with the software used (copyleft is good for that) and you either modify your own default software, or add the code to a repository for special purpose software. Your code is continuously improved and supports an increasingly wide range of applications.
Your competitor can adapt the results to their product as well, of course, but first of all they've got to port it. Meanwhile the number of applications for your sensor with custom software from third parties is going to grow and grow...
Don't let THEM immanentize the Eschaton!
Only open source your codebase if you want to outsource your entire company and any future profits to your competitors.
I think your criticism is valid, but your conclusion isn't. You should open source your code if you estimate that you will still be the driver of the development. Then, other companies will build up dependence on you, you will gain influence and importance.
How can you make sure you will still be the driver of the development?
a) You have skills and experience in your area and your codebase nobody else has and will have difficulties to develop. Then others will always rely on your work.
b) You continuously add value and innovate, so your codebase is the go-to point.
c) You outwork your competition with consistency. When their fork goes stale, people will abandon it.
The beauty of open sourcing is that keeping upstream with you (feature-wise) is extremely difficult for a competitor that has a separate closed-source codebase. This is only accelerated when other people add to your product (don't start with counting on that though).
NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.