SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
Taking the Fear Out of
     Contributing

   Stephen Hemminger
    shemminger@vyatta.com
Code Quality
“Publicly making fun of people is half
 the fun of open source programming.

 In fact the main reason to eschew
 programming in closed environments
 is that you can't embarrass people in
 public.”
                      – Linus Torvalds
What manager's want
Why do people contribute?
●   Learn
●   Altruism
●   Fun
●   Fame & Fortune
●   Solve problems
What Maintainers say they do

                       Maintainer          Maintainer




            Project
Developer   Mailing
              List                  next     Linux




                      Reviewers
What developers see
                           Linus




          Linux
ME       Kernel
         Mailing
           List
“It's entirely possible that the current
user could be replaced by RCU
and/or seqlocks, and we could get rid
of brlocks entirely.”
– Linus Torvalds (Mar 9 2003)
2 days later...
2 weeks later...
2 years later...
What I learned
●   Encouragement and feedback
    –   Pat Mochel
    –   Linus
    –   David Miller
    –   Paul McKenney
●   Learned Internals
●   Encouragement from employer
Advice to developers
Have:
  F. ollow rules
  U. nderstand feedback
  N. egotiate
Main causes of failure
Things that make maintainers:
  M. assive
  A. rrogance
  D. ivisive
Patch Acceptance
                                        Massive
                                      from netdev patchwork

             100%



             75%
Acceptance




             50%



             25%



              0%
                          256         1024          4096       16384   65536   262144
                    128         512          2048          8192    32768   131072

                                              Patch size
Arrogance

ar·ro·gant (r-gnt)
adj.
1. Having or displaying a sense of overbearing self-
worth or self-importance.

2. Marked by or arising from a feeling or
assumption of one's superiority toward others: an
arrogant contempt for the weak.
Divisive Changes
●   Proprietary
●   Incompatible
●   Reinvention
●   Ugly
Glossophobia
Evaluation
●   Be prepared
●   Active Listening
●   Sandwich technique
●   Focus on 2 or 3 items
Troll free zone
●   Be genuine
●   Evaluate presentation not person
●   Personalize Language
●   Directed feedback
Lessons Learned
●   Risk = Reward
●   Practice makes perfect
●   Words matter
●   Evaluation causes growth
Alternative Evaluation Styles
        Toastmasters™           Linux™ Kernel
●   Tell and Sell       ●   Fire and Forget
●   Q&A                 ●   Email Threads
●   Group:              ●   Delegate:
    –   Voice               –   Style
    –   Gestures            –   Locking
    –   ...
                            –   API
                            –   ...
What is mentoring?
Bozeman and Feeney (2007) define mentoring
as “a process for the informal transmission of
knowledge, social capital, and the psychosocial
support perceived by the recipient as relevant
to work, career, or professional development;
mentoring entails informal communication,
usually face-to-face and during a sustained
period of time, between a person who is
perceived to have greater relevant knowledge,
wisdom, or experience (the mentor) and a
person who is perceived to have less (the
protègè).”
Virtual Tunnel Interface
Finding a Mentor
●   Local
●   Company
●   Kernel mentors mailing list
http://kernelnewbies.org/KernelMentors
Role of Mentor
●   Process mentoring
●   Shoulder to cry on
●   Local advocate
●   Cheerleader
For maintainers
●   Emphasize good review
●   Assign mentors for new people?
●   Track contribution status – patchwork
●   Delegate review roles
●   Encourage friendly dialogue
●   Evaluate review process
Ideas
●   Teach reviewing
    –   Documentation/ReviewingPatches?
    –   get_reviewers.pl?
●   Document kernel semantics
    –   More lessons like RCU?
    –   Interactive tutorials
Thank you

Contenu connexe

En vedette

Performance challenges in software networking
Performance challenges in software networkingPerformance challenges in software networking
Performance challenges in software networkingStephen Hemminger
 
