open source intro for startups

118
Making Open Source Work J Aaron Farr HKSUA FOR YOU!

Upload: j-aaron-farr

Post on 25-Dec-2014

692 views

Category:

Technology


0 download

DESCRIPTION

A general introduction to open source delivered for the Hong Kong Startup Association.

TRANSCRIPT

Page 1: Open Source Intro for Startups

Making Open Source WorkJ Aaron Farr

HKSUA FOR

YOU!

Page 2: Open Source Intro for Startups

Me

Page 3: Open Source Intro for Startups

Aaron馮傑仁

Page 4: Open Source Intro for Startups

farra @ apache . org

Page 5: Open Source Intro for Startups

DirectorApache Software

Foundation

Page 6: Open Source Intro for Startups

Co-Founder

���� �����!"

Page 7: Open Source Intro for Startups

Hong Kong

Page 9: Open Source Intro for Startups

You

Page 10: Open Source Intro for Startups

Free & Open Source Software

Licenses

Community

Code

Page 11: Open Source Intro for Startups

Relevance

Page 12: Open Source Intro for Startups

The argument has been won. It is now generally accepted that the future will involve a

blend of both proprietary and open-source software.

- "Unlocking the cloud”, The Economist, 28 May 2009

http://www.economist.com/opinion/displayStory.cfm?story_id=13740181

Page 13: Open Source Intro for Startups
Page 14: Open Source Intro for Startups

It’s “impossible to avoid”- Garner 2007 Study

- Open source impossible to avoid, Gartner says”, Network World

http://www.networkworld.com/news/2007/092007-open-source-unavoidable.html

Page 15: Open Source Intro for Startups

By 2011, 80% of all commercial software

will contain open source code.

- Open source impossible to avoid, Gartner says”, Network World

http://www.networkworld.com/news/2007/092007-open-source-unavoidable.html

Page 16: Open Source Intro for Startups

Commercial Support

Page 17: Open Source Intro for Startups

Commercial Support

• IBM

• Sun

• Intel

• Apple

• HP

• Dell

• Novell

• Oracle

• Motorola

• Google

• Yahoo

Page 18: Open Source Intro for Startups

Commercial Support

• IBM

• Sun

• Intel

• Apple

• HP

• Dell

• Novell

• Oracle

• Motorola

• Google

• Yahoo

• Microsoft

Page 19: Open Source Intro for Startups
Page 20: Open Source Intro for Startups
Page 21: Open Source Intro for Startups

