making open source work

136
Making Open Source Work J Aaron Farr Sep 2008

Upload: j-aaron-farr

Post on 13-May-2015

6.106 views

Category:

Business


0 download

DESCRIPTION

A broad introduction to what open source software is, how open source communities work, the differences between open source licenses and insights into the Apache Software Foundation. Prepared and delivered to Microsoft in Hong Kong.

TRANSCRIPT

Page 1: Making Open Source Work

Making Open Source WorkJ Aaron Farr

Sep 2008

Page 2: Making Open Source Work

Me

Page 3: Making Open Source Work

Aaron馮傑仁

Page 4: Making Open Source Work

farra @ apache . org

Page 5: Making Open Source Work

DirectorApache Software

Foundation

Page 6: Making Open Source Work

Co-Founder

JadeTower!"

Page 8: Making Open Source Work

• Independent US non-profit

• Volunteer organization

• Virtual world-wide organization

• Currently hosts more than 50 software projects

• More than 1000 contributors and almost 300 members

• Began as the Apache Group in 1996

• Incorporated as the ASF in 1999

Apache Software Foundation

Page 9: Making Open Source Work

Apache Committers

Page 10: Making Open Source Work

Apache Committers

Page 11: Making Open Source Work

Apache Committers

Page 12: Making Open Source Work

Apache Committers

Page 13: Making Open Source Work

Apache Committers

Page 14: Making Open Source Work

Apache Members

• Foundation shareholders

• Elected by peers

• Currently 272

Page 15: Making Open Source Work

Virtual World-Wide Org

North AmericaSouth AmericaEuropeAfricaAustraliaAsia

Page 16: Making Open Source Work

Org Chart

BOARD

FOUNDATION MEMBERS

OFFICERS COMMITTEESPROJECT MANAGEMENT

COMMITTEES(PMC)

COMMITTERS

Page 17: Making Open Source Work

Org Chart

• Legal

• Security

• Public Relations

• Infrastructure

• Conference Planning

CommitteesBoard Members

9 Members Elected Annually

Page 18: Making Open Source Work

Free & Open Source Software

Licenses

Community

Code

Landscape

Page 19: Making Open Source Work

Relevance

Page 20: Making Open Source Work
Page 21: Making Open Source Work

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

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

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

Page 22: Making Open Source Work

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 23: Making Open Source Work
Page 24: Making Open Source Work
Page 25: Making Open Source Work