Virtual Network Performance Challenge
Virtual Network Performance ChallengeVirtual Network Performance Challenge
Virtual Network Performance ChallengeStephen Hemminger
 
Integrating Linux routing with FusionCLI™
Integrating Linux routing with FusionCLI™Integrating Linux routing with FusionCLI™
Integrating Linux routing with FusionCLI™Stephen Hemminger
 
I/O仮想化最前線〜ネットワークI/Oを中心に〜
I/O仮想化最前線〜ネットワークI/Oを中心に〜I/O仮想化最前線〜ネットワークI/Oを中心に〜
I/O仮想化最前線〜ネットワークI/Oを中心に〜Ryousei Takano
 

En vedette (8)

Performance challenges in software networking
Performance challenges in software networkingPerformance challenges in software networking
Performance challenges in software networking
 
Userspace networking
Userspace networkingUserspace networking
Userspace networking
 
Llnw bufferbloat
Llnw bufferbloatLlnw bufferbloat
Llnw bufferbloat
 
Virtual Network Performance Challenge
Virtual Network Performance ChallengeVirtual Network Performance Challenge
Virtual Network Performance Challenge
 
Integrating Linux routing with FusionCLI™
Integrating Linux routing with FusionCLI™Integrating Linux routing with FusionCLI™
Integrating Linux routing with FusionCLI™
 
Bufferbloat is alll Wet!
Bufferbloat is alll Wet!Bufferbloat is alll Wet!
Bufferbloat is alll Wet!
 
I/O仮想化最前線〜ネットワークI/Oを中心に〜
I/O仮想化最前線〜ネットワークI/Oを中心に〜I/O仮想化最前線〜ネットワークI/Oを中心に〜
I/O仮想化最前線〜ネットワークI/Oを中心に〜
 
Dpdk performance
Dpdk performanceDpdk performance
Dpdk performance
 

Similaire à Taking the Fear Out of Contributing

Davide Casali - Social Interaction Design
Davide Casali - Social Interaction Design Davide Casali - Social Interaction Design
Davide Casali - Social Interaction Design Social Media Lab
 
Online Collaboration — Delivering Benefits for Organisations and Participants
Online Collaboration — Delivering Benefits for Organisations and ParticipantsOnline Collaboration — Delivering Benefits for Organisations and Participants
Online Collaboration — Delivering Benefits for Organisations and Participantsdanrandow
 
The 360 Developer
The 360 DeveloperThe 360 Developer
The 360 Developerenteritos
 
Creating and Maintaining an Inclusive DevOps Culture
Creating and Maintaining an Inclusive DevOps CultureCreating and Maintaining an Inclusive DevOps Culture
Creating and Maintaining an Inclusive DevOps Culturejudy (fink) johnson
 
Virtual & Local Teams: Communication Success and Failure
Virtual & Local Teams: Communication Success and FailureVirtual & Local Teams: Communication Success and Failure
Virtual & Local Teams: Communication Success and Failurekstcmoore
 
GeneralAssemb.ly Summer Program: Tech from the Ground Up
GeneralAssemb.ly Summer Program: Tech from the Ground UpGeneralAssemb.ly Summer Program: Tech from the Ground Up
GeneralAssemb.ly Summer Program: Tech from the Ground UpDaniel Doubrovkine
 
Transmedia Living Lab, Madrid
Transmedia Living Lab, MadridTransmedia Living Lab, Madrid
Transmedia Living Lab, MadridRobert Pratten
 
Transmedia living lab madrid
Transmedia living lab madridTransmedia living lab madrid
Transmedia living lab madridRobert Pratten
 
Saving Plone from Plone agony
Saving Plone from Plone agonySaving Plone from Plone agony
Saving Plone from Plone agonyMikko Ohtamaa
 
Global Leadership: Navigating Leadership for the Future
Global Leadership: Navigating Leadership for the FutureGlobal Leadership: Navigating Leadership for the Future
Global Leadership: Navigating Leadership for the FutureCheryl Doig
 