`

SourceForge

180,000+

Page 22: Open Source Intro for Startups

What is Open Source?

Page 23: Open Source Intro for Startups

Open Source describes a software license that

ensures certain freedoms.

Page 24: Open Source Intro for Startups

• Free Distribution

• Source Code

• Integrity of Author’s Code

• No Discrimination

• Distribution of License

• Not specific to a product

• Not restrict other software

• Technology Neutral

Open Source Definition

Page 25: Open Source Intro for Startups

Free Software Definition

• run the program, for any purpose

• study how the program works, and adapt it to your needs

• redistribute copies so you can help your neighbor

• improve the program, and release your improvements to the public, so that the whole community benefits

Page 26: Open Source Intro for Startups

Free

Page 27: Open Source Intro for Startups

自由免費

Page 28: Open Source Intro for Startups

自由免費

Page 29: Open Source Intro for Startups

Who’s freedom?What freedom?

Page 30: Open Source Intro for Startups

Free vs Open Source

FREE SOFTWARE

• Freedom of the code

• Source code will ALWAYS be available and can never be restricted.

OPEN SOURCE

• Freedom of the developer

• Code CAN be included in proprietary works, sealing the code off

Page 31: Open Source Intro for Startups

Licenses

Page 32: Open Source Intro for Startups

Academic Free LicenseAdaptive Public LicenseApache Software LicenseApache License, 2.0Apple Public Source LicenseArtistic licenseArtistic license 2.0Attribution Assurance LicensesNew BSD licenseComputer Associates Trusted Open Source License 1.1Common Development and Distribution LicenseCommon Public Attribution License 1.0 (CPAL)Common Public License 1.0CUA Office Public License Version 1.0EU DataGrid Software LicenseEclipse Public LicenseEducational Community License, Version 2.0Eiffel Forum LicenseEiffel Forum License V2.0Entessa Public LicenseFair LicenseFrameworx LicenseGNU General Public License (GPL)GNU General Public License version 3.0 (GPLv3)GNU Library or "Lesser" General Public License (LGPL)GNU Library or "Lesser" General Public License version 3.0 (LGPLv3)Historical Permission Notice and DisclaimerIBM Public LicenseIntel Open Source LicenseJabber Open Source LicenseLucent Public License (Plan9)Lucent Public License Version 1.02

Microsoft Public License (Ms-PL)Microsoft Reciprocal License (Ms-RL)MIT licenseMITRE Collaborative Virtual Workspace License (CVW License)Motosoto LicenseMozilla Public License 1.0 (MPL)Mozilla Public License 1.1 (MPL)NASA Open Source Agreement 1.3Naumen Public LicenseNethack General Public LicenseNokia Open Source LicenseOCLC Research Public License 2.0Open Group Test Suite LicenseOpen Software LicensePHP LicensePython license (CNRI Python License)Python Software Foundation LicenseQt Public License (QPL)RealNetworks Public Source License V1.0Reciprocal Public LicenseRicoh Source Code Public LicenseSleepycat LicenseSun Industry Standards Source License (SISSL)Sun Public LicenseSybase Open Watcom Public License 1.0University of Illinois/NCSA Open Source LicenseVovida Software License v. 1.0W3C LicensewxWindows Library LicenseX.Net LicenseZope Public Licensezlib/libpng license

OSI ApprovedAcademic Free LicenseAdaptive Public LicenseApache Software LicenseApache License, 2.0Apple Public Source LicenseArtistic licenseArtistic license 2.0Attribution Assurance LicensesNew BSD licenseComputer Associates Trusted Open Source License 1.1Common Development and Distribution LicenseCommon Public Attribution License 1.0 (CPAL)Common Public License 1.0CUA Office Public License Version 1.0EU DataGrid Software LicenseEclipse Public LicenseEducational Community License, Version 2.0Eiffel Forum LicenseEiffel Forum License V2.0Entessa Public LicenseFair LicenseFrameworx LicenseGNU General Public License (GPL)GNU General Public License version 3.0 (GPLv3)GNU Library or "Lesser" General Public License (LGPL)GNU Library or "Lesser" General Public License version 3.0 (LGPLv3)Historical Permission Notice and DisclaimerIBM Public LicenseIntel Open Source LicenseJabber Open Source LicenseLucent Public License (Plan9)Lucent Public License Version 1.02

Microsoft Public License (Ms-PL)Microsoft Reciprocal License (Ms-RL)MIT licenseMITRE Collaborative Virtual Workspace License (CVW License)Motosoto LicenseMozilla Public License 1.0 (MPL)Mozilla Public License 1.1 (MPL)NASA Open Source Agreement 1.3Naumen Public LicenseNethack General Public LicenseNokia Open Source LicenseOCLC Research Public License 2.0Open Group Test Suite LicenseOpen Software LicensePHP LicensePython license (CNRI Python License)Python Software Foundation LicenseQt Public License (QPL)RealNetworks Public Source License V1.0Reciprocal Public LicenseRicoh Source Code Public LicenseSleepycat LicenseSun Industry Standards Source License (SISSL)Sun Public LicenseSybase Open Watcom Public License 1.0University of Illinois/NCSA Open Source LicenseVovida Software License v. 1.0W3C LicensewxWindows Library LicenseX.Net LicenseZope Public Licensezlib/libpng license

Page 33: Open Source Intro for Startups

Academic Free LicenseAdaptive Public LicenseApache Software LicenseApache License, 2.0Apple Public Source LicenseArtistic licenseArtistic license 2.0Attribution Assurance LicensesNew BSD licenseComputer Associates Trusted Open Source License 1.1Common Development and Distribution LicenseCommon Public Attribution License 1.0 (CPAL)Common Public License 1.0CUA Office Public License Version 1.0EU DataGrid Software LicenseEclipse Public LicenseEducational Community License, Version 2.0Eiffel Forum LicenseEiffel Forum License V2.0Entessa Public LicenseFair LicenseFrameworx LicenseGNU General Public License (GPL)GNU General Public License version 3.0 (GPLv3)GNU Library or "Lesser" General Public License (LGPL)GNU Library or "Lesser" General Public License version 3.0 (LGPLv3)Historical Permission Notice and DisclaimerIBM Public LicenseIntel Open Source LicenseJabber Open Source LicenseLucent Public License (Plan9)Lucent Public License Version 1.02

Microsoft Public License (Ms-PL)Microsoft Reciprocal License (Ms-RL)MIT licenseMITRE Collaborative Virtual Workspace License (CVW License)Motosoto LicenseMozilla Public License 1.0 (MPL)Mozilla Public License 1.1 (MPL)NASA Open Source Agreement 1.3Naumen Public LicenseNethack General Public LicenseNokia Open Source LicenseOCLC Research Public License 2.0Open Group Test Suite LicenseOpen Software LicensePHP LicensePython license (CNRI Python License)Python Software Foundation LicenseQt Public License (QPL)RealNetworks Public Source License V1.0Reciprocal Public LicenseRicoh Source Code Public LicenseSleepycat LicenseSun Industry Standards Source License (SISSL)Sun Public LicenseSybase Open Watcom Public License 1.0University of Illinois/NCSA Open Source LicenseVovida Software License v. 1.0W3C LicensewxWindows Library LicenseX.Net LicenseZope Public Licensezlib/libpng license

OSI Approved

67

Page 34: Open Source Intro for Startups

3 Kinds

Page 35: Open Source Intro for Startups

Give Me CreditGive Me Code

Give Me Everything

- Dave Johnsonhttp://rollerweblogger.org/page/roller?entry=gimme_credit_gimme_fixes_gimmem

Page 36: Open Source Intro for Startups

Give Me Credit

• Software “Commons”

• Derivative works can re-license

• May have some conditions

• No warranty

• Credit to original authors

• Apache License, BSD, MIT

Page 37: Open Source Intro for Startups

Give Me Code

• File or derivative based conditions

• Original author may have special rights

• Differentiate between source and binary

• Larger works may be re-licensed

• LGPL, Mozilla (MPL), Eclipse (EPL/CPL)

Page 38: Open Source Intro for Startups

Give Me Everything

• Copyleft

• Share and Share Alike

• Derivative works remain under original license

• GPL

Page 39: Open Source Intro for Startups

License ScopeVirus Index

Page 40: Open Source Intro for Startups

License Scope

AL MPL GPL

Virus Index

Page 41: Open Source Intro for Startups

Can I Relicense?

AL MPL GPL

Page 42: Open Source Intro for Startups

Can I Relicense?

AL MPL GPL

Page 43: Open Source Intro for Startups

Can I Relicense?

AL MPL GPL

Page 44: Open Source Intro for Startups

Can I Relicense?

AL MPL GPL

Page 45: Open Source Intro for Startups

Can I Relicense?

AL MPL GPL

Page 46: Open Source Intro for Startups

Can I Relicense?

AL MPL GPL

Page 47: Open Source Intro for Startups

Can I Relicense?

AL MPL GPL

Page 48: Open Source Intro for Startups

Can I Relicense?

AL MPL GPL

Page 49: Open Source Intro for Startups

Can I Relicense?

AL MPL GPL

Page 50: Open Source Intro for Startups

Why is that important?

Page 51: Open Source Intro for Startups

Most developers don’t read licenses.

Page 52: Open Source Intro for Startups

Open source developers need to be aware of the licenses

they use.

Page 53: Open Source Intro for Startups

The right license depends on the code and the community.

Page 54: Open Source Intro for Startups

Licenses encourage certain behaviors, discourage others.

Page 55: Open Source Intro for Startups

community

Page 56: Open Source Intro for Startups

Cathedral vs Bazaar

Page 57: Open Source Intro for Startups

Cathedral

Page 58: Open Source Intro for Startups

Cathedral

Page 59: Open Source Intro for Startups

Bazaar

Page 60: Open Source Intro for Startups

Bazaar

Page 61: Open Source Intro for Startups

Community Culture

Cathedral Bazaar

Page 62: Open Source Intro for Startups

Community Culture

Cathedral Bazaar

Page 63: Open Source Intro for Startups

Who

Page 64: Open Source Intro for Startups

Users Developers

Contributors

Page 65: Open Source Intro for Startups

Path to Contribution

Developer

Contributor

User

Public

Involvement

Page 66: Open Source Intro for Startups

Decisions in Apache

Page 67: Open Source Intro for Startups

Decisions in Apache

• Email discussion

Page 68: Open Source Intro for Startups

Decisions in Apache

• Email discussion

• Proposal on the wiki

Page 69: Open Source Intro for Startups

Decisions in Apache

• Email discussion

• Proposal on the wiki

• More email

Page 70: Open Source Intro for Startups

Decisions in Apache

• Email discussion

• Proposal on the wiki

• More email

• If necessary, vote

Page 71: Open Source Intro for Startups

Decisions in Apache

• Email discussion

• Proposal on the wiki

• More email

• If necessary, vote

• Can veto a technical change

Page 72: Open Source Intro for Startups

Decisions in Apache

• Email discussion

• Proposal on the wiki

• More email

• If necessary, vote

• Can veto a technical change

• Did I mention email?

Page 73: Open Source Intro for Startups

Apache Voting

• Usually limited to

• Releases

• Inviting a new committer

• If you have to resort to votes often, something is wrong

Page 74: Open Source Intro for Startups

Commit Bits

• When? It depends.

• In Apache, when contributor shows consistent commitment

• The ASF averages 15 new committers a month, but most of that is through new projects entering.

• Many projects only add 2 committers a year

Page 75: Open Source Intro for Startups

A Note on Size

• Most developer communities are small

• Even with large developers, most of the development is usually by a small number of developers

• Apache requires minimum of 3 independent votes for a release

Page 76: Open Source Intro for Startups

Apache’s Long Tail

!"#$%&'()*+,,,*-!./*0"*12*#314&5(26*&7*8%"9226&7'5*":*;!<=>+,,,*

* ?*@*?*

A325)&"75* B1"3)* ("C* -#B9(2* 62D24"#E27)* CB5* "%'B7&F26G*

B76* #%"D&625* 25527)&B4* 1B9H'%"376* :"%* 3762%5)B76&7'* "3%*

A3B7)&)B)&D2*%2534)5/**;7*)(2*72I)*529)&"7G*C2*)BH2*B*94"52%*4""H*

B)* )(2*6&5)%&13)&"7*":*62D24"#E27)G*62:29)* %2#B&%G*B76* )25)&7'*

C"%H* &7*)(2*-#B9(2*#%"J29)G*B5*C244*B5*)(2*9"62*B76*#%"9255*

:%"E*)(2*#"&7)*":*D&2C*":*935)"E2%*9"792%75/*

!" #$%&'('%'()*"+*,$-',"

;7* )(&5* 529)&"7* C2* #%2527)* %2534)5* :%"E* 52D2%B4* A3B7)&)B)&D2*

B7B4$525*":*)(2*B%9(&DB4*6B)B*:%"E*)(2*-8-!K=*#%"J29)/*0(2*

E2B53%25* C2* 62%&D2* :%"E* )(252* 6B)B* B%2* C244?53&)26* )"*

B66%255* "3%* %252B%9(* A325)&"75* L+MN* ("C2D2%G* )(2$* EB$* 12*

37:BE&4&B%* )"* EB7$* %2B62%5* 5&792* )(2$* B%2* 7")* 5":)CB%2*

E2)%&95* )(B)*B%2* &7*C&62*352G*2/'/G* LOGPM/* *Q"%*)(&5*%2B5"7G*C2*

#%"D&62* 6B)B* :%"E* 52D2%B4* 9"EE2%9&B4* #%"J29)5G* )"* '&D2* )(2*

%2B62%* 5"E2* 52752* ":* C(B)* H&765* ":* %2534)5* E&'()* 12*

2I#29)26/* *-4)("3'(*C2* #&9H26* 52D2%B4* 9"EE2%9&B4* #%"J29)5*

)(B)* B%2* %2B5"7B14$* 94"52* )"* -8-!K=G* 7"72* &5* B* #2%:29)*

EB)9(G* B76* )(2* %2B62%* 5("346* 7")* &7:2%* )(B)* )(2* DB%&B)&"7*

12)C227* )(252* 9"EE2%9&B4* #%"J29)5* B76* -8-!K=* &5* 632*

27)&%24$* )"* 6&::2%27925* 12)C227* 9"EE2%9&B4* B76* R<<*

62D24"#E27)*#%"925525/*

;)*&5*&E#"%)B7)*)"*7")2*)(B)*)(2*52%D2%*&5*625&'726*5"*)(B)*72C*

:379)&"7B4&)$* 7226* 7")* 12* 6&5)%&13)26* B4"7'* C&)(* )(2* 9"%2*

52%D2%/* * 0(2%2* B%2* C244* "D2%* S,,* :2B)3%2?:&4426* E"63425*

6&5)%&13)26* 1$* )(&%6* #B%)&25G* B76* )(35* 7")* &7943626* &7* "3%*

5)36$/* *.B7$* ":* )(252* E"63425* &794362* E"%2* 4&725* ":* 9"62*

)(B7*)(2*9"%2*52%D2%/*

!./"'01"2341"56"701"%89:01";1<1=58>1?7":5>>@?37A."

!"#$ %&'$ ()*+$ ,-&,.-$ '/&0-$ 1&2-$ 3&/$ *-'$ 4,)15-$

36*107&*).70+8$ $%&'$()*+$,-&,.-$ /-,&/0-2$,/&9.-(:8$ $%&'$

()*+$,-&,.-$/-,)7/-2$2-3-10:8$

0(2* #B%)&9&#B)&"7* &7* -#B9(2* 62D24"#E27)* "D2%B44* CB5* A3&)2*

C&62G*C&)(*B4E"5)*O,,*&76&D&63B45*9"7)%&13)&7'*9"62*)(B)*CB5*

&79"%#"%B)26*&7)"*B*9"E#B%B)&D24$*5EB44*#%"639)/**;7*"%62%*)"*

522*("C*EB7$*#2"#42*9"7)%&13)26*72C*:379)&"7B4&)$*B76*("C*

EB7$* C2%2* &7D"4D26* &7* %2#B&%&7'* 62:29)5G* C2* 6&5)&7'3&5(26*

12)C227* 9(B7'25* )(B)* C2%2* EB62* B5* B* %2534)* ":* B* #%"142E*

%2#"%)* T8U* 9(B7'25V* B76* )("52* )(B)* C2%2* 7")* T7"7?8U*

9(B7'25V/* *W2*:"376* )(B)*SX+*#2"#42*9"7)%&13)26* )"*YZ@*8U*

9(B7'25G* C(&42* +OZ* #2"#42* 9"7)%&13)26* )"* Y,Z+* 7"7?8U*

9(B7'25/**

W2* 2IBE&726* )(2* [\]^[* )"* 62)2%E&72* )(2* 73E12%* ":*

#2"#42*C("*531E&))26*#%"142E*%2#"%)5/**0(2*#%"142E*%2#"%)5*

9"E2* :%"E* B* E39(* C&62%* '%"3#* ":* #B%)&9&#B7)5/* ;7* :B9)G*

B%"376* _,Y,* 6&::2%27)* #2"#42* 531E&))26* _ZP@* #%"142E*

%2#"%)5/* O@X* &76&D&63B45* 531E&))26* @ZS* %2#"%)5* )(B)*

53152A327)4$* 9B3526* B* 9(B7'2* )"* )(2* -#B9(2* 9"62* "%*

6"93E27)B)&"7/*+Y@O*&76&D&63B45*531E&))26*__XO*%2#"%)5*)(B)*

6&6*7")*%2534)*&7*B*9(B7'2/**

!.B" C5D" D92" D5EF" ;327E3G@71;" D3703?" 701" ;1<1=58>1?7"

:5>>@?37AH"

!;#$<-/-$ 05-:-$ 36*107&*:$ 1)//7-2$ &60$ 9+$ 27:07*10$ =/&6,:$ &3$

,-&,.->$7?-?>$272$,-&,.-$,/7()/7.+$)::6(-$)$:7*=.-$/&.-8$$@72$

.)/=-$ *6(9-/:$ &3$ ,-&,.-$ ,)/0717,)0-$ :&(-'5)0$ -A6)..+$ 7*$

05-:-$)107B707-:>$&/$272$)$:()..$*6(9-/$&3$,-&,.-$2&$(&:0$&3$

05-$'&/C8*

Q&%5)G*C2*2IBE&72*#B%)&9&#B)&"7*&7*'272%B)&7'*9"62/**Q&'3%2*S*

#4")5* )(2* 93E34B)&D2* #%"#"%)&"7* ":* 9"62* 9(B7'25* TD2%)&9B4*

BI&5V* D2%535* )(2* )"#* `* 9"7)%&13)"%5* )"* )(2* 9"62* 1B52*

