View
248
Download
0
Category
Preview:
Citation preview
LARGE SCALE OPEN SOURCEDEVELOPMENT MODELS
A COMPARATIVE ANALYSISBy Joe Gordon
WHYSaw OpenStack grow from around 60 developers to over 2,100developersUnusual development modelBut how do other projects solve the same problems?
WHY IS PICKING THE RIGHTDEVELOPMENT MODEL
IMPORTANT?
ACCELERATING GROWTHTime till 100 contributors
Linux: 1991 - 2 yearsLinux 2.0 had 190 contributors in 1996 in credits
OpenStack: 2010 - 1 yearDocker: 2013 - several months
over 300 contributors in its first year200 contributors per month
Linux: 1991 - June 2004 (13 years)Debian: 1993 - March 2007 (14 years)OpenStack: 2010 - October 2012 (2 years)
ACCELERATING GROWTHLinux, Debian, Docker, OpenStack (clockwise from top left)
source:
openhub
OPEN SOURCE IS BIG BUSINESSOpen source is the new standard bodiesBalancing corporate interests
Linux foundation Gold and Platinum Members
PICKING THE RIGHT DEVELOPMENT MODELCONWAY'S LAW
organizations which design systems ... are constrainedto produce designs which are copies of the
communication structures of these organizations
DEVELOPMENT MODELSPROJECTS COVERED
Linux KernelApache Software FoundationDebianOpenStackDocker
LINUX KERNELTime based release100-150 subsystem maintainers
Chain of trustDecentralized review process
Rolling development model
CULTUREChain of trustAbout the individualValue frankness over politenessCorporate friendlyNo single company controlsNot much automated pre commit testing
Failing testing is very bad for author
APACHE SOFTWAREFOUNDATION
ASF is more of a governance umbrella and cultureSeparate projects
4,400+ committers150+ top level projects
flat (ish) trust model'Review then commit' vs. 'commit then review'
I n o r d e r t o r e d u c e f r i c t i o n a n d a l l o w f o r d i v e r s i t y t o e m e r g e , r a t h e r t h a n f o r c i n ga m o n o c u l t u r e f r o m t h e t o p . . . e a c h p r o j e c t i s d e l e g a t e d a u t h o r i t y o v e r d e v e l o p m e n to f i t s s o f t w a r e , a n d i s g i v e n a g r e a t d e a l o f l a t i t u d e i n d e s i g n i n g i t s o w n t e c h n i c a lc h a r t e r a n d i t s o w n g o v e r n i n g r u l e s .
CULTURELazy consensusFocus is on the team
All decisions are team basedFocus is on contributors not companiesNo monoculture
Within the ASF we worry about any community whichcenters around a few individuals who are working
virtually uncontested.
DEBIAN
DEBIANWhen its ready, not time based. Notoriously slowPackage Maintainers: No review, trust maintainers more
CULTURERotating leadership (elections)Do-ocracy: An individual Developer may make any technical ornontechnical decision with regard to their own workOpen developmentIndependent not 'profit-driven': no imposed decisions by who has money,infrastructure, peopleno benevolent dictator, no oligarchyIt is all about the individual (although individual's can form groups)Territorial
OPENSTACK
OPENSTACKcontinuous delivery + stable releases
No rolling developmentBreak down into services and build teams around each service
5,000 commits per month from 500 contributorsStrong centralized review process (two core reviews per patch)Automated testing to reduce reviewer burdenHaving trouble with scaling the team responsible for a single repository
Can't get past 15 or so members on a core team
CULTUREGroup over individualEgalitarianElectionsWelcoming to new contributorsCorporate friendlyNot controlled by single companyLazy consensusDecentralized designUniform tooling/process across projects
CULTUREOPENSTACK'S 4 OPENS
Open Source, not open coreOpen DesignOpen DevelopmentOpen Community
Lazy consensustechnical governance is a meritocracyput everything in the public
FACTORS LIMITING GROWTHCross project issuesTeam sizeSingle vision
DOCKER
DOCKERRelease every 2 months from stable branch (master isn't frozen)Scaling
split into multiple reposMaintainers / subsystem maintainers35+ maintainers in Docker
1 ) T h e y s h a r e r e s p o n s i b i l i t y i n t h e p r o j e c t ' s s u c c e s s .2 ) T h e y h a v e m a d e a l o n g - t e r m , r e c u r r i n g t i m e i n v e s t m e n t t o i m p r o v e t h e p r o j e c t .3 ) T h e y s p e n d t h a t t i m e d o i n g w h a t e v e r n e e d s t o b e d o n e , n o t n e c e s s a r i l y w h a ti s t h e m o s t i n t e r e s t i n g o r f u n . "
T h i s " c e l l u l a r d i v i s i o n " i s t h e p r i m a r y m e c h a n i s m f o r s c a l i n g m a i n t e n a n c e o f t h ep r o j e c t a s i t g r o w s .
BDFLI d e a l l y , t h e B D F L r o l e i s l i k e t h e Q u e e n o f E n g l a n d : a w e s o m e c r o w n , b u t n o ta n a c t u a l o p e r a t i o n a l r o l e d a y - t o - d a y . T h e r e a l j o b o f a B D F L i s t o N E V E R G O A W A Y .. . . t h e B D F L w i l l a l w a y s b e t h e r e , p r e s e r v i n g t h e p h i l o s o p h y a n d p r i n c i p l e s o f t h ep r o j e c t , a n d k e e p i n g u l t i m a t e a u t h o r i t y o v e r i t s f a t e . T h i s g i v e s u s g r e a tf l e x i b i l i t y i n e x p e r i m e n t i n g w i t h v a r i o u s g o v e r n a n c e m o d e l s , k n o w i n g t h a t w e c a na l w a y s p r e s s t h e " r e s e t " b u t t o n w i t h o u t f e a r o f f r a g m e n t a t i o n o r d e a d l o c k . S e e t h eU S c o n g r e s s f o r a c o u n t e r - e x a m p l e .
B D F L d a i l y r o u t i n e :
* I s t h e p r o j e c t g o v e r n a n c e s t u c k i n a d e a d l o c k o r i r r e v e r s i b l y f r a g m e n t e d ? * I f y e s : r e f a c t o r t h e p r o j e c t g o v e r n a n c e* A r e t h e r e i s s u e s o r c o n f l i c t s e s c a l a t e d b y c o r e ? * I f y e s : r e s o l v e t h e m* G o b a c k t o p o l i s h i n g t h a t c r o w n .
CULTUREEmbraces the BDFLOpen sourceOpen designDocker the company dominates
Most of the maintainers are docker employeesAutomated testingBe Nice and Encourage diversity and participation
THINGS TO CONSIDER FORYOUR OWN PROJECT
There is no one size fits all solution
WHAT DOES OPEN EVEN MEAN?Open SourceOpen CoreOpen DesignOpen DevelopmentOpen Community
TOOLING CONSIDERATIONSBug trackingReview processTestingBarrier to entry for new contributors
DCO vs. CLADeveloper Certificate of OriginContributor Licensing Agreement
Overall workflow
DEVELOPMENT MODEL COMPONENTSCommunicationTeam scaling model
chain of trust modelflat trust modelmaintainers
Release cadenceStabilization periodsRolling developmentCI/CD
Number of artifactsDecision making process -- Consensus modelProject culture
PROBLEMS SPECIFIC TO OPEN SOURCEBDFLVisionManaging competing interestsCorporateConsensus modelTrust and Ownership
Team vs individualFirst come first serve?How do you fire someone?
THANK YOUQUESTIONS?
Slides can be found at jogo.github.io/development-models
Powered by reveal.js
Recommended