Hello all, 1. Long texts stem from false (You can deduce anything from something that is wrong). 2. TL;DR is therefore sane. 3. (Inclusion & Diversity) is a tautology, it includes all of it. Cheers, Klaus Sembritzki On Thu, Sep 19, 2019 at 8:35 PM Derrick Stolee <stolee@xxxxxxxxx> wrote: > > During the Virtual Git Contributors' Summit, Dscho brought up the topic of > "Inclusion & Diversity". We discussed ideas for how to make the community > more welcoming to new contributors of all kinds. Let's discuss some of > the ideas we talked about, and some that have been growing since. > > Feel free to pick apart all of the claims I make below. This is based > on my own experience and opinions. It should be a good baseline > for us to all arrive with valuable action items. > > I have CC'd some of the people who were part of that discussion. Sorry > if I accidentally left someone out. > > I. Goals and Perceived Problems > > As a community, our number one goal is for Git to continue to be the best > distributed version control system. At minimum, it should continue to be > the most widely-used DVCS. Towards that goal, we need to make sure Git is > the best solution for every kind of developer in every industry. The > community cannot do this without including developers of all kinds. This > means having a diverse community, for all senses of the word: Diverse in > physical location, gender, professional status, age, and others. > > In addition, the community must continue to grow, but members leave the > community on a regular basis for multiple reasons. New contributors must > join and mature within the community or the community will dwindle. Without > dedicating effort and attention to this, natural forces may result in the > community being represented only by contributors working at large tech > companies focused on the engineering systems of very large groups. > > It is worth noting that this community growth must never be at the cost > of code quality. We must continue to hold all contributors to a high > standard so Git stays a stable product. > > Here are some problems that may exist within the Git community and may > form a barrier to new contributors entering: > > 1. Discovering how to contribute to Git is non-obvious. > > 2. Submitting to a mailing list is a new experience for most developers. > This includes the full review and discussion process. > > 3. The high standards for patch quality are intimidating to new contributors. > > 4. Some people do not feel comfortable engaging in a community without > a clear Code of Conduct. This discomfort is significant and based on real > experiences throughout society. > > 5. Since Git development happens in a different place than where users > acquire the end product, some are not aware that they can contribute. > > II. Approach > > The action items below match the problems listed above. > > 1. Improve the documentation for contributing to Git. > > In preparation for this email, I talked to someone familiar with issues > around new contributors, and they sat down to try and figure out how to > contribute to Git. The first place they went was https://github.com/git/git > and looked at the README. It takes deep reading of a paragraph to see a > link to the SubmittingPatches docs. > > To improve this experience, we could rewrite the README to have clearer > section markers, including one "Contributing to Git" section relatively > high in the doc. We may want to update the README for multiple reasons. > It should link to the new "My First Contribution" document > (https://git-scm.com/docs/MyFirstContribution). > > 2. Add more pointers to GitGitGadget > > We have a reference to GitGitGadget in the GitHub PR template to try and > get people who try to submit a pull request to git/git to instead create > one on GitGitGadget. However, that captures contributors who didn't read > the docs about how to submit! (This is somewhat covered by the "My First > Contribution" doc as well, so making that more visible will also help.) > > Could we reference GitGitGadget as part of the Submitting Patches doc > as well? > > 3. Introduce a new "mentors" mailing list > > From personal experience, all new contributors at Microsoft (after Jeff > Hostetler at least) have first had their patches reviewed privately by > the team before sending them upstream. Each time, the new contributor > gained confidence about the code and had help interpreting feedback from > the list. > > We want to make this kind of experience part of the open Git community. > > The idea discussed in the virtual summit was to create a new mailing > list (probably a Google group) of Git community members. The point of > the list is for a new contributor to safely say "I'm looking for a > mentor!" and the list can help pair them with a mentor. This must > include (a) who is available now? and (b) what area of the code are they > hoping to change? > > As evidence that this is a good idea, please see the recent research > paper ""We Don't Do That Here": How Collaborative Editing With Mentors > Improves Engagement in Social Q&A Communities" [1]. > > [1] http://www.chrisparnin.me/pdf/chi18.pdf > > When asking your first question on Stack Overflow, this group added > a pop-up saying "Would you like someone to help you with this?". Then, > a mentor would assist crafting the best possible question to ensure > the asker got the best response possible. > > I believe this would work in our community, too. The action items > are: > > a. Create the mailing list and add people to the list. > > b. Add a pointer to the list in our documentation. > > Note: the people on the mentoring list do not need to be > "senior" community members. In fact, someone who more recently > joined the community has a more fresh perspective on the process. > > 4. Add an official Code of Conduct > > So far, the community has had an unofficial policy of "be nice, > as much as possible". We should add a Code of Conduct that is > more explicit about the behavior we want to model. This was also > discussed in the meeting with wide approval. > > 5. Advertise that Git wants new contributors > > After we put items 1-4 in place, we should reach out to the > general tech community that we are interested in new > contributors. It's not enough to open the door, we should > point people to it. > > This item is much less explicit about the _how_. This could > be done at the individual level: posting to social media or > blog posts. But perhaps there is something more official we > could do? > > III. Measurement > > How do we know if any of these items make a difference? We > need to gather data and measure the effects. With the size > of our community, I expect that it will take multiple years > to really see a measurable difference. But, no time like > the present to ask "What does success look like?" > > Here are a few measurements that we could use. Each "count" > could be measured over any time frame. We could use major > releases as time buckets: v2.22.0 to v2.23.0, for example. > > 1. How many first-time contributors sent a patch? > > 2. How many contributors had their first commit accepted into > the release? > > 3. How many contributors started reviewing? > > 4. How many total patches/reviews did the list receive? > > What other measurements would be reasonable? We could try > building tools to collect these measurements for the past > to see historical trends. Based on that data, we may be > able to set goals for the future. > > With such a small community, and an expected small number > of new contributors, it may also be good to do interviews > with the new contributors to ask about their experience. > In particular, we would be looking for moments where they > had trouble or experience friction. Each of those > moments is a barrier that others may not be clearing. > > > I look forward to the discussion. > > Thanks, > -Stolee