Commentary on a Pull Request

Open source projects thrive on the existence of active contributors. The best contributors, typically leading to the best projects, are those using the software in question to solve real, interesting problems with the software while running into either insufficiencies in its feature set or bugs with the existing features. The process follows that these same good programmers, rather than simply complain about the issue they face, dig into the source code they've been freely given in an effort to solve these issues themselves. Since these are grateful, effective programmers, they decide to give back to the community at large, submitting a pull request (or similar); should the matriarchs and patriarchs of the microcosm around the open source project agree with the solution presented, it becomes law, folded into the rest of the software, ready to be distributed to its users lest they face the same issue.

Ahem.

As colorful as my description may be, it shouldn't be news to anyone familiar with DVCS, GitHub, and the like. What I want to call out, however, is a detail oft overlooked in this process: These are programmers with other, more important problems. What's more is, they've already solved the issue they found. Because of this, they don't need your approval for their fix for their issue.

This may seem overly cynical, but it bears repeating. The solution presented in a pull request is the result of time spent by a (usually) busy programmer on your software, and the existence of that pull request (usually) indicates a benevolence on the part of the same to contribute back to your software. This interaction should be approached with gratitude and respect, even as so many respond with indignance, pedantry, and condescension.

Case in point, Jekyll. As welcome as I feel working with Jekyll as a user, I was talked down to almost to the point of being treated with contempt when I submitted a solution for my own jekyll write problem as mentioned in my previous post. I'm not a Ruby programmer and I'm fully aware of my own ignorance, but the solution (and its many rewrites) was always based on my best judgment and the information I had at hand.

Now, this is not meant as a rag against the Jekyll authors. For all I know it was an unintentional consequence of the unfortunate lack of nuance and non-verbal communication available through faceless dialogue over the Internet. That said, there are positive examples of the same interaction through the same medium, and I implore you to take notice. Brian's gratitude shines in his text due to a genuine gratitude toward his contributors, and that gratitude existed before the pull request. Make the same change in yourself:

Be grateful for your contributors so much that they can't help but notice.

It's this gratitude that will attract further contribution from better and better (read: busier and busier) programmers, leading to a better and better piece of software.

More Posts