Digital futures - planning for change
Digital futures - planning for changeDigital futures - planning for change
Digital futures - planning for changeDerek Wenmoth
 
Bdd - how to solve communication problems
Bdd - how to solve communication problemsBdd - how to solve communication problems
Bdd - how to solve communication problemsReload! A/S
 
LxD - Learner Experience Design
LxD - Learner Experience DesignLxD - Learner Experience Design
LxD - Learner Experience DesignJulie Dirksen
 
The problem solvers problem
The problem solvers problemThe problem solvers problem
The problem solvers problemAgileOnTheBeach
 
hcd_masks_and_backpack.pptx
hcd_masks_and_backpack.pptxhcd_masks_and_backpack.pptx
hcd_masks_and_backpack.pptxssuser17b4a61
 
OpenStack Upstream Training Report
OpenStack Upstream Training ReportOpenStack Upstream Training Report
OpenStack Upstream Training ReportRakuten Group, Inc.
 

Similaire à Taking the Fear Out of Contributing (20)

Introduction to Design Thinking Workshop
Introduction to Design Thinking WorkshopIntroduction to Design Thinking Workshop
Introduction to Design Thinking Workshop
 
HackYale 0-60 in Startup Tech
HackYale 0-60 in Startup TechHackYale 0-60 in Startup Tech
HackYale 0-60 in Startup Tech
 
Davide Casali - Social Interaction Design
Davide Casali - Social Interaction Design Davide Casali - Social Interaction Design
Davide Casali - Social Interaction Design
 
Online Collaboration — Delivering Benefits for Organisations and Participants
Online Collaboration — Delivering Benefits for Organisations and ParticipantsOnline Collaboration — Delivering Benefits for Organisations and Participants
Online Collaboration — Delivering Benefits for Organisations and Participants
 
The 360 Developer
The 360 DeveloperThe 360 Developer
The 360 Developer
 
Creating and Maintaining an Inclusive DevOps Culture
Creating and Maintaining an Inclusive DevOps CultureCreating and Maintaining an Inclusive DevOps Culture
Creating and Maintaining an Inclusive DevOps Culture
 
Starting with c
Starting with cStarting with c
Starting with c
 
Virtual & Local Teams: Communication Success and Failure
Virtual & Local Teams: Communication Success and FailureVirtual & Local Teams: Communication Success and Failure
Virtual & Local Teams: Communication Success and Failure
 
GeneralAssemb.ly Summer Program: Tech from the Ground Up
GeneralAssemb.ly Summer Program: Tech from the Ground UpGeneralAssemb.ly Summer Program: Tech from the Ground Up
GeneralAssemb.ly Summer Program: Tech from the Ground Up
 
Transmedia Living Lab, Madrid
Transmedia Living Lab, MadridTransmedia Living Lab, Madrid
Transmedia Living Lab, Madrid
 
Transmedia living lab madrid
Transmedia living lab madridTransmedia living lab madrid
Transmedia living lab madrid
 
Saving Plone from Plone agony
Saving Plone from Plone agonySaving Plone from Plone agony
Saving Plone from Plone agony
 
Global Leadership: Navigating Leadership for the Future
Global Leadership: Navigating Leadership for the FutureGlobal Leadership: Navigating Leadership for the Future
Global Leadership: Navigating Leadership for the Future
 
2012 staff-immediate tech infusion
2012 staff-immediate tech infusion2012 staff-immediate tech infusion
2012 staff-immediate tech infusion
 
Digital futures - planning for change
Digital futures - planning for changeDigital futures - planning for change
Digital futures - planning for change
 
Bdd - how to solve communication problems
Bdd - how to solve communication problemsBdd - how to solve communication problems
Bdd - how to solve communication problems
 
LxD - Learner Experience Design
LxD - Learner Experience DesignLxD - Learner Experience Design
LxD - Learner Experience Design
 
