Why is Open Source so
Good?
Thirty Years of Lessons
Learned
Mark Atwood mark.atwood@hp.com
Twitter: fallenpegasus
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Big Disclaimer

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Why is Open Source so good?

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Why is Closed Software so
bad?

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
We know what makes good software!
• Decoupled design
• Simple orthogonal interfaces
• Iterative Development
• Code Review
• Testing
• Happy Programmers
5

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Closed Source Process
• “Business Needs” drive development
• Meaningless deadlines
• Anti-pattern architecture
• Crunch time, crush passion
• Difficult process
• Yet too easy to add code
• Technical debt is always hard to pay off
6

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Open Source at Different
Scales

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
One Programmer
• “scratch the itch”
• Going to make it work
• Won’t make it too complex
• Will last as long as it’s useful

8

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
One person, plus contributors
• The one will code review everything
• The one is not going to break it
• The one can “pass the torch”
• Contributors cause “stone soup”

9

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Small Team
• Will write what makes them all happy
• Can’t force work they don’t want

10

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Large Team, on large projects
• Can Open Source possibly work?
• Lots of failures
• Lots of very painful successes
• Lots of lessons learned, if we look for them

11

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Big Disclaimer

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
GCC & Gnu BinUtils
• Tightly coupled team
• Tightly coupled design
• Resistant to outside contributions

13

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Conway’s Law
• “The organization of the software and the
organization of the software team will be
congruent”
• Loosely coupled teams encourages loosely
coupled software.

14

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Linux
• Really big “one, with contributors”
• We got very lucky (can’t manufacture a Linus as
needed)
• We discovered “Linus’s Law”
• We discovered DVCS

15

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Java & JCP
• Developed “corporate style”
• Unhappy developers
• Dominated by one company
• Closed testing, QA, certification

16

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
ASF Java
• “Deep Rich APIs”
• APIs are coupled to implementation
• Huge pile of churned out & aging “donated” code
• Uninvolved “maintainers”
• Did discover that big companies can collaborate

17

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
MySQL
• Dominated by one company
• Tightly coupled design
• Features driven by Marketing goals
• Feature Release over Time Release
• Hard to build
• Resistant to outside contributions
18

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Lessons we should learn
• Easy to get involved
• Easy to contribute
• Easy to use dev tooling
• Loose coupling
• Code Review is critical
• Tooling that encourages collaboration
• Human communication
19

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
OpenStack
• Not controlled by one company
• Business goals cannot override the process
• Code review is central
• APIs are HTTP REST WSGI
• Time Based Release
• No “commit bit”
20

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Open Source
• Apache 2.0 License
• Public DVCS (Git)
• Open Source friendly language (Python)
• Open Source friendly framwork (HTTP, REST,
WSGI, )

21

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Open Design
• Good ideas are welcome to try
• Service API oriented
• Necessary decisions by PTL & TC

22

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Open Development
• DVCS
• Public Code Review
• Infrastructure is Open Source
• Anyone can run dev

23

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Open Participation
• Egalitarian Process
• Open Design Summit, in person
• Open Meetings, in IRC
• Technical Leaders are chosing by the technical
contributors
• Representation on the governance

24

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Gated Trunk
• Ensures code quality
• Always start from working code
• Bad code does not land
• Same for everyone
• Machines don’t flame on the list

25

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Open Sources works when
• Decoupled design
• Code Review
• Easy participation
• Avoid corporate anti-patterns

26

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Thank you

© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.

Why is Open Source so Good: Thirty Years of Lessons Learned

  • 1.
    Why is OpenSource so Good? Thirty Years of Lessons Learned Mark Atwood mark.atwood@hp.com Twitter: fallenpegasus © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 2.
    Big Disclaimer © Copyright2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 3.
    Why is OpenSource so good? © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 4.
    Why is ClosedSoftware so bad? © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 5.
    We know whatmakes good software! • Decoupled design • Simple orthogonal interfaces • Iterative Development • Code Review • Testing • Happy Programmers 5 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 6.
    Closed Source Process •“Business Needs” drive development • Meaningless deadlines • Anti-pattern architecture • Crunch time, crush passion • Difficult process • Yet too easy to add code • Technical debt is always hard to pay off 6 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 7.
    Open Source atDifferent Scales © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 8.
    One Programmer • “scratchthe itch” • Going to make it work • Won’t make it too complex • Will last as long as it’s useful 8 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 9.
    One person, pluscontributors • The one will code review everything • The one is not going to break it • The one can “pass the torch” • Contributors cause “stone soup” 9 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 10.
    Small Team • Willwrite what makes them all happy • Can’t force work they don’t want 10 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 11.
    Large Team, onlarge projects • Can Open Source possibly work? • Lots of failures • Lots of very painful successes • Lots of lessons learned, if we look for them 11 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 12.
    Big Disclaimer © Copyright2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 13.
    GCC & GnuBinUtils • Tightly coupled team • Tightly coupled design • Resistant to outside contributions 13 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 14.
    Conway’s Law • “Theorganization of the software and the organization of the software team will be congruent” • Loosely coupled teams encourages loosely coupled software. 14 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 15.
    Linux • Really big“one, with contributors” • We got very lucky (can’t manufacture a Linus as needed) • We discovered “Linus’s Law” • We discovered DVCS 15 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 16.
    Java & JCP •Developed “corporate style” • Unhappy developers • Dominated by one company • Closed testing, QA, certification 16 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 17.
    ASF Java • “DeepRich APIs” • APIs are coupled to implementation • Huge pile of churned out & aging “donated” code • Uninvolved “maintainers” • Did discover that big companies can collaborate 17 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 18.
    MySQL • Dominated byone company • Tightly coupled design • Features driven by Marketing goals • Feature Release over Time Release • Hard to build • Resistant to outside contributions 18 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 19.
    Lessons we shouldlearn • Easy to get involved • Easy to contribute • Easy to use dev tooling • Loose coupling • Code Review is critical • Tooling that encourages collaboration • Human communication 19 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 20.
    OpenStack • Not controlledby one company • Business goals cannot override the process • Code review is central • APIs are HTTP REST WSGI • Time Based Release • No “commit bit” 20 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 21.
    Open Source • Apache2.0 License • Public DVCS (Git) • Open Source friendly language (Python) • Open Source friendly framwork (HTTP, REST, WSGI, ) 21 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 22.
    Open Design • Goodideas are welcome to try • Service API oriented • Necessary decisions by PTL & TC 22 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 23.
    Open Development • DVCS •Public Code Review • Infrastructure is Open Source • Anyone can run dev 23 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 24.
    Open Participation • EgalitarianProcess • Open Design Summit, in person • Open Meetings, in IRC • Technical Leaders are chosing by the technical contributors • Representation on the governance 24 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 25.
    Gated Trunk • Ensurescode quality • Always start from working code • Bad code does not land • Same for everyone • Machines don’t flame on the list 25 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 26.
    Open Sources workswhen • Decoupled design • Code Review • Easy participation • Avoid corporate anti-patterns 26 © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 27.
    Thank you © Copyright2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.