Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Code, Community, and Open Source

1,948 views

Published on

My keynote at the CloudStack Collaboration Conference 2012 event. Overview of The Apache Way, the Lesson's Learned at the Apache Software Foundation on building code and community.

Published in: Technology

Code, Community, and Open Source

  1. 1. Apache: Code, Community and Open SourceJ i m J a g i e l s k i | | @ j i m j a g
  2. 2. AgendaIntroductionOverview of the ASFThe What and Why of “Open Source”The Lessons Learned by the ASF - The ApacheWay This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  3. 3. IntroductionJim Jagielski Longest still-active developer/contributor Co-founder of the ASF Member, Director and President Director: Outercurve and OSI Consulting Engineer with Red Hat This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  4. 4. The ASFASF == The Apache Software FoundationBefore the ASF there was “The ApacheGroup”The ASF was incorporated in 1999 This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  5. 5. The ASFNon-profit corporation founded in 1999501( c )3 public charityVolunteer organization (The ASF doesn’t payanyone to work on Apache projects)Virtual world-wide organization - Membership ofIndividualsExists to provide the organizational, legal, andfinancial support for various OSS projects - let thedevelopers develop This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  6. 6. Structure of the ASF - legalMember-based corporation - individuals onlyMembers nominate and elect new membersMembers elect a board - 9 seatsSemi-annual meetings via IRCEach PMC has a Chair - eyes and ears of theboard (oversight only) This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  7. 7. ASF “Org Chart”Technical Oversight Organizational Oversight Development AdministrativePMCs PMC Members(TLPs) ~2000 Members ~400 Elects Committers~100 ~4500 Contributors Officers ~100 Appoints Reports Patchers/Buggers Users Creates Board 9 & Updates This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  8. 8. Issues with Dual StacksDespite clear differentiation, sometimes thereare leaks eg: PMC chair seen as “lead” developerSometimes officers are assumed to have toomuch power if they venture into developmentissues “hats” This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  9. 9. The ASF’s MissionProvide open source software to the publicfree of chargeProvide a foundation for open, collaborativesoftware development projects by supplyinghardware, communication, and businessinfrastructureCreate an independent legal entity to whichcompanies and individuals can donateresources and be assured that those resourceswill be used for the public benefit This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  10. 10. The ASF’s MissionProvide a means for individual volunteers to besheltered from legal suits directed at theFoundation’s projectsProtect the ‘Apache’ brand, as applied to itssoftware products, from being abused by otherorganizationsProvide legal and technical infrastructure foropen source software development and toperform appropriate oversight of such software This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  11. 11. Vision StatementThe Apache Software Foundation providessupport for the Apache community of open-source software projects. The Apache projectsare characterized by a collaborative,consensus based development process, anopen and pragmatic software license, and adesire to create high quality software thatleads the way in its field. We considerourselves not simply a group of projectssharing a server, but rather a community ofdevelopers and users. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  12. 12. Vision Statement, Take 2Community created codeOur code should be exceptional This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  13. 13. Why Open Source?Access to the source codeAvoid vendor lock-in (or worse!)Much better softwareBetter security record (more eyes)Much more nimble development - frequentreleasesDirect user input This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  14. 14. The draw of Open SourceHaving a real impact in the development anddirection of ITPersonal satisfaction: I wrote that!Sense of membership in a communitySense of accomplishment - very quickturnaround timesDevelopers and engineers love to tinker -huge opportunity to do so This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  15. 15. Open Source FUDNo quality or quality controlPrevents or slows developmentHave to “give it away for free”No real innovation This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  16. 16. What is Open Source?Open Source Licensing OSI ApprovedFree Software As in Free Speech, not Free BeerOpen Source Methodology (secondary) ala, the Apache Software Foundation This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  17. 17. Open Source LicensesGive Me Credit AL, BSD, MITGive Me Fixes (L)GPL, EPL, MPLGive Me Everything GPL - Dave Johnson http://rollerweblogger.org/page/roller?entry=gimme_credit_gimme_fixes_gimmem This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  18. 18. The Apache License (AL)A liberal open source software license - BSD-likeBusiness friendlyRequires attributionIncludes Patent GrantEasily reused by other projects &organizations This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  19. 19. License DifferencesMainly involve the licensing of derivativeworksOnly really applies during (re)distribution ofworkWhere the “freedom” should be mostlyfocused: the user or the code itselfBe careful when mixing licenses! This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  20. 20. One True LicenseThere is no such thingLicensing is selected to address what you aretrying to doIn general, Open Standards do better withAL-like licenseIf wide adoption is important to you: againAL. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  21. 21. The Apache WayAlthough the term is deprecated, “TheApache Way” relates to how the ASF (and itsprojects) work and operateBasically, the least common denominators onhow PMCs operate This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  22. 22. Why focus on ASF ? http://www.zdnet.com/blog/open-source/oracle-gives- openoffice-to-apache/9035 http://webmink.com/essays/#OBR This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  23. 23. Basic MemesMeritocracyPeer-basedConsensus decision makingCollaborative developmentResponsible oversightIndividual Participation This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  24. 24. Meritocracy“Govern by Merit”Merit is based on what you doMerit never expiresThose with merit, get more responsibilityProvides incentive to Do More This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  25. 25. Peer-basedDevelopers represent themselves - individualsMutual trust and respectAll votes hold the same weight (no BDFL)Community created code Healthy communities create healthy code Poisonous communities don’tFeel as part of a community This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  26. 26. Why Community -> CodeSince we are all volunteers, people’s time andinterests changeA healthy community is “warm and inviting”and encourages a continued influx ofdevelopersPoisonous people/communities turn peopleoff, and the project will dieEnd result - better code, long-term code This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  27. 27. Consensus decision makingKey is the idea of voting +1 - yes +0 - no real comment -1 - vetoSometimes you’ll also see stuff like -0, -0.5,etc... This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  28. 28. VotingThe main intent is to gauge developeracceptanceVetos must be justifiable and have soundtechnical meritIf valid, Vetos cannot be overruledVetos are very rare This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  29. 29. Commit ProcessReview Then Commit (RTC) A patch is submitted to the project for inclusion If at least 3 +1s and no -1s, code is committed Good for stable branches Ensures enough “eyes on the code” on a direct-to-release path This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  30. 30. Commit ProcessCommit Then Review (CTR) A patch is committed directly to the code Review Process happens post commit Good for development branches Depends on people doing reviews after the fact Allows very fast development This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  31. 31. Commit ProcessLazy Consensus variant of RTC “I plan on committing this in 3 days” Provides opportunity for oversight, but with known “deadline” As always, can be vetoed after the fact This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  32. 32. Collaborative DevelopmentCode is developed by the communityVoting ensures at least 3 active developersDevelopment done online and on-list If it didn’t happen on-list, it didn’t happen This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  33. 33. Collaborative DevelopmentMailing lists are the preferred method Archived Asynchronous Available to anyone - public list This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  34. 34. Collaborative DevelopmentOther methods are OK, if not primary Wikis IRC F2FAlways bring back to the list This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  35. 35. Responsible OversightEnsure license complianceTrack IPQuality codeQuality community This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  36. 36. Look Familiar?These concepts are not new or uniqueBest practices regarding how the Scientificand Health community works This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  37. 37. Publish or PerishIn Open Source, frequent releases indicatehealthy activityWhat is collaborative s/w development otherthan peer review?Think how restrictive research would be w/oopen communication This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  38. 38. The Apache IncubatorEntry point for all new projects andcodebasesIndoctrinates the Apache Way to the podlingEnsures and tracks IP This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  39. 39. Contributor License Agreementaka: iCLA (for individual)Required of all committersGuarantees: The person has the authority to commit the code That the ASF can relicense the codeDoes NOT assign copyright This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  40. 40. DevelopmentThe ASF never pays for development of projectsSome contributors are corporate sponsored,some aren’t but as far as the ASF is concerned itmakes no difference!Diversity == Independencegit-like mega merges are counter-productiveCode is one form of contributing, not the onlyform. This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  41. 41. Other FoundationsFoundations (independent) are critical forwidespread adoption of s/wASF: totally vendor neutral - Sponsors don’tcontrol/manage/direct the foundation norprojects“There are other ways of doing things, whatwe’ve been doing has simply be proven to beone of the best.” This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  42. 42. Helpful linksThe Apache Software Foundation www.apache.org community.apache.orgRed Hat, Inc (my employer) www.redhat.comCloudStack podling incubator.apache.org/cloudstack/ This work is licensed under a Creative Commons Attribution 3.0 Unported License.
  43. 43. That’s ItThank you!Any questions? @jimjag | www.slideshare.net/jimjag jim@jaguNET.com This work is licensed under a Creative Commons Attribution 3.0 Unported License.

×