Taking the Fear Out of Contributing

508 views

Published on

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?

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
508
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Taking the Fear Out of Contributing

  1. 1. Taking the Fear Out of Contributing Stephen Hemminger shemminger@vyatta.com
  2. 2. Code Quality
  3. 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 cant embarrass people in public.” – Linus Torvalds
  4. 4. What managers want
  5. 5. Why do people contribute?● Learn● Altruism● Fun● Fame & Fortune● Solve problems
  6. 6. What Maintainers say they do Maintainer Maintainer ProjectDeveloper Mailing List next Linux Reviewers
  7. 7. What developers see Linus LinuxME Kernel Mailing List
  8. 8. “Its entirely possible that the currentuser could be replaced by RCUand/or seqlocks, and we could get ridof brlocks entirely.”– Linus Torvalds (Mar 9 2003)
  9. 9. 2 days later...2 weeks later...2 years later...
  10. 10. What I learned● Encouragement and feedback – Pat Mochel – Linus – David Miller – Paul McKenney● Learned Internals● Encouragement from employer
  11. 11. Advice to developersHave: F. ollow rules U. nderstand feedback N. egotiate
  12. 12. Main causes of failureThings that make maintainers: M. assive A. rrogance D. ivisive
  13. 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. 14. Arrogancear·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 orassumption of ones superiority toward others: anarrogant contempt for the weak.
  15. 15. Divisive Changes● Proprietary● Incompatible● Reinvention● Ugly
  16. 16. Glossophobia
  17. 17. Evaluation● Be prepared● Active Listening● Sandwich technique● Focus on 2 or 3 items
  18. 18. Troll free zone● Be genuine● Evaluate presentation not person● Personalize Language● Directed feedback
  19. 19. Lessons Learned● Risk = Reward● Practice makes perfect● Words matter● Evaluation causes growth
  20. 20. Alternative Evaluation Styles Toastmasters™ Linux™ Kernel● Tell and Sell ● Fire and Forget● Q&A ● Email Threads● Group: ● Delegate: – Voice – Style – Gestures – Locking – ... – API – ...
  21. 21. What is mentoring?
  22. 22. Bozeman and Feeney (2007) define mentoringas “a process for the informal transmission ofknowledge, social capital, and the psychosocialsupport perceived by the recipient as relevantto work, career, or professional development;mentoring entails informal communication,usually face-to-face and during a sustainedperiod of time, between a person who isperceived to have greater relevant knowledge,wisdom, or experience (the mentor) and aperson who is perceived to have less (theprotègè).”
  23. 23. Virtual Tunnel Interface
  24. 24. Finding a Mentor● Local● Company● Kernel mentors mailing listhttp://kernelnewbies.org/KernelMentors
  25. 25. Role of Mentor● Process mentoring● Shoulder to cry on● Local advocate● Cheerleader
  26. 26. For maintainers● Emphasize good review● Assign mentors for new people?● Track contribution status – patchwork● Delegate review roles● Encourage friendly dialogue● Evaluate review process
  27. 27. Ideas● Teach reviewing – Documentation/ReviewingPatches? – get_reviewers.pl?● Document kernel semantics – More lessons like RCU? – Interactive tutorials
  28. 28. Thank you

×