Open Source Fan Service

*
Proposal
Short Form
Intermediate

Excerpt

What can you do when someone submits a bad patch to your project? To begin, we have to understand why people hunger to contribute code: they're fans. You hurt fans' feelings when you reject their patches, but you hurt your project if you accept them. You can get out of this bind! Give your fans other ways to be recognized. Showcase their plugins in your project’s wiki, or rewrite their patches while giving them credit, or feature their related projects on your site.

Description

When you receive a good patch, you merge it. But you’re in a bind when you get a bad patch: you have a responsibility to your users to reject the patch, but you must treat the submitter kindly. The submitter admires you and your project, worked hard on the patch, and was looking forward to the satisfaction of contributing. What do you do?

I learned a lesson about generosity from a Zen Buddhist, a guy named Hamzah who used to be homeless. He told me, the next time someone offers something, refuse it. Watch the giver’s face fall—they were looking forward to the satisfaction of giving, and you took that away. Once you learn that, you’ll never refuse a gift again.

But you can’t accept every patch your project’s fans submit! Give them other ways to be recognized.

  • Make it easy for fans to write plugins. Link their plugins from your project’s wiki. (I learned this watching Armin Ronacher launch his “Lektor” static site generator.)
  • Showcase your fans’ related projects on your project’s site. (Also from Lektor.)
  • If a bad patch contains a good idea, rewrite it and give credit. (CPython core devs do this.)
  • Encourage fans to blog about your project, and promote their articles. (This works for my project “Motor”.)
  • Recognize beta-testers, bug reporters, and people who are helpful on your mailing list. (MongoDB does this for its database project.)

When you see your submitters as fans, you understand their motivations and find kinder ways to handle them. You can recognize their contributions without hurting your project’s code quality. Come up with creative solutions! You’ll create a warm and welcoming community around your project.

Speaking experience

I have not given this talk before, I'd be excited to debut it at OSB! Here are some videos of past talks:

* MongoDB World 2015: https://www.mongodb.com/presentations/mongodb-drivers-and-high-availability-deep-dive
* Open Source Bridge 2015: https://www.youtube.com/watch?v=GSk0tIjDT10
* PyCon 2015: http://emptysqua.re/blog/pycon-video-eventually-correct-async-testing/
* MongoDB World 2014: http://www.mongodb.com/presentations/weather-century-part-3-visualization
* PyCon Montreal 2014: http://emptysqua.re/blog/pycon-2014-video-what-is-async/
* PyCon APAC 2014: https://www.youtube.com/watch?v=BOKcZjI5zME

Speaker

Leave a private comment to organizers about this proposal