|
|
|
|
|
by gresrun
4774 days ago
|
|
The curious question is why certain projects have significantly lower pull-rates; I doubt the quality of the pull requests vary that widely across projects. Is it that project leadership has a clear vision for a product and feel pull requests are a distraction? If so, share the vision and enlist willing developers to help achieve that vision. Is it that project leadership has a high-standard for the codebase? If so, explicitly state the standard and provide constructive feedback to pulls that don't quite measure up. I guess my point is: project leadership has the ability to leverage a tremendous pool of talent that is interested in their project using the pull request mechanism. It does take effort and planning but the net result is so worth it to all parties involved. |
|
I have a few thoughts on the topic and on your comments:
1. I actually DO think that the quality of pull requests varies widely from project to project. You dismiss this in your first sentence but I don't think you should. I think there are a lot of reasons for this, but many can be reduced to: Some projects attract more inexperienced developers than others.
2. I don't think you can simply indict the project maintainers for not optimally leveraging the talent pool of volunteer contributors. While Open Source has been validated a million times over as a truly successful movement/concept/etc, nobody has ever accused it of being efficient. Specifically, most pull request submitters act on their own, without coordination between submitters or with project maintainers. It's not just an issue of coding standards, it's also things like the maintainers having a roadmap that includes bug fixes, refactoring, new features, etc, and that may conflict with Joe in Idaho and his pull request that he did to scratch his own specific itch.
In many ways community submitted pull requests are a "million monkeys at a million typewriters."
3. The most successful way of getting a pull request accepted, I think, is to first raise a discussion on the issue on the projects mailing list or issues forum. Link to your in-progress patch, say "I have this fix here for problem X, can anybody take a look and tell me if I'm on the wrong track with this?" So many of us are code-first, conversation-later types and that constantly conflicts with the social nature of our job.
I guess my takeaway here is that there is a lot of room for interesting technology solutions to this problem, in the areas of:
1. Tools that help maintainers cultivate the submitters talent pool on their project.
2. Tools and workflows that help submitters through coordination. Totally a half baked idea but suppose if I'm fixing a bug in a function somewhere, Github can help me discover what is happening to that function elsewhere. Maybe it's been radically changed in a feature branch owned by the project maintainers, maybe it's already been fixed nearly the same way by another submitter who has an open pull request, maybe it was already submitted by somebody and rejected.
3. Static analysis that can power those tools and more. Would love a meaningful quantative quality score on the pull request submission page. Like an additional tab beside the "Commits" and "Diff" tabs. Maybe it could run various analysis on the code and show formatting issues, known vulnerabilities, known bugs, etc. Obviously the abilities here vary from language to language.