T("%&F"7)B4*BI&5V/*

Number of individuals

1 5 10 15 50 100 388

0.0

0.2

0.4

0.6

0.8

1.0

Fraction of MRs

Fraction of Delta

Fraction of Lines Added

Fraction of Lines Deleted

*

Q&'3%2*S/**D5-$16(6.)07B-$27:0/79607&*$&3$1&*0/79607&*:$0&$05-$

1&2-$9):-?*

0(2* 9"7)%&13)"%5* B%2* "%62%26* 1$* )(2* 73E12%* ":* .U5* :%"E*

4B%'25)* )"* 5EB4425)/* 0(2* 5"4&6* 4&72* &7* Q&'3%2* S* 5("C5* )(2*

93E34B)&D2* #%"#"%)&"7* ":* 9(B7'25* B'B&75)* )(2* 73E12%* ":*

9"7)%&13)"%5/* 0(2* 6"))26* B76* 6B5(26* 4&725* 5("C* )(2*

93E34B)&D2* #%"#"%)&"7* ":* B6626* B76* 6242)26* 4&725* B76* )(2*

#%"#"%)&"7* ":* 624)B* TB7*.U* '272%B)25* "72* 624)B* :"%* 2B9(* ":*

)(2*:&425*&)*9(B7'25V/*0(252*E2B53%25*9B#)3%2*DB%&"35*B5#29)5*

":*9"62*9"7)%&13)&"7/*

Q&'3%2*S* 5("C5* )(B)* )(2* )"#*S@*62D24"#2%5*9"7)%&13)26*E"%2*

)(B7* X_a* ":* )(2*.U5* B76* 624)B5G* XXa* ":* B6626* 4&725* B76*

ZSa* ":* 6242)26* 4&725/* b2%$* 4&))42* 9"62* B76G* #%253EB14$G*

9"%%25#"76&7'4$*5EB44*2::"%)*&5*5#27)*1$*7"7?9"%2*62D24"#2%5*

T:"%* 5&E#4&9&)$G* &7* )(&5* 529)&"7*C2* %2:2%* )"*B44* )(2*62D24"#2%5*

"3)5&62*)(2*)"#*S@*'%"3#*B5*7"7?9"%2V/*0(2*.U5*6"72*1$*9"%2*

62D24"#2%5* B%2* 5315)B7)&B44$* 4B%'2%* )(B7* )("52* 6"72* 1$* )(2*

7"7?9"%2*'%"3#/*0(&5*6&::2%2792*&5*5)B)&5)&9B44$*5&'7&:&9B7)N*)(2*

6&5)%&13)&"7* ":* .U* :%B9)&"7* &5* 5&'7&:&9B7)4$* T#* c* ,/,SV*

6&::2%27)* :%"E* )(2* 6&5)%&13)&"7* ":* B6626* 4&725* 35&7'*

d"4E"'"%"D?<E&%7"D*)25)/**

`2I)G*C2*4""H26*52#B%B)24$*B)*8U*9(B7'25*"74$/*0(2%2*CB5*B*

4B%'2*T#?DB432*c*,/,SV*6&::2%2792*12)C227*6&5)%&13)&"75*":*8U*

B76* 7"7?8U* 9"7)%&13)&"75/* 8U* 9"7)%&13)&"75* B%2* 5("C7* &7*

Q&'3%2*+/*0(2*59B425*B76*62D24"#2%*"%62%*B%2* )(2*5BE2*B5* &7*

Feilding, Herbleb & Mockus, 2000

http://opensource.mit.edu/papers/mockusapache.pdf

Page 77: Open Source Intro for Startups

Linux 2.6.20

50% of the changes where made by2.5% of the developers

Who Wrote 2.6.20?http://lwn.net/Articles/222773/

by corbet

Page 78: Open Source Intro for Startups

What Does That Mean?

It means a huge number of contributors (741) who made thousands of small contributions

Page 79: Open Source Intro for Startups

Community > Code

Page 80: Open Source Intro for Startups

Why Community

Factorof

Success

Time

Page 81: Open Source Intro for Startups

Why Community

Factorof

Success

Time

Code

Page 82: Open Source Intro for Startups

Why Community

Factorof

Success

Time

Code

Community

Page 83: Open Source Intro for Startups

code

Page 84: Open Source Intro for Startups

Code Characteristics

• Directly useful to developers (itch)

• Common standards

• Composable

• Consistent

• Improvable

Page 85: Open Source Intro for Startups

Composability

The Architecture of Participation: Does Code Architecture Mitigate Free Riding in the

Open Source Development ModelBaldwin and Clark, 2005

http://www.people.hbs.edu/cbaldwin/DR2/BaldwinArchPartAll.pdf

... codebases that are more modular or have more option value increase developers’ incentives to join and to remain involved in an open source development effort; and decrease the amount of free-riding in equilibrium.

Page 86: Open Source Intro for Startups

release earlyrelease often

Page 87: Open Source Intro for Startups

tools

Page 88: Open Source Intro for Startups

Tools shape the code and the community.

Page 89: Open Source Intro for Startups

The Secret Sauce

Page 90: Open Source Intro for Startups

Secret Sauce

• Website or Wiki

• Source Code Repository

• Bug Tracker

• Mailing List

Page 91: Open Source Intro for Startups

Secret Sauce

“Every successful open source project I know uses [these tools]. Every closed source project I know, doesn't. ... People wonder how open source projects manage to create high-quality products without managers or accountability. The answer: we're accountable to our infrastructure.

- Ted Hustedhttp://jroller.com/TedHusted/entry/prim

Page 92: Open Source Intro for Startups

Source Code Repository

• Controls access to source code

• Keeps track of all changes

• Allows for branching and merging of changes

• Allows multiple people to work on the same code at the same time

Page 93: Open Source Intro for Startups

Source Code Repository

• CVS

• Subversion (svn)

• Git

• Bazaar (bzr)

• Mercurial

Page 94: Open Source Intro for Startups

Source Code Repository

SVNCVS

GitBzr

Mercurial

Page 95: Open Source Intro for Startups

Source Code Repository

Centralization

SVNCVS

GitBzr

Mercurial

Page 96: Open Source Intro for Startups

Subversion

Remote Repository

Local Repositories

Page 97: Open Source Intro for Startups

Subversion

Page 98: Open Source Intro for Startups

Subversion

‣ svn co https://svn.apache.org/repos/asf/felix/trunk felix

Page 99: Open Source Intro for Startups

Subversion

‣ svn co https://svn.apache.org/repos/asf/felix/trunk felix

‣ emacs

Page 100: Open Source Intro for Startups

Subversion

‣ svn co https://svn.apache.org/repos/asf/felix/trunk felix

‣ emacs

‣ svn status

Page 101: Open Source Intro for Startups

Subversion

‣ svn co https://svn.apache.org/repos/asf/felix/trunk felix

‣ emacs

‣ svn status

‣ svn commit -m “fixed test cases”

Page 102: Open Source Intro for Startups

The Secret Sauce is Free

code.google.comsourceforge.net

github.comtrac

Page 103: Open Source Intro for Startups

Making Open Source Work

Page 104: Open Source Intro for Startups

Making Open Source Work

• Using open source tools

• Including or extended open source code

• Contributing to open source project

• Releasing your own open source code

Page 105: Open Source Intro for Startups

Using Open Source Tools

• Best tools available

• Lowest cost

• Community support

• Widely popular

• Examples: IDEs, Editors, OS, Servers, ...

Page 106: Open Source Intro for Startups

Include Open Source

• Reuse common code

• Add proprietary features

• Use Apache or LGPL license

Page 107: Open Source Intro for Startups

Contributing

• Lower cost than forking

• Get community feedback and support

• Gain recognition and good will

Page 108: Open Source Intro for Startups

Release Open Source

• Grow or control market share

• Collaborate with partners or competitors

• Lower total cost of ownership

• Create your own community

• Get feedback/help from contributors

Page 109: Open Source Intro for Startups

Open Source Business

Page 110: Open Source Intro for Startups

Open Source Business• Infrastucture

• Google

Page 111: Open Source Intro for Startups

Open Source Business• Infrastucture

• Google

• Sell support and services

• Red Hat, Spring Source, consultants

Page 112: Open Source Intro for Startups

Open Source Business• Infrastucture

• Google

• Sell support and services

• Red Hat, Spring Source, consultants

• Embrace and extend

• IBM

Page 113: Open Source Intro for Startups

Open Source Business• Infrastucture

• Google

• Sell support and services

• Red Hat, Spring Source, consultants

• Embrace and extend

• IBM

• GPL monopoly

• MySQL, Sun, Alfresco, Sugar CRM

Page 114: Open Source Intro for Startups

Learning More

Page 115: Open Source Intro for Startups

STARTUP SCHOOLJULY 18

startupschool.hksua.com.hk

Page 116: Open Source Intro for Startups

Hong Kong barcampSeptember 2009

http://barcamp.org/BarCampHongKong

Page 117: Open Source Intro for Startups

Thank you

Page 118: Open Source Intro for Startups

Resources

[email protected]

• www.cubiclemuses.com

• Cathedral and the Bazaar by ESR• www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/

• Producing Open Source Software by Karl Fogel

• www.producingoss.com