`

SourceForge

180,000+

Page 26: Making Open Source Work

Commercial Support

Page 27: Making Open Source Work

Commercial Support

• IBM

• Sun

• Intel

• Apple

• HP

• Dell

• Novell

• Oracle

• Motorola

• Google

• Yahoo

Page 28: Making Open Source Work

Commercial Support

• IBM

• Sun

• Intel

• Apple

• HP

• Dell

• Novell

• Oracle

• Motorola

• Google

• Yahoo

• Microsoft

Page 29: Making Open Source Work

What is Open Source?

Page 30: Making Open Source Work

Open Source describes a software license that

ensures certain freedoms.

Page 31: Making Open Source Work

• 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 32: Making Open Source Work

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 33: Making Open Source Work

What’s the difference between free software

and open source software?

Page 34: Making Open Source Work

License and Philosophy

Page 35: Making Open Source Work

Free

Page 36: Making Open Source Work

自由免費

Page 37: Making Open Source Work

自由免費

Page 38: Making Open Source Work

Who’s freedom?What freedom?

Page 39: Making Open Source Work

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 under certain conditions.

Page 40: Making Open Source Work

Licenses

Page 41: Making Open Source Work

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 42: Making Open Source Work

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

64

Page 43: Making Open Source Work

3 Kinds

Page 44: Making Open Source Work

Give Me CreditGive Me Code

Give Me Everything

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

Page 45: Making Open Source Work

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 46: Making Open Source Work

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 47: Making Open Source Work

Give Me Everything

• Copyleft

• Share and Share Alike

• Derivative works remain under original license

• GPL

Page 48: Making Open Source Work

License ScopeVirus Index

Page 49: Making Open Source Work

License Scope

AL MPL GPL

Virus Index

Page 50: Making Open Source Work

Can I Relicense?

AL MPL GPL

Page 51: Making Open Source Work

Can I Relicense?

AL MPL GPL

Page 52: Making Open Source Work

Can I Relicense?

AL MPL GPL

Page 53: Making Open Source Work

Can I Relicense?

AL MPL GPL

Page 54: Making Open Source Work

Can I Relicense?

AL MPL GPL

Page 55: Making Open Source Work

Can I Relicense?

AL MPL GPL

Page 56: Making Open Source Work

Can I Relicense?

AL MPL GPL

Page 57: Making Open Source Work

Can I Relicense?

AL MPL GPL

Page 58: Making Open Source Work

Can I Relicense?

AL MPL GPL

Page 59: Making Open Source Work

Why is that important?

Page 60: Making Open Source Work

Many developers don’t read licenses.

Page 61: Making Open Source Work

Open source developers need to be aware of the

licenses they use.

Page 62: Making Open Source Work

The right license depends on the code and the community.

Page 63: Making Open Source Work

Licenses encourage certain behaviors, discourage others.

Page 64: Making Open Source Work

community

Page 65: Making Open Source Work

http://xkcd.com/225/

Page 66: Making Open Source Work

Cathedral vs Bazaar

Page 67: Making Open Source Work

Cathedral

Page 68: Making Open Source Work

Cathedral

Page 69: Making Open Source Work

Bazaar

Page 70: Making Open Source Work

Bazaar

Page 71: Making Open Source Work

Community Culture

Cathedral Bazaar

Page 72: Making Open Source Work

Community Culture

Cathedral Bazaar

Page 73: Making Open Source Work

Who

Page 74: Making Open Source Work

Users Developers

Contributors

Page 75: Making Open Source Work

Path to Contribution

Developer

Contributor

User

Public

Involvement

Page 76: Making Open Source Work

Meritocracy

Page 77: Making Open Source Work

Meritocracy

Govern of MeritIt’s about what you do.Those who do, decide .

Page 78: Making Open Source Work

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 79: Making Open Source Work

When to Commit?

Page 80: Making Open Source Work

Commit Then Review

Page 81: Making Open Source Work

Review Then Commit

Page 82: Making Open Source Work

Consensus Decision Making• Most decisions made on mailing list without

voting, sometimes by way of lazy consensus.

• Voting rules

Yes Abstain No (veto)+1 0 -1

• For releases, 3 +1’s required, no vetos

• A -1 veto requires proposal of alternate solution

Page 83: Making Open Source Work

Open Communication

• Communication is done online.

• Email lists are preferred form of communication.

• Most communication is publicly archived.

• Most lists are open to any subscriber.

Page 84: Making Open Source Work

Responsible Oversight

• Security is mandatory

• Ensure license compliance

• Release only high quality software

• No abuse of Apache brand or community

Page 85: Making Open Source Work

Peer to Peer

• We work with people, not companies.

• Committers and members should hold one another with respect.

• All votes hold the same weight.

• Community over code.

Page 86: Making Open Source Work

The Apache Way

• Meritocracy

• Peer to Peer

• Consensus decision making

• Open, online communication

• Responsible oversight

Page 87: Making Open Source Work

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 88: Making Open Source Work

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 89: Making Open Source Work

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 90: Making Open Source Work

What Does That Mean?

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

Page 91: Making Open Source Work

Community > Code

Page 92: Making Open Source Work

Why Community

Factorof

Success

Time

Page 93: Making Open Source Work

Why Community

Factorof

Success

Time

Code

Page 94: Making Open Source Work

Why Community

Factorof

Success

Time

Code

Community

Page 95: Making Open Source Work

code

Page 96: Making Open Source Work

Code Characteristics

• Directly useful to developers (itch)

• Common standards

• Composable

• Consistent

• Improvable

Page 97: Making Open Source Work

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 98: Making Open Source Work

release earlyrelease often

Page 99: Making Open Source Work

tools

Page 100: Making Open Source Work

Tools shape the code and the community.

Page 101: Making Open Source Work

The Secret Sauce

Page 102: Making Open Source Work

Secret Sauce

• Website or Wiki

• Source Code Repository

• Bug Tracker

• Mailing List

Page 103: Making Open Source Work

Secret Sauce

• Portal

• Repository

• Issue Tracker

• Mailing List

PRIM

Page 104: Making Open Source Work

Secret Sauce

“Every successful open source project I know uses PRIM. 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.

PRIM is the open source secret sauce.”- Ted Husted

http://jroller.com/TedHusted/entry/prim

Page 105: Making Open Source Work

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 106: Making Open Source Work

Source Code Repository

SVNCVS

GitBzr

Mercurial

Page 107: Making Open Source Work

Source Code Repository

Centralization

SVNCVS

GitBzr

Mercurial

Page 108: Making Open Source Work

The Secret Sauce is Free

sourceforge.netcode.google.com

trac

Page 109: Making Open Source Work

Making Open Source Work

Licenses

Community

Code

Landscape

Page 110: Making Open Source Work
Page 111: Making Open Source Work

The LAMP stack

Page 112: Making Open Source Work

LinuxApacheMysql

PHP / Perl / Python ...

Page 113: Making Open Source Work

Apache powers half of all websites on the

internet.

Page 114: Making Open Source Work

Apache ProjectsHTTP Server

ActiveMQAntAPR

BeehiveCayenneCocoon

CommonsDB

DirectoryExcalibur

FelixForrest

GeronimoGump

HadoopHarmonyHiveMind

HttpComponentsiBATIS

Incubator

JackrabbitJakartaJamesLabsLenya

LoggingLuceneMavenMina

MyFacesODEOFBiz

OpenEJBOpenJPA

PerlPOI

PortalsRoller

SantuarioServiceMix

Shale

SpamAssassinSTDCXX

StrutsSynapseTapestry

TCLTiles

TomcatTurbineVelocityWicket

Web ServicesXalan

XercesXML

XMLBeansXML Graphics

Page 115: Making Open Source Work

Desktop

Page 116: Making Open Source Work

Linux

Page 117: Making Open Source Work
Page 118: Making Open Source Work

Gnome (GTK)KDE (QT)

Page 119: Making Open Source Work

Cross Platform

Page 120: Making Open Source Work

GTKwxWidgets

Java

Page 121: Making Open Source Work
Page 122: Making Open Source Work

Mobile

Page 123: Making Open Source Work
Page 124: Making Open Source Work
Page 125: Making Open Source Work
Page 126: Making Open Source Work
Page 127: Making Open Source Work

Why could this matter to you?

Page 128: Making Open Source Work

Open Source provides high quality free tools

for education and business.

Page 129: Making Open Source Work

The dot com and web 2.0 innovations would not

have been possible without free and open

source software.

Page 130: Making Open Source Work

FOSS commoditizes core foundation technologies, forcing innovation up the stack and enabling new

markets.

Page 131: Making Open Source Work

New user documentation is always

welcome.

Page 132: Making Open Source Work

Translations are especially welcome.

Page 133: Making Open Source Work

Local Events

Page 134: Making Open Source Work

BarCamp Hong KongSeptember 9

http://www.barcamp.hk

Page 135: Making Open Source Work

Thank you

Page 136: Making Open Source Work

Resources

[email protected]

• www.cubiclemuses.com

• Slides: http://cubiclemuses.com/cm/

• Cathedral and the Bazaar by ESR

• In the beginning was the command line by Neal Stephensen