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.
Pay it forward
Then when you're bored you can open source your code.
Your partner is correct. What you do not want is your company to live beyond you and become a deathless monster. It would be better if it went on to became a trust for the code you create and to foster it's development or other open source projects.
I'd go on a Vegan diet but the delivery time from Vega is too long. --brownkitty
"Is it wrong for a small company to give away precious intellectual property like that"
no but its dumb
Open source can be good for a company, but it depends on what your company is doing. Is it helping a community gather knowledge and tools? or is it selling a product to people who could not give 2 shits about how it works?
It sounds like the latter.
That depends, is OpenBSD backdoored?
If so, how far does the 'taint' run throughout the open source community? I recall another incident with Fedora and some suspected tampering by a possibly compromised person with a 'conflict of interest', so to speak. Of course I'm just voicing opinionated speculation here, nothing more.
Because nothing is more important for a Startup than spending as much money as possible. I recommend going all Microsoft so you can also enjoy the Licensing hell that most of us in corporate IT enjoy. Plus exchange server is so lightweight, you can get away with a single 12 core, 3ghz, 16gb ram and 10tb of 15,000 rpm storage. if you don't go over 100 users.
Although in truth, do NOT host your own email. pay Google for their hosted exchange or someone else. Unless you guys are doing 1990's type startups where you spend as much as possible for stupid reasons. Then hire 2 Exchange people to maintain that abortion of a email server.
Can you tell I spend 10 years supporting a corporate stall of exchange servers? Exchange and Share point are more painful to maintain than a hot poker in the eye.
Open. But just because I like it like that. Don't know if it would make business sense for you, since I didn't read.
But if there is a service or hardware to sell, being open source could be your advantage; Free labor, guarantee against lockdown and easier customizability for customers and goodwill.
How about promising to release the relevant code once your company has sold a specific number of units?
You could also consider a custom license, whereby your customers gain access to the source and are free to modify it, but may not redistribute anything, including their custom changes, save for sending it upstream.
Do you want the kind of culture where people stain the couches with take out chinese food and eat parts of their feet, yet write great code? And use free code? Then open sources is for you. Emacs is crazy, but it is great.
We're ready to steal your tech and take your customers.
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.
And then I can sit around smoking weed and selling closed source versions of your software. You'd never know, because I'd obfuscate it.
Seriously, do it. It's the right thing to do. Moral, open, caring and sharing. All great stuff when you're trying to make a profit from people.
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.
Dirty bird faggots.
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.
it seems that allot of successful opensource projects either come about from...
a. a failing company opensourcing its assets in a last ditch spite of what every company screwed them over (netscape spawning what would become firefox for example)
b. a non-commercial programming hobby that snowballs into something huge (the linux kernel for example)
c.a successful company outsourcing something obsolete and already milked for all its worth as a publicity stunt (what id software(the makers of doom and quake) seems to do with all their old game engines for example)
projects that try and force opensource fame don't wind up as well recognized as they would like (gnu is a good example)
probably best to keep your most valuable asset under raps for now the community (if there would be any) won't mind that much as long as stay friendly(dwarf fortress is a good example of this)
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?
What is your secret sauce? You don't give that away. If it's, say, in the hardware or in the services, then opening source might help more than it might hurt. If however it's the improved algorithms that's really what's making your kit more attractive than the competition's, then it doesn't do to give away that in the name of open source; it means giving away valuable competetive advantage. What, really, is it that's going to spin your company money then?
I worked for a web startup which used the "Open Source the main product" approach. Quite a few employees were picked up from their open source contributions, so it was a great way of attracting talent to an early-stage project.
Of course then they made everyone sign copyright assignment agreements and significantly diverged the closed portion of the product so its not REALLY open source now. A shame, still if you have a product you really need to sell to venture capitalists they really like it when all the IP rights are solid.
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.
Since your IP is your only competitive advantage I wouldn't just give it away. What you could do though is modularize your engine with a plugin architecture, writing plugins containing your IP. You can then open-source the engine so everybody could use it, but your own plugin with your IP remains closed-source.
dont see why you wouldn't. all those companies are doing very well.
If your end product is to end users then I wouldn't open source it. Keep in mind moving a product all the way to an end user (read idiot user) is expensive on a lot of levels. If your product is to be used by the community to develop new products then having access to that code base is a deciding factor on what they will decide to use.
A lawyer is a good choice here. If you post a question like this to slashdot you're only going to hear the two extremes. Open source Nothing and Open source Everything. QT's original design of permitting non commercial users to develop to their hearts content and commercial user's to purchase a license maybe a good route while you're getting started.
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.
Look at big open source projects, notice how unusable the user interfaces are or how buggy the code is (memory leaks everywhere) because there is no accountability and they can get away with saying "fork off". When your closed and have real money on the line you have to compete better or you go out of business.
Like it or not, billion dollar enterprises are closed for a reason and why open source users are stuck in their mom's basement.
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.
Until you make enough money to secure your future then open source it.
Like others said, someone else with more capital could take whatever technology you have and beat you with a better product.
Besides, whatever code you open source, another company could copy it and keep their code obfuscate. You won't be able to sue them since you don't have enough funds and they have a lot of it to fight you back.
If you go closed, someone else will enter the market with hardware using open source, sell it cheaper, and make money from support/contracting.
So, do it yourself from the start.
Support/contracting causes less overhead in your operations and less expenses. makes you more versatile.
Closed on the other hand requires continually growing and monolithic corporation to provide distribution, support and aftersales care.
Read radical news here
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.
in development costs and production tooling costs for a potential competitor to field a competing product based on your source code?
What added value would you be providing a customer that might be tempted by the lower cost of the competing product?
Can you provide an open source product with algorithms less effective than yours and offer the "upgraded" version as proprietary? Would enough people buy the improved version or is good enough enough to erode the potential number of customers significantly?
Have you forgotten what capitalism is about? It's about maximizing profit by making everyone else suffer.
A lot of hardware companies have the source code to their *nix drivers available to download. A lot of other things are internal tools from places that don't sell software as their core business. Of course the biggest example is Google who have advertising as their core business.
If it's hard to make any money with it as closed source software the answer is simple in purely practical terms.
Open source it with a viral license like the GPL.. when/if your competitors steal your algorithm you can sue them for infringement. Also, even though you can't get a patent for an algorithm, try to get a patent or two that are somehow related to what you have as a technical advantage to further protect you. It's a win-win. You'll either make money by being an awesome company that works well with its customers or you'll make money by suing the pants off people while you sit at home playing PS3.
/jaded, I know
release the code as free for non commercial use only. now the community can use it but competeing companies can't.
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.
The /. community is full of nerds who blow a load every time 'open source' is mentioned.
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.
The number one reason anyone open sources anything is to get a community to support and develop the software. The more niche or unique your idea is here the better. If your business is selling hardware you don't care if you make money on the software because that's not what you sell. You sell boxes, not applications. That will give you street cred, and make you look benevolent especially if you back port user hacks and features into your main line code base (and your resulting devices). If you are a software company you simply cannot afford to do this -- your business is selling your bytes of code and not iron. Your edge is your software, data, engineering, and the like... You cannot give these away for free if your develop software for profit... Google does NOT sell software they sell advertising, and thus can give as much away as they like -- their edge is in being a market leading ad conduit. They can give all their software away and it would barely effect their bottom line because the marketing rep is what makes the money for them. I can give all the software I want if I am predominately a marketing company; I just can't give away free marketing. :) Thus, being in the software business stinks.. as you cannot be open source in it and stay alive. Whatever you plan to develop launch your business in that field and make your software for that cause -- then it doesn't matter if you give it away... because software is not your business...Otherwise, just keep it closed.. and profit. :)
The successful companies that use open source aren't selling software. Red Hat is a good example. They sell service. Their software is something you can get from lots of people. You pay them for service. Or Linksys, they sell hardware. So while they might use OSS on their routers, it isn't the software you buy them for.
Then take a look at Google, they are a mix. Android is OSS because they aren't selling software. They aren't making money on it directly, they make money on services via ads for it. Their search engine though? Closed and highly proprietary.
Most people won't pay for something they can legally get for free, and you can't fault them. As such, you need to figure out what it is you are selling. If it is software, then don't give that away.
Eclipse: http://wiki.eclipse.org/images/7/75/CDT_Talk.pdf
Eclipse is an open source IDE. Many companies that used to supply their own IDEs have converged on Eclipse. Eclipse supplies the framework and the GUI and the companies supply their proprietary bits for the versions they distribute. It works well and allows the individual companies to focus on what they do best.
And your competitors use your code (if it's not BSD or something similar), you've then forced them into being open, too.
However, when purchasing wholesale nfl jerseys, since there's plenty of stores that sell t-shirts bad quality replica, you ought to pay attention if not bought in a store or well-known reputation. If you're purchasing NBA jerseys online, it's a nice suggestion to ask for MLB jerseys recommendations and search knowledge. A Wholesale NFL jerseys replica nfl jersey can cost less than half the money compared to an authentic, but if the shirts are low quality replicas can be NHL jerseys short-lived and fast-dissolving after several washes with lost shape and form.
and your product is better, never EVER open-source it. You'll find yourself working for peanuts while the government takes your ideas and gets some of the best fringe benefits in the world.
- Is it wrong for a small company to give away precious intellectual property...
yes.
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.
The answer to your question lies in open/closed source relevance to your business model. Businesses typically don't make money except by careful planning. To decide on this without considering it's benefit or detriment to your specific business model is a analysis oversight. However, in most business, this is not a single question but many. Understand where you plan to benefit from open/close sourcing a application/module/library and conversely what the specific risks are. This boils down to SWOT (Strengths, Weaknesses, Opportunities and Threats) analysis.
Superficially you might decide to close source your areas of strength, adopt open source for you areas of weakness. You might also see open sourcing as an opportunity in some cases and a threat in others. However all this depends on exactly how you design your business.
just nevermind those 2 trillion dollars worth of bailouts from the taxpayers.
Don't open source ANYTHING unless you are a very well established brand. Many companies supported open source early because it helped them (Oracle, IBM). It loosened Microsoft's stranglehold on the desktop market and it slowed their advance on the server market. How will giving away source code you paid to develop help your company survive it's first 5 year hump? Weigh that with giving anyone who wants to copycat your idea 90% of the task by open sourcing everything except your proprietary algorithms.
Even though your proprietary algorithms give you your niche, developing and debugging the rest of your software will cost you plenty and keeping it closed will take that much longer for your copycat to copy, giving you more time to establish yourself in your industry.
Don't get me wrong, I think open source is one of the greatest things to happen to the computing world, but don't give away the keys to the castle to be noble.
Ok, you sell a widget. I'm your customer....
First, I care about the money. If you're cheaper than your competition, I'll buy you. If you're not cheaper in the initial term, your widget better last longer. It should be easier to use than your competition too. If not that, you'd better have GREAT support. Actually, you should have that anyway.
Does it matter to me that your stuff is open source? Will I have to code to make your widget work? I really don't want to... I'd rather you did that. I have other things to worry about. I'm making my own widget.
So... do I care if you are open source? You should ask your customers that.... They are the ones that are going to see if you succeed or fail....
Ok... So lets say you DO open source your stuff.... Your competition steals it. Ok.... are they cheaper? Longer lasting? easier to use? Good support?
Note how all those things that I care about having nothing to do with closed or open source. They have to do with the impacts on your customers...
I think you're asking the wrong people...
Tony
You're getting into an industry where your stuff *will* be stolen or misappropriated or reverse engineered. You make your money in entertainment by providing personalized service (i.e. it's not the trade secrets that make the money, it's the personal relationships and the knowledge of how to apply those trade secrets). Or in renting equipment and crew that performs the function (viz, the Panavision model).
ALways ask for enough money UP FRONT to cover your costs, because if you do the job on credit, the producer will come to you and say "gosh, we ran a bit over budget, can we get a discount on the remaining amount we owe you? We'll hire you again."
Sure, you can have folks sign NDAs, but they'll renege, and they've got much deeper pockets to tie you up in court while they duplicate your work.
So, figure out what you can really keep secret (as in reveal to NOBODY and not be reverse engineered).. keep that secret, and you might as well open the rest.
Remember, a few phrases you need to know in the entertainment industry:
1) It's who you know
2) What have you done for me lately
3) Can you help me out here
1- how you get work
2 - I don't care if you're a genius and have an academy award, what are you doing for me TODAY
3 - a request for a kickback or bribe or "commission" or discount
How do you guys think that open-sourcing your code-base affects a company's business?
If you're the business guy in the partnership, open sourcing the code is NOT in your self-interest. You don't want your technical partner to have the option to ever leave your partnership, and be able to take the code he wrote with him. Without the core developer, even if you've kept a copy of the code yourself, you won't ever be able to do anything without him. Plus, you just know that all the customers and supporters of the project will follow him wherever he goes next.
If you're the core developer who wrote the code, open sourcing the code is in your self-interest, for the reasons I described above, but also because it may bring steady customers in (assuming you do not have any such customers yet). After all, the people who buy sensors are more like developers/hackers than business people, they will automatically flock toward hardware/software that are open source and they will very likely avoid and even completely shun proprietary black box solutions (assuming there are open source alternatives available, which in this case, sounds like there are).
http://xkcd.com/865/
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 you think that keeping your code closed source will keep it secure from your competitors, you are wrong. they can still disassemble the executable and reverse engineer the algorithms. it is not as easy as using the source code, but if your algorithms are that good, it might be worth thr effort to them. if security is the only reason you want to go closed source, you are fooling yourself.
What is your goal? Do you wanna just sell the sensors by the boat load? Is that your goal? Or do you wanna sell software? Maybe, you wanna do both. Yeah, it would be nice to dive right into your products by having a more intimate knowledge of them by knowing code but... It'll be just fine as long as you expose the functions so boy scouts can earn merit badges.
Read it. It spends an entire book answering your question.
TL;DR: yes, eventually.
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 would avoid starting a business in Japan like the plague. If you know what your getting yourself into I guess you have good reasons for starting there, but if you don't, don't.
Same question, slightly different angle...
I am currently working on a set of libraries to make it much easier to write code for managing systems (i.e. sysadmin kind of stuff), in Python, along with a couple of friends from work. The situation is that we all work for a very large company that is constantly outsourcing to India, and would like a "backup plan" in the event we're next on the RIF list, as well as something to look good on the resume if it doesn't turn out to be a money-making prospect. The basic plan at the moment is:
(1) Develop the initial version of the library, open source, under the Apache license (on our own time--and we've already checked our NDA's and this is allowed as long as we don't use company resources to do it.)
(2) Open the project to other developers, using the typical "Linus" sort of model.
(3) Capitalize on our knowledge of the project opportunistically in one of several ways: use it to support custom consulting services in the area of enterprise systems management, use it to facilitate writing enterprise management software much more easily (i.e. network monitoring, inventory, that sort of thing), provide extended versions of the project with additional features (possibly transparent remote access to servers using WBEM/WMI), provide training and support for users of the project, or just use it as a good line item on our resumes to get better jobs than we might otherwise be able to get.
Looked at in this way, the purpose of the project is twofold: it is advertising, and it is the technological base for other things we might want to build. Open source gains us more people testing it and the possibility of other users adding features and/or porting it to platforms we might not get to or have access to.
Thoughts?
Looking at the history of computing, it seems to me that the tech that survives is the open tech. So that is one thing to consider.
On the other hand, you must consider not only what it takes for the tech to survive, but also what it takes for your company to survive. You will need to make money somehow. I will be upfront here and say that I don't have a special trick here that is guaranteed to make you money. I also think most other people don't, either.
Having said that, there are various ways to approach the issue. I have a hunch that what matters more than anything else is building the right connections. Contrary to what is often assumed, you don't need to be better than your competition to survive as a company. But you will probably want to build lasting relationships with customers, make them happy to do business with you, so that they will keep coming back and refer their connections.
One way to boost customer happiness is to have a better product. This may speak in favor of keeping things closed, or patenting the tech that sets you apart from your competition, or any other measure that bars your competitors from getting their product on par with yours. Or it may speak in favor of opening things up, if you expect that the world at large will do a better job at building great things than you as a company can. Specifically, software can work either way - you may get the greatest advantage over your competitors by having software that nobody else has, or you may get the greatest advantage over your competitors because _your_ software is open source and has a great community around it and gets into places it would never otherwise have gone.
Another way to increase customer happiness is to give them the feeling that you really value them. This can speak in favor of opening things up to your customers, which is never to their disadvantage and may actually be a reason for them to prefer your offering. At any rate, delivering a product that your customers can tailor to their needs always sends a better message that you value their business than a long laundry list of legalese that promises dire consequences should the customer even dare to look at how your product works.
Yet another way to success is to set a standard for your class of product. I don't know your market, but some markets are a twisted maze of incompatible offerings, all crappy. In that case, you may come out ahead by pushing, for example, a standardized interface (API, hardware) that others can interoperate with, and build a whole ecosystem of solutions around the standard that has your company's name associated with it.
You could also consider a hybrid approach. For example, keeping your advantages in hardware secret, but completely open sourcing your software. This will give you many of the advantages of being open, while still allowing you to keep some things out of the hands of your competitors. Also keep in mind that the barrier to developing software is lower than the barrier to developing hardware, so there are many more players who could disrupt the industry by writing better software than there are who could do that by building better hardware. If you are the only one offering your software as open source, you may get these disruptors working for you instead of against you.
Long story short: keeping your secret sauce to yourself seems an obvious way to get an advantage over the competition, and is a road often taken, but it is not the only route to success. In the end, it is about keeping the customers coming, and there are various ways to achieve that. You are probably in a better position than me to judge which way would work best in your industry.
Please correct me if I got my facts wrong.
im the author of a shitty php framework of no significance, which i have given to people for free.
and what YOU have done yourself for the people ? come again ?
Read radical news here
I say that you break it down into components.
Open source as much of the generic stuff and presentation layer. The advantage is that maybe someone might come up with something better than you can.
Close source those components that you feel are propriatary and a competive advantage.
Unfortunately, the line might not be well defined as you wish. Also, watch it, as people can reverse engineer many a things, especially if it becomes worth their time and effort.
and I will let you know if you should GPL it.
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!
Whose name springs to mind when you think of calculus? How did the Enlightenment work? Same approach as alchemists with their secret writing?
Nobody is going to read, patch or steal your code if you just upload the tar file on website. The overhead of taking over a significant project without explanation, training and a vision of future direction is so enormous, it's easier to start from scratch. All Java products are effectively open source through trivial decompiler and nobody cares.
It take a large investment of money and time to build an active open source community. Companies that manage that are more successful than proprietary counterparts simply because they attracted interest to themselves that can always be monetized one way or the other. If you don't have resources to do that, there is no point to open source.
What about not treating the algorithms as property, but your combines intellectual traits. Instead of thinking that you have a product, instead think you have value-creating intellect. This way there is no more conflict. You release everything in the open as a way to prove to the World your intellect and cleverness. Then you wait for all those juicy contracts for services and new code that you'll get. You treat your clients well and help them use your capacities for their own improvement. You'll be nit Microsoft-rich, but quite sustainable and respected.
if you sell devices, go open source with them.
if you're just a r&d house and need someone else to sell the stuff, don't give it away to the retailers for free..
world was created 5 seconds before this post as it is.
And use even more complex math, which is usual in computer vision (it seems related to poster area) it can be safely open sourced and become source of small income - modification&maintenance. It's very likely that competitors wouldn't be able modify complex code based on math-heavy algorithm to their need. Even if they have this ability it would worth a lot of resources to them for small gain - if they have that kind of expertise they likely already have some in-house analog. If the code is a small improvement on well-known method, there is no advantage to open source it indeed.
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!
1) Disclose as open source all your source code.
2) Publish on your company web site the list of all your clients.
3) ???
4) Failure!
If the software is your product, then close it. If you're in business to sell a service, then open it.
Giving away your product is not going to make you or your investors very happy.
I'm sorry but this post begs the question "How the fuck are you going to improve on an extended kalman filter?"
Based on all the "if it ain't open source it's rotten"-shouting seen on this forum over the years, the relevant and realistic comments received so far must be deliberate misinformation posted here by your jealous competitors. Thus my advice is that you open-source all your algorithms and software and immediately notify your competitors.
go open-source chances are you'll get help and talent!
If you code in the community, you possibly could finish the project on since you will be exposed to the standards. This only is true is there is awesome documentation, people will tell you to read the manual that clearly isn't documented well for humans to understand. By coding within a community you will also pick up their habits that everyone knows is counter productive, methods can get wrapped up in the politics like anywhere else. Doing it all closed will open your mind up to what goes on from end to end. At some point you may if the customers demand it to open up a standalone UI component or driver to allow other people to develop the GUI and plugins/tools so you don't have to concern yourself with an entire new field. Write what you know, as much as possible.
If you want a successful company and your competitive advantage is your algorithm, then you should go closed source.
Of course, if you don't care if your company succeeds, then feel free to publish your algorithm and allow your competitors to crush you like bugs.
There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
As a start-up you are the master of your ship. You call the shots and no one can tell you otherwise. Once you do that IPO thing you are accountable to investors and they can veto your every decision.
If you want to go OS, do it now. Later you may not have the chance.
Whether you open-source a given piece of code depends on how close that code is to your core business.
If you sell software, you shouldn't open-source it; otherwise you'll have nothing to sell.
If you sell software + hardware, it's a murkier area.
If you're simply a reseller of commodity hardware, or the only thing that differentiates your hardware from the competitor's is the accompanying software, you should keep it proprietary; the software's your main source of value-add.
OTOH, if your hardware is proprietary and significantly different from the competitors', you should open-source as much as possible. Then you have a chance to get volunteers to implement bugfixes or features without you having to pay for them.
A "middle ground" approach might be right for you. For example you might open-source your UI but keep the code that implements your algorithms proprietary.
1) RMS himself clarifies at least his intent in developing a (free as in freedom, free as in beer) OS & tools for everyone differentiates between widely empowering technology like OSes, compilers, and printer drivers versus specialized applications with few users. He points out that if the ecosystem is small, then proprietary relationships may be necessary and therefore appropriate. (Sorry no time to dig out the quote, but its in his stuff on the FSF site.) The question is what will be better for common good, so consider size of the user community, business models, etc. A kind but proprietary business with good practices that survives -> is better than an over-idealistic business that fails -> is better than a mean business with selfish intentions and bad practices that enlists and then controls customers.
2) Are the benefits of going public and free worthwhile against the loss of proprietary value? If your company will make larger revenue because your competitors have adopted your software, then go for it. That means the driver of your revenue has more to do with your business activities like selling, integrating, servicing, designing solutions. For example, if being able to integrate your equipment easily with your competitors means you make more money. But if you rely on the performance/capabilities of your software to drive revenue, then keep it closed until your business has grown up to become more service oriented.
3) Don't expect your competitors to play fair with the free software they pick up. They're not going to contribute back as they should. They might not admit they are using the software.
4) You don't need to go public with your free software yourself. Your question was w/respect to the community, so maybe this point is not relevant. Customers should be looking for free software in case a) you fold & no longer service their maintenance needs; b) they wish to take development on a different tack, they should be able to start with your product as a basis; c) they want remarketing rights, etc. But just because you sell them free software doesn't mean they intend to remarket or even give it out to anybody else, though they have the right. As to these customer needs, you may be able to come to an informal understanding that is mutually beneficial, or you may provide for the specific rights they wish in a specific license for them instead of making the software fully free.
If it's code, then they'd have to GPL their program to get your code in their product.
If it's merely secret sauce algorithm, then you can't copyright it and your competitors will get the algorithm. But if it makes enough of a difference, they'll be able to reverse engineer it anyway from its effects. You'd be putting a speed bump there and, given the commercial world's hysterical fear of the GPL, it's likely that your competitors won't be allowed to even look at your code if it's GPL'd.
I find it impossible to answer without knowing more about both your customers and the market you're operating in.
My own startup open sourced as much of our code as we legally could (though the term hadn't quite come into wide usage yet). We wrote software that implemented communication protocols (financial transaction protocols, specifically) that were only available under NDA and only "legal" to use after the software had undergone rigorous certification by financial institutions. We put that into the smallest C library we could, and shipped that library in both static and dynamic linked forms (so folks could replace it without rebuilding everything), and gave away the source code to everything on top of that, including the shims that made our C library available in Perl, Python, PHP, TCL, and Java. (In fact, this is how my code and name got into the core PHP distribution for years.)
We had a few "apps", like a GUI cash register and a batch script for running transactions stored in a CSV file, and we gave away the full source for those and encouraged our users to modify them and share the changes.
However, this only worked for us because of the market we were in (internet commerce) and who our customers were (people building out internet commerce in the mid 1990s, who were hackers who wanted to get real business done).
If our customers had been people who just wanted the apps, and never needed to tweak them, this could have been counterproductive from a business standpoint, and I might not own a seven bedroom house today. But we knew who our customers were and thankfully we techies were able to put this in place before we brought business types in to help us run things. (I suspect that if the business types had been there at the start, this strategy would have been vetoed.)
Take it the other way round. Why close it? What do you expect to get for the effort of making it closed source? Client wants to run the code on an Arduino? Closed source: pay your coders to port. Open source: let the customer do it with configure && make && make install.
What do you gain by closing it? Nothing? Do you lose anything opening the source? If not, toss a coin. Or, since you never know where it will go, open source it and set it free. If all you get is just the feeling you've made a contribution beyond your life (binary code dies when your product does, source code lives on), then why not take it? You're not going to take it with you, so why hoard it?
I'm also very interested in the subject. In fact, I can recommend you a good book: "Intellectual Property and Open Source" by Van Lindberg, it is well written.
The Japanese patent office is similar to the EuropeanPO. You can't patent algorithms "as such", unless you apply them within the US territory.
The book will clarify the different types of protections that can be applied during the business process. The opensource movement is a copyright movement, and I strongly support it.
Copyright applies to the "expression of an idea", not to the idea itself. Therefore, software is just a speech about an idea. The idea itself can be extracted from some academic publications, closed to the public or with open access, or from some software products, regardless if they have an OSS license or a proprietary closed-source one. Ideas extracted like this are not stolen, they are published by the original author. A competitor would have to express the same idea or an improved version of it in a different way, otherwise there is copyright infringement.
If you want to protect the idea itself, file a patent. If your competitor has a large market in the US, then you can even apply for software patents in the US. AFTER you win the patents, you can release the code in GPL v2 and offer a free patent license to any derivative work. This way the opensource community will benefit from your idea, but closed-source competitors will have to pay you a fair price for the patent license. BE CAREFUL not to use GPL v3, because it will render all your patents useless. You also need to modify GPL v2 so that it does not mention "or any newer version of this license". Be very careful with that, you can lose all your patent advantage otherwise!
If you want to learn HOW to patent the software in Japan, or in EU, then try to follow the opencore/ARM issue, because many people tought that the ARM bytecodes are patented. As far as I understand, ARM requires certain interrupts to handle a very small part of the instruction set, and so for nobody succeeded to implement those instructions without violating the hardware patent. This is a good example of smart protection for software-hardware products, that also works outside the US. So be smart about it and don't publish novel ideas (regardless of expression form) before you patent them, as long as you want to be paid for developing the novel idea. Sometimes it takes years and great efforts to create new functional ideas, you should consider protecting your investment.
If you want to understand OSS in my opinion it is best to think of an antivirus product: you can release the source code as GPL, and you can charge money for the GPL source code, but you offer new virus signatures (as a service) only to clients who have contracted a support & upgrade license.
I've open sourced projects to gain users. In this instance, it made sense because the market for selling services was just as big as the software market. And most companies that needed the software couldn't figure out how to set it up and run it without some training and consulting. At least not effectively. They COULD do it, but we could do it for them better, and much faster. It was very generalized software with a large audience and a wide user base. There was enough competition from Microsoft, Oracle and IBM that we knew we had a large market, and that going open source would increase the number of users and pace of development. So we had both commercial licensing and open source licensing, all using the same code. There was no reason to hide any of the code, it wasn't clever or original or better than anything else, it just performed well and was easy to use. And was cheaper to run than any of the competitors. I don't see any reason to open source the core functionality of your code. If you are having trouble getting customers, giving it away isn't going to improve that situation. You have to compete and win, that's all. Or at least win enough to be successful.
The reason was.. "If something goes wrong, you can put the blame on them." Namely, Microsoft .. :>
cheers, out
Your business model is hardware + software. Which half of that does your money/revenue come from?
If you make monies from the hardware, then open sourcing the software would make sense, as it allows people to make use of your hardware in interesting and novell ways. If you make monies from the software, then open sourcing the software doesn't really help you.
The comparisons to other companies that have open sourced code needs to be taken in the context of where they are/were when the open sourcing happened. How much market share did they already have? Who were they competing against? Was what they open sourced crucial to their business or auxilliary?
You can also release a subset of your code as open source, with limited functionality(resolution/etc).
If you've worked on a stand-alone product that has competitive advantages in it's algorithms, I can see the argument for keeping those algorithms private.
However, if it's a tool intended to generate revenue by leveraging a central service, your business is structured on service revenue, not product revenue, so there's much less concern about making the algorithms publicly accessible.
Personally I opted to open source my core technology over many years of research and enhancements. That way there can be no claim that I was using a "competitors" algorithms without their knowing about it -- they had full access to inspect the code all along. However, I've kept certain configuration/driver data options proprietary, and choose to deliver those using a service model in the future rather than "selling" them as complete products in and of themselves.
Leasing and contracts are just a better model for me to generate revenue with my work than a product sales and upgrade model would be.
Your own situation is likely completely different, but I thought I'd share my thoughts behind the approach I've taken myself.
I do not fail; I succeed at finding out what does not work.
Patent this one on your EPROM. Like IBM with PC (BIOS and BASIC). Close your idea and technology ;)
YAY!
^_^
I'd go on a Vegan diet but the delivery time from Vega is too long. --brownkitty
so now, contributing to society without waiting anything in return, is bad.
insulting such an effort, is good.
go fuck off. really. whichever idiot modded the above down.
Read radical news here
Had a similar situation a while back. We bought a 3rd party depth-camera (similar to the kinect) for use on our robotics project. The software library it came with was closed-source and just atrocious (slow, buggy). This lead to us sniffing the hardware connections and rewriting it ourselves. Now, had the original software been open-sourced (GPL'ed), the company would have gotten a nice ROI back in terms of community improvements. As it was, we have no idea if our software truly handles "all cases" correctly, or just the cases we needed it to handle. And we certainly were not going to get into a pissing war with this firm by trying to release our software as open-source. So everybody lost. Pity. In this case, the hardware was the business, and the software was merely necessary to sell the hardware.