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.
Why is there no mod parent -1 "did not even pretend to read the question"?
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.
Enforcing that kind of license legally sounds expensive and well beyond the budget of a startup. I'd say keep it closed until the company either takes off and is secure, or crashes and burns and it doesn't matter if it's closed anymore.
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.
dont see why you wouldn't. all those companies are doing very well.
What do you expect from making those specialized algorithms open source?
Usually, you would go open source if you want someone to work with and improve upon the things you have.
You could open source ways to implement your sensors into applications, an open source library that implements things you can do with them for example.
A good, open library that I know I can alter to suit my needs, is something I look for when choosing hardware, such as ICs.
Or even hardware specs that would allow people to find new purposes for them. If you do that, you might get useful things in return and attract developers to work with your sensors.
In this case, you I would say, you should keep your sensors as a black box and let people use them as such. Then open source everything around that, that eases the use of them.
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.
A start-up company in Japan by a foreigner? You've got a huge, huge balls. I have some friends who could never get theirs off the ground. Best of luck to you. Japan needs a lot more entrepreneurial spirit.
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.
You run a business and not a charity. I would even go a step farther and say it is immoral and unethical if investor money paid for it. It is not yours but the company's.
It is a good deed and we would appreciate your contribution. However, your bank doest care nor your landlord or your car dealership. If I see your name and decide to use your software to drive away sales from all the hard work you have done then how is that fair? RMS is an idiot as your users will not pay you rent by purchasing support.
But what you really ought to be worried about is copyright and GPL violation. Does storing the program in the machines ram count as distributing? Get a lawyer! If it is copyleft or has a gpl linking license you are good to go with your addons. See if you can use a BSD or MIT package that has similiar features if you cant opensource. You may have to make your own sdk from scratch but get a lawyer first. Good luck with your business!
http://saveie6.com/
Open the source if any of the cases apply:
- Your code is infrastructure and your value is in the service you provide: Open sourcing in this case allows to form a community around your infrastructure and soften the burden of having to maintain it all by yourself.
- The code is already open-source and you provide consultancy services: Your main revenue comes from maintenance and deployment contracts, open sourcing increases your client base.
- You're creating a new market: if the market is completely new then open-sourcing might raise awareness and increase your client base, but it will also help competitors (if and when they emerge and they will if you're successful); This is usually done on a freemium model, you open source the functionality to raise the client base but close "enterprise features" like scalability/high performance/fault-tolerance/configuration management.
Close your source in any other case and if your case does not fall *clearly* into any of these.
And your competitors use your code (if it's not BSD or something similar), you've then forced them into being open, too.
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.
Linksys is a bad example (and you know that they are a subsidiary of Cisco, right?) - they use OSS as much as everybody else does, ie. they bundle busybox and Linux kernel with their own closed bits (UI, etc.) - they are not an OSS company.
And Google is in fact making money from Android - yes, they are giving the base for free but to get the Google logo and bundled software you have to pay - and a lot of manufacturers pay for that.
Success stories would include also MySQL, they really made it profitable with dual-licensing but I'm not really sure if they were OSS from day 1.
For the original poster: Think about what you can accomplish with going OSS (and what license you use!). It seems like you work in a niche industry and your software is not going to get millions of deployments so you are not going to get a lot of "crowd-sourcing" to do the grunt work - however, your clients (or partners) may be willing to pay more for open access so use your business sence. Choosing a very lax license were your competitors can basicly comple your library and bundle them with their hardware would definitely be a bad move if the core of your revenue is from your hardware which depends heavily on your software. On the other hand if your core revenue is services going OSS might produce more value to the customer.
So I do agree with parent - if it is software you are selling it propably is a bad move in business sense to give it away. But are you? I have worked in a similar field for a client (their "secret sauce" was an AI library for liquid chemistry) and after all it would not have really mattered if the "crown jewel" was Open Source from the start because their business was to bring clear improvements to their clients (you see, as our equipment has analyzed your process can be improved by tweaking this and that) and the software itself was just a tool, but knowing how to use the tool efficiently was the real business.
The developers are being paid, By businesses. It's not a "community effort."
The same with the devs working on Firefox and Chrome.
The same as the FreeBSD devs were paid by Apple.
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.
I can't speak for anyone else, but I for my self wouldn't even consider using a closed source toolkit.
For a company it would be quite crazy to tie ones core business to another company's code.
If you don't really do anything really novel, and you already say that they are competitors, you could have an advantage if your offer your software as open source.
Either you give away the source code for free, or the source code is part of the license. In the first case it's free advertisement and in the latter it's a bonus that you have against your competitors.
Also, if you think your algorithms are novel, it's not an easy task to use algorithms in a completely different product.
I'm not quite sure, but if you release your code as GPL, wouldn't the competitor need to release their code as GPL, too, if they are using your algorithms?
http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
You can have the best of both. Have your initial development start closed to help keep your cards close to your chest, then when you're comfortable and you believe your code base is relevant enough, open source it. This is particularly helpful if what you're creating happens to be competitive to other products.
I would stray from the mixed Open/Closed sourced route since your bound run into hurdles if anything does evidently go to court (let's hope not!).
Another reason to keep it closed initially is because in the first 6 months to 1 year, you tend to find developers swaying from side to side, especially if they have better ideas that others don't necessarily agree on and this will prevent a fork from happening early on in the game, especially if you are onto something special.
I have not personally been in your position but this is based on my observations of what I've seen over the years. Good Luck!
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.
Ask Linus if he has problems with business paying him to produce the features they want in linux. He doesn't. He "gets it" that they'll pay for the features THEY want.
Not like Stallman, who goes around saying that you should pirate other peoples' code if its not "free" - while whining if somebody violates the GPL . He's a smelly hypocrite. And a liar (just look for his anti-Linux, anti-Android FUD).
You obviously have a fundamental misunderstanding of Stallman's position--which is that copyright shouldn't even exist. The only reason he created the GPL was to use the existing copyright system as a mechanism to enforce his ideal paradigm, which is that no one owns any code, and it is freely available to everyone to do with as they please.
Since violations of the GPL involve closing code that was once open, or holding back new code that should be released under the GPL, it makes sense that would aggressively pursue violations--or that he would like to, if he had the financial resources.
Linus, on the other hand, I've never seen as any kind of ideologue or ax-grinder. He just wants to put out good code, and if he can get paid for it, why complain?
(For what it's worth, I don't agree with RMS' position on copyright, beyond wanting some reform. The elimination of copyright is not something I would like to see.)
Check out my world simulator thingy.