taking the fear out of contributing

30
Taking the Fear Out of Taking the Fear Out of Contributing Contributing Stephen Hemminger [email protected]

Upload: stephen-hemminger

Post on 10-Jun-2015

239 views

Category:

Documents


0 download

DESCRIPTION

Open source software depends on collaborative effort but many contributions are lost because of the often adversarial process. How can reviewers be turned into mentors?

TRANSCRIPT

Page 1: Taking the Fear Out of Contributing

Taking the Fear Out of Taking the Fear Out of ContributingContributing

Stephen [email protected]

Page 2: Taking the Fear Out of Contributing

Code QualityCode Quality

Page 3: Taking the Fear Out of Contributing

“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

Page 4: Taking the Fear Out of Contributing

What manager's wantWhat manager's want

Page 5: Taking the Fear Out of Contributing

Why do people contribute?Why do people contribute?

● Learn● Altruism● Fun● Fame & Fortune● Solve problems

Page 6: Taking the Fear Out of Contributing

What Maintainers say they doWhat Maintainers say they do

Developer

Maintainer

ProjectMailingList

Reviewers

next

Maintainer

Linux

Page 7: Taking the Fear Out of Contributing

What developers seeWhat developers see

MELinuxKernelMailingList

Linus

Page 8: Taking the Fear Out of Contributing

“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)

Page 9: Taking the Fear Out of Contributing

2 days later...2 weeks later...2 years later...

Page 10: Taking the Fear Out of Contributing

What I learnedWhat I learned

● Encouragement and feedback– Pat Mochel– Linus– David Miller– Paul McKenney

● Learned Internals● Encouragement from employer

Page 11: Taking the Fear Out of Contributing

Advice to developersAdvice to developers

Have:F. ollow rulesU. nderstand feedbackN. egotiate

Page 12: Taking the Fear Out of Contributing

Main causes of failureMain causes of failure

Things that make maintainers: M. assive A. rrogance D. ivisive

Page 13: Taking the Fear Out of Contributing

MassiveMassive

128256

5121024

20484096

819216384

3276865536

131072262144

0%

25%

50%

75%

100%

Patch Acceptance

from netdev patchwork

Patch size

Acc

epta

nce

Page 14: Taking the Fear Out of Contributing

ArroganceArrogance

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.

Page 15: Taking the Fear Out of Contributing

Divisive ChangesDivisive Changes

● Proprietary● Incompatible● Reinvention● Ugly

Page 16: Taking the Fear Out of Contributing

GlossophobiaGlossophobia

Page 17: Taking the Fear Out of Contributing
Page 18: Taking the Fear Out of Contributing

EvaluationEvaluation

● Be prepared● Active Listening● Sandwich technique● Focus on 2 or 3 items

Page 19: Taking the Fear Out of Contributing

Troll free zoneTroll free zone

● Be genuine● Evaluate presentation not person● Personalize Language● Directed feedback

Page 20: Taking the Fear Out of Contributing

Lessons LearnedLessons Learned

● Risk = Reward● Practice makes perfect● Words matter● Evaluation causes growth

Page 21: Taking the Fear Out of Contributing

Alternative Evaluation StylesAlternative Evaluation Styles

Toastmasters™

● Tell and Sell● Q&A● Group:

– Voice– Gestures– ...

Linux™ Kernel● Fire and Forget● Email Threads● Delegate:

– Style– Locking– API– ...

Page 22: Taking the Fear Out of Contributing

What is mentoring?

Page 23: Taking the Fear Out of Contributing

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è).”

Page 24: Taking the Fear Out of Contributing
Page 25: Taking the Fear Out of Contributing

Virtual Tunnel InterfaceVirtual Tunnel Interface

Page 26: Taking the Fear Out of Contributing

Finding a MentorFinding a Mentor

● Local● Company● Kernel mentors mailing list

http://kernelnewbies.org/KernelMentors

Page 27: Taking the Fear Out of Contributing

Role of MentorRole of Mentor

● Process mentoring● Shoulder to cry on● Local advocate● Cheerleader

Page 28: Taking the Fear Out of Contributing

For maintainersFor maintainers

● Emphasize good review● Assign mentors for new people?● Track contribution status – patchwork● Delegate review roles● Encourage friendly dialogue● Evaluate review process

Page 29: Taking the Fear Out of Contributing

IdeasIdeas

● Teach reviewing– Documentation/ReviewingPatches?– get_reviewers.pl?

● Document kernel semantics– More lessons like RCU?– Interactive tutorials

Page 30: Taking the Fear Out of Contributing

Thank you