KEMBAR78
Why do Companies Write Open Source Software | PDF
Why Do Companies Write
Nadav Har'El, Cloudius Systems, Ltd.
October 22, 2013
For-profit companies
write open-source.
● They start new open-source projects.
● They open-source software they already wrote.
● They contribute to existing open-source projects.
● They cooperate with competitors on this software.
●
But why?
– Are they crazy?
– Are they communists?
– Or are they actually being smart?
– Does this make business sense?
The first good answer
● June 2002, Joel Spolsky.
● Entrepreneur & Blogger.
● http://www.joelonsoftware.com/articles/Strategy
LetterV.html
● http://hebrew.joelonsoftware.com/Articles/Strate
gyLetterV.html
“Smart companies try to commoditize
their products' complements.”
Complement product
● A product that you usually buy together with
another product.
– Gas and cars.
– Computer hardware and computer software.
– Flight and hotel room.
– DVD player and DVDs.
Complement product
● Demand for a product increases when the price
of its complements decreases.
– If hotels in certain area become cheaper, more
people fly there. And vice versa.
– As DVD players become cheaper more people buy
DVDs.
– If gas was cheaper, more people would buy cars.
● So demand for your product will increase if its
complements are cheap.
Demand for your product will increase if
its complements are cheap.
So a company's best interest is:
● For its complements to be come commodities
(many competing manufacturers).
● For its complements to be as cheap as possible.
● When free is possible, it is cheapest :-)
When software is your complement
● If you have a product which needs additional
software, and
● If this software is not your competitive advantage.
● Then you have a software complement.
● You want it to be open source:
– It will be cheap/free for your product's users.
– If no such open source projects exists yet, by starting
one you may share the costs of developing in-house.
Google's Android
● Good example to free-software
complement: Google Android.
Why did Google do Android?
Why open-source?
They didn't have to go open-source (could have
used BSD instead of Linux, like Apple did).
Google's strategy
● ACM SIGIR, July 2008
Keynote by Kai-Fu Lee,
Google VP Engineering,
and President, Google
Greater China.
● Talked about increasing Google's
use in China (and the rest of the world).
Google's strategy
● Google's main problem in China
wasn't market share, it was market size.
● You need a computer to use Google's products.
Only a minority of Chinese had them.
● In the developed world, more new users had
smartphones (iPhones, Blackberry) than computers.
● But these were too expensive for most Chinese.
●
Google would benefit from Internet-capable mobile
phones becoming a commodity!
Google's strategy
● So Google:
– Bought Android (2005) and open sourced in 2007.
– Convinced hardware makers to take Android to create more
smartphones (Open Handset Alliance, 2007).
– October 2008 – first Android phone (HTC Dream)
● As of 2013 – strategy was successful:
● 1 Billion Android devices activated – all can use Google.
● 75% of smartphones, 90% in China.
● New Android-specific revenues for Google (market, ads...)
– Even if everyone switched to Bing, new review streams.
Example #2 - Netscape
● Netscape Navigator came out
in 1994. Not free for businesses.
● Threatened to commoditize the OS.
Microsoft retaliates with IE in 1995.
● Netscape cannot compete. Tries to save its
server products and websites by open-
sourcing Mozilla in 1998.
● AOL buys Netscape. Incoherent strategy. Crash.
How to run the open-source project
● Two styles of open source projects:
Centralized: One person,
group, or company,
develops the code.
Accept bug reports and patches,
but outside contributors always
remain outside.
Company keeps control.
Distributed: Encourage
other companies and
individuals to join the
discussions, decisions, and
become equal contributors.
Company gives up control.
How to run the open-source project
● And a whole spectrum between the extremes.
● E.g., Android:
– Based on Linux, on which Google has no control.
– Google does control rest of Android's development,
– ...but through “Open Handset Alliance”.
– Other companies (e.g., Samsung) have Android for
today's products, but rely on Google for its continuing
development (beyond Linux).
Why give up control?
● Reduce your development costs.
– Let other companies with the same complement
help you.
– They won't help you if they feel a conflict of
interests.
● Faster development than a single company can
ever do.
– Linux grew faster than BSD because it encouraged
many more people to contribute.
How to give up control?
● Open the source-code through a well-known
impartial organization. E.g., Apache Software
Foundation.
● Create a new organization. Open Handset
Alliance.
● Use source-code repositories, domain names, etc.,
not associated with your company. E.g.,
– java.com, not java.sun.com
– Use github.com for the source code.
How to give up control? (cont.)
● Avoid in-house mailing lists, bug trackers, etc.,
● Have commit rights for non-employees.
● Do not require copyright assignment.
● Do not patent parts of the code – or offer
royalty-free license.
Before giving up control...
● Is the code really your complement or your
product?
Netscape wasn't sure...
● Have you chosen the right license?
– Afraid you'll want to turn this into a product:
● Use BSD-like license, dual license, copyright-assignment.
● Keep submarine patents...
– Afraid this will turn into a competitor's product:
● Use GPL license.
Example #3 – Red Hat
● Red Hat is a services company:
You don't pay it for the software
(OS, Virtualization, Middleware),
you pay for:
– Support
– Integration
– Packaging of well-QAed software
●
More than $1 billion revenue in 2012.
● Red Hat services need good open-source software to
exist. A complement? More like raw materials...
Corollary
Smart companies try to build on an open-
source infrastructure.
● Complement – infrastructure the users have.
● Raw material – infrastructure the company has.
Anything which isn't the company's competitive
advantage.
Red Hat
● So Red Hat works on dozens of open-source
projects: Linux, KVM, WildFly (Jboss),
Fedora, ...
● Uses all “give up control” techniques, even in
projects it originated (e.g., Fedora, KVM), so:
– Millions help Red Hat do QA (Fedora).
– Companies like IBM participate in development.
– Reduced development cost (compare: Unix).
The Unix Story
● In the end of the 20th century, many companies
sold Unix-based workstations: Sun, DEC, SGI,
HP, IBM, DG, AT&T, ...
● All started with 1980 7th Edition Unix or BSD.
● Each continued Unix development alone.
● Was never a competitive advantage:
Nobody bought Sun just for SunOS.
● Today, such companies would adopt GNU/Linux.
Example #4 – Qumranet
● Small Israeli startup making a remote desktop platform.
● Needed to use a hypervisor, existing one (Xen) wasn't
good enough, so wrote a new one: KVM.
● 2006: Decided to open-source KVM (into Linux):
– Wasn't Qumranet intended product, but a complement:
Qumranet's software needs a host with a good hypervisor.
– Get more Linux developers to help with KVM.
Qumranet was too small to continue on its own.
– Get noticed.
Qumranet
A success story?
● Nice exit - bought by Red Hat in 2008, $107M.
● The “complement” KVM is much more popular
than the original remote-desktop product.
“Contributing back”
Companies use existing open-source projects and
contribute code back to the project. Why?
● The license requires them to (GPL).
● To avoid maintaining your patches.
● To show goodwill to other developers – and
maybe get help or agreement from them later
on.
Example #5 – Sun Microsystems
● Sun was a hardware company.
● Their best interest: make software a commodity.
● Opening Star Office (later Open Office) – good.
– Though didn't really commoditize word-processor.
– People still differentiate MS Office and Open Office.
● Opening Java – business mistake!
Example #5 – Sun Microsystems
● Sun was a hardware company.
● Opening Java – business mistake?
– Java runs the same program on any computers.
– Java commoditizes hardware!
● Sun hoped Java will increase the market for all
servers, including Suns.
● It increased the market for all servers, but made
it increasingly easier to switch to x86...
Example #6 – Cloudius Systems
● The company I work for.
● Small Israeli start-up.
● Developed OSv (http://osv.io/),
– New operating system for VMs on the cloud.
– Compatible with Linux, but smaller, faster, easier to
configure.
● Open Sourced OSv.
Other reasons to write open source
● Small company wishing to create new software and
get it accepted by customers.
– “Don't be afraid the company will vanish, it's open source”
– “It's free, try it!”
● How to profit?
– Services or support? (you have the experts)
– Proprietary product?
– Dual license GPL/proprietary? (e.g, MySQL)
– Your company gets bought? (Why?)
Other reasons to write open source
● Employee satisfaction
– Programmers get world fame, not just company-wide fame.
– Similar to publishing in the academic world.
● Peer review
– Improve quality by having others outside the company
review the code.
● Employee hiring
– Attract open-source programmers.
You know who to hire, because you've seen their code!
Legal issues to consider
Very little has been tested in a court...
● Copyright & copyright assignment
● Copyright infringement suits (SCO vs. IBM)
● Licenses
● Patents
– What happens if you patent something you open-source?
– What if a contributor patented his addition?
● Anti-trust laws. (careful when cooperating with competitors).
● Anti-dumping laws. (Fairsearch vs. Android)
Summary
● There are good reasons why your company should start an
open-source project, or join an existing one.
● But there are also cases when this does not make business
sense.
● So do consider your business case.
● Is this software your product?
A complement to your main product?
Infrastructure your product is built on?
What will be your product a year from now?
What can you lose by open-sourcing?
What can you lose by not open-sourcing?

Why do Companies Write Open Source Software

  • 1.
    Why Do CompaniesWrite Nadav Har'El, Cloudius Systems, Ltd. October 22, 2013
  • 2.
    For-profit companies write open-source. ●They start new open-source projects. ● They open-source software they already wrote. ● They contribute to existing open-source projects. ● They cooperate with competitors on this software. ● But why? – Are they crazy? – Are they communists? – Or are they actually being smart? – Does this make business sense?
  • 3.
    The first goodanswer ● June 2002, Joel Spolsky. ● Entrepreneur & Blogger. ● http://www.joelonsoftware.com/articles/Strategy LetterV.html ● http://hebrew.joelonsoftware.com/Articles/Strate gyLetterV.html “Smart companies try to commoditize their products' complements.”
  • 4.
    Complement product ● Aproduct that you usually buy together with another product. – Gas and cars. – Computer hardware and computer software. – Flight and hotel room. – DVD player and DVDs.
  • 5.
    Complement product ● Demandfor a product increases when the price of its complements decreases. – If hotels in certain area become cheaper, more people fly there. And vice versa. – As DVD players become cheaper more people buy DVDs. – If gas was cheaper, more people would buy cars. ● So demand for your product will increase if its complements are cheap.
  • 6.
    Demand for yourproduct will increase if its complements are cheap. So a company's best interest is: ● For its complements to be come commodities (many competing manufacturers). ● For its complements to be as cheap as possible. ● When free is possible, it is cheapest :-)
  • 7.
    When software isyour complement ● If you have a product which needs additional software, and ● If this software is not your competitive advantage. ● Then you have a software complement. ● You want it to be open source: – It will be cheap/free for your product's users. – If no such open source projects exists yet, by starting one you may share the costs of developing in-house.
  • 8.
    Google's Android ● Goodexample to free-software complement: Google Android. Why did Google do Android? Why open-source? They didn't have to go open-source (could have used BSD instead of Linux, like Apple did).
  • 9.
    Google's strategy ● ACMSIGIR, July 2008 Keynote by Kai-Fu Lee, Google VP Engineering, and President, Google Greater China. ● Talked about increasing Google's use in China (and the rest of the world).
  • 10.
    Google's strategy ● Google'smain problem in China wasn't market share, it was market size. ● You need a computer to use Google's products. Only a minority of Chinese had them. ● In the developed world, more new users had smartphones (iPhones, Blackberry) than computers. ● But these were too expensive for most Chinese. ● Google would benefit from Internet-capable mobile phones becoming a commodity!
  • 11.
    Google's strategy ● SoGoogle: – Bought Android (2005) and open sourced in 2007. – Convinced hardware makers to take Android to create more smartphones (Open Handset Alliance, 2007). – October 2008 – first Android phone (HTC Dream) ● As of 2013 – strategy was successful: ● 1 Billion Android devices activated – all can use Google. ● 75% of smartphones, 90% in China. ● New Android-specific revenues for Google (market, ads...) – Even if everyone switched to Bing, new review streams.
  • 12.
    Example #2 -Netscape ● Netscape Navigator came out in 1994. Not free for businesses. ● Threatened to commoditize the OS. Microsoft retaliates with IE in 1995. ● Netscape cannot compete. Tries to save its server products and websites by open- sourcing Mozilla in 1998. ● AOL buys Netscape. Incoherent strategy. Crash.
  • 13.
    How to runthe open-source project ● Two styles of open source projects: Centralized: One person, group, or company, develops the code. Accept bug reports and patches, but outside contributors always remain outside. Company keeps control. Distributed: Encourage other companies and individuals to join the discussions, decisions, and become equal contributors. Company gives up control.
  • 14.
    How to runthe open-source project ● And a whole spectrum between the extremes. ● E.g., Android: – Based on Linux, on which Google has no control. – Google does control rest of Android's development, – ...but through “Open Handset Alliance”. – Other companies (e.g., Samsung) have Android for today's products, but rely on Google for its continuing development (beyond Linux).
  • 15.
    Why give upcontrol? ● Reduce your development costs. – Let other companies with the same complement help you. – They won't help you if they feel a conflict of interests. ● Faster development than a single company can ever do. – Linux grew faster than BSD because it encouraged many more people to contribute.
  • 16.
    How to giveup control? ● Open the source-code through a well-known impartial organization. E.g., Apache Software Foundation. ● Create a new organization. Open Handset Alliance. ● Use source-code repositories, domain names, etc., not associated with your company. E.g., – java.com, not java.sun.com – Use github.com for the source code.
  • 17.
    How to giveup control? (cont.) ● Avoid in-house mailing lists, bug trackers, etc., ● Have commit rights for non-employees. ● Do not require copyright assignment. ● Do not patent parts of the code – or offer royalty-free license.
  • 18.
    Before giving upcontrol... ● Is the code really your complement or your product? Netscape wasn't sure... ● Have you chosen the right license? – Afraid you'll want to turn this into a product: ● Use BSD-like license, dual license, copyright-assignment. ● Keep submarine patents... – Afraid this will turn into a competitor's product: ● Use GPL license.
  • 19.
    Example #3 –Red Hat ● Red Hat is a services company: You don't pay it for the software (OS, Virtualization, Middleware), you pay for: – Support – Integration – Packaging of well-QAed software ● More than $1 billion revenue in 2012. ● Red Hat services need good open-source software to exist. A complement? More like raw materials...
  • 20.
    Corollary Smart companies tryto build on an open- source infrastructure. ● Complement – infrastructure the users have. ● Raw material – infrastructure the company has. Anything which isn't the company's competitive advantage.
  • 21.
    Red Hat ● SoRed Hat works on dozens of open-source projects: Linux, KVM, WildFly (Jboss), Fedora, ... ● Uses all “give up control” techniques, even in projects it originated (e.g., Fedora, KVM), so: – Millions help Red Hat do QA (Fedora). – Companies like IBM participate in development. – Reduced development cost (compare: Unix).
  • 22.
    The Unix Story ●In the end of the 20th century, many companies sold Unix-based workstations: Sun, DEC, SGI, HP, IBM, DG, AT&T, ... ● All started with 1980 7th Edition Unix or BSD. ● Each continued Unix development alone. ● Was never a competitive advantage: Nobody bought Sun just for SunOS. ● Today, such companies would adopt GNU/Linux.
  • 23.
    Example #4 –Qumranet ● Small Israeli startup making a remote desktop platform. ● Needed to use a hypervisor, existing one (Xen) wasn't good enough, so wrote a new one: KVM. ● 2006: Decided to open-source KVM (into Linux): – Wasn't Qumranet intended product, but a complement: Qumranet's software needs a host with a good hypervisor. – Get more Linux developers to help with KVM. Qumranet was too small to continue on its own. – Get noticed.
  • 24.
    Qumranet A success story? ●Nice exit - bought by Red Hat in 2008, $107M. ● The “complement” KVM is much more popular than the original remote-desktop product.
  • 25.
    “Contributing back” Companies useexisting open-source projects and contribute code back to the project. Why? ● The license requires them to (GPL). ● To avoid maintaining your patches. ● To show goodwill to other developers – and maybe get help or agreement from them later on.
  • 26.
    Example #5 –Sun Microsystems ● Sun was a hardware company. ● Their best interest: make software a commodity. ● Opening Star Office (later Open Office) – good. – Though didn't really commoditize word-processor. – People still differentiate MS Office and Open Office. ● Opening Java – business mistake!
  • 27.
    Example #5 –Sun Microsystems ● Sun was a hardware company. ● Opening Java – business mistake? – Java runs the same program on any computers. – Java commoditizes hardware! ● Sun hoped Java will increase the market for all servers, including Suns. ● It increased the market for all servers, but made it increasingly easier to switch to x86...
  • 28.
    Example #6 –Cloudius Systems ● The company I work for. ● Small Israeli start-up. ● Developed OSv (http://osv.io/), – New operating system for VMs on the cloud. – Compatible with Linux, but smaller, faster, easier to configure. ● Open Sourced OSv.
  • 29.
    Other reasons towrite open source ● Small company wishing to create new software and get it accepted by customers. – “Don't be afraid the company will vanish, it's open source” – “It's free, try it!” ● How to profit? – Services or support? (you have the experts) – Proprietary product? – Dual license GPL/proprietary? (e.g, MySQL) – Your company gets bought? (Why?)
  • 30.
    Other reasons towrite open source ● Employee satisfaction – Programmers get world fame, not just company-wide fame. – Similar to publishing in the academic world. ● Peer review – Improve quality by having others outside the company review the code. ● Employee hiring – Attract open-source programmers. You know who to hire, because you've seen their code!
  • 31.
    Legal issues toconsider Very little has been tested in a court... ● Copyright & copyright assignment ● Copyright infringement suits (SCO vs. IBM) ● Licenses ● Patents – What happens if you patent something you open-source? – What if a contributor patented his addition? ● Anti-trust laws. (careful when cooperating with competitors). ● Anti-dumping laws. (Fairsearch vs. Android)
  • 32.
    Summary ● There aregood reasons why your company should start an open-source project, or join an existing one. ● But there are also cases when this does not make business sense. ● So do consider your business case. ● Is this software your product? A complement to your main product? Infrastructure your product is built on? What will be your product a year from now? What can you lose by open-sourcing? What can you lose by not open-sourcing?