The problem solvers problem
The problem solvers problemThe problem solvers problem
The problem solvers problem
 
hcd_masks_and_backpack.pptx
hcd_masks_and_backpack.pptxhcd_masks_and_backpack.pptx
hcd_masks_and_backpack.pptx
 
OpenStack Upstream Training Report
OpenStack Upstream Training ReportOpenStack Upstream Training Report
OpenStack Upstream Training Report
 

Taking the Fear Out of Contributing

  • 1. Taking the Fear Out of Contributing Stephen Hemminger shemminger@vyatta.com
  • 3. “Publicly making fun of people is half the fun of open source programming. In fact the main reason to eschew programming in closed environments is that you can't embarrass people in public.” – Linus Torvalds
  • 5. Why do people contribute? ● Learn ● Altruism ● Fun ● Fame & Fortune ● Solve problems
  • 6. What Maintainers say they do Maintainer Maintainer Project Developer Mailing List next Linux Reviewers
  • 7. What developers see Linus Linux ME Kernel Mailing List
  • 8. “It's entirely possible that the current user could be replaced by RCU and/or seqlocks, and we could get rid of brlocks entirely.” – Linus Torvalds (Mar 9 2003)
  • 9. 2 days later... 2 weeks later... 2 years later...
  • 10. What I learned ● Encouragement and feedback – Pat Mochel – Linus – David Miller – Paul McKenney ● Learned Internals ● Encouragement from employer
  • 11. Advice to developers Have: F. ollow rules U. nderstand feedback N. egotiate
  • 12. Main causes of failure Things that make maintainers: M. assive A. rrogance D. ivisive
  • 13. Patch Acceptance Massive from netdev patchwork 100% 75% Acceptance 50% 25% 0% 256 1024 4096 16384 65536 262144 128 512 2048 8192 32768 131072 Patch size
  • 14. Arrogance ar·ro·gant (r-gnt) adj. 1. Having or displaying a sense of overbearing self- worth or self-importance. 2. Marked by or arising from a feeling or assumption of one's superiority toward others: an arrogant contempt for the weak.
  • 15. Divisive Changes ● Proprietary ● Incompatible ● Reinvention ● Ugly
  • 17.
  • 18. Evaluation ● Be prepared ● Active Listening ● Sandwich technique ● Focus on 2 or 3 items
  • 19. Troll free zone ● Be genuine ● Evaluate presentation not person ● Personalize Language ● Directed feedback
  • 20. Lessons Learned ● Risk = Reward ● Practice makes perfect ● Words matter ● Evaluation causes growth
  • 21. Alternative Evaluation Styles Toastmasters™ Linux™ Kernel ● Tell and Sell ● Fire and Forget ● Q&A ● Email Threads ● Group: ● Delegate: – Voice – Style – Gestures – Locking – ... – API – ...
  • 23. Bozeman and Feeney (2007) define mentoring as “a process for the informal transmission of knowledge, social capital, and the psychosocial support perceived by the recipient as relevant to work, career, or professional development; mentoring entails informal communication, usually face-to-face and during a sustained period of time, between a person who is perceived to have greater relevant knowledge, wisdom, or experience (the mentor) and a person who is perceived to have less (the protègè).”
  • 24.
  • 26. Finding a Mentor ● Local ● Company ● Kernel mentors mailing list http://kernelnewbies.org/KernelMentors
  • 27. Role of Mentor ● Process mentoring ● Shoulder to cry on ● Local advocate ● Cheerleader
  • 28. For maintainers ● Emphasize good review ● Assign mentors for new people? ● Track contribution status – patchwork ● Delegate review roles ● Encourage friendly dialogue ● Evaluate review process
  • 29. Ideas ● Teach reviewing – Documentation/ReviewingPatches? – get_reviewers.pl? ● Document kernel semantics – More lessons like RCU? – Interactive tutorials