New Developers/Quarterly/2017-10

Overview
Goal, possible candidates, scope, etc.

Key findings
1. Regular trends in attraction, and stagnating in retention of new developers

On an average, we are attracting around 54 developers per quarter and retaining 9% of them. Number of new developers joining are more than usual around the time outreach programs and events are taking place.

2. New Developers tend to become involved in contributing code to Wikimedia software projects when they learn about it through their peers

A few of our survey respondents mentioned that they heard about Wikimedia through a friend or someone who they met at an event. This fact holds true for a few of our developer outreach activities, an example of this is the Wikimedia Outreach programs that draw participants from a similar geographical location as the previous year.

3. New developers tend to be working professionals with over five years of experience developing software

New developers want to contribute to Wikimedia in their spare time for different reasons; they are: intrigued by a project, want to bring an impact through their valuable contribution, or grow their learning. While a majority of developers in our survey results accounted for those who are working professionals, it also indicates that it's likely that other than the outreach programs, we are missing on reaching to student volunteer developers more broadly.

4. Wikimedia techinical community seems to be active in reviewing changesets of new developers

In the previous quarter, we merged 57.43%, abandoned 24.32% and haven’t taken a decision yet on 18.2% of changesets

5. Three projects that received most contributions from new developers in the previous quarter are Extension:Example, Wikimedia Commons Android app, and MediaWiki Core

After investigating further the commits received by these projects, it is apparent why they are in the list of top three. Extension:Example receives a vast number of commits; mostly test commits and through them, new developers try to develop their understanding of the Wikimedia code contribution process. MediaWiki core receives bug fixes which is an easy way for new developers to get started, and Wikimedia Commons Android app is a newcomer-friendly project.

6. New developers struggle with the Wikimedia code review process

A few new developers mentioned in the survey that they are either developing their understanding of Wikimedia code contribution process or they are struggling with it. A few stated that one thing they struggle most while contributing to Wikimedia projects is understanding conventions around Gerrit code review.

7. Dedicated spaces, platforms, and learning environments for new developers both online and offline empower them and contribute to an engaging experience

New developers who participated in the mentoring program at Wikimedia/Wikimania Hackathon in Vienna/Montreal seemed to have a satisfying experience, have ideas for projects they could contribute to, and guidance to work on them. We leveraged Zulip (for GSoC/ Outreachy) and Telegram (for hackathons) that helped in keeping the new developers engaged and connected with community members.

8. Featuring newcomer-friendly projects helps in attracting developers

New developers in the past have reported being directed to Phabricator workboard for task or project hunting as challenging. We tried to change this approach by presenting projects with clear goals and expectations, and a listing of skills required in MediaWiki (see New Developers). In Wikimedia's participation in the ongoing round of Outreachy, this approach helped draw 39 potential candidates to seven projects in one-month timeframe who expressed their interest in working on a project by commenting on the corresponding Phabricator task.

9. Continued guidance offered by the local community, support in easy onboarding of new developers

Ongoing efforts of the African Wikimedia Developers project to involve developers from Africa in the Wikimedia movement through MediaWiki development workshops has helped onboard three active developers so far.

Timeline
Newcomer-focused events, programs, and activities between July–September 2017:
 * September 25th: Wikimedia Austria won the Open Minds Award in the diversity category for the mentoring program at Wikimedia Hackathon in Vienna
 * July–September: Developer Relations team worked on revising newcomer documentation. This project is still ongoing.
 * September 7th: Application period for working with Wikimedia in Outreachy Round 15 opens
 * September 6th: Google Summer of Code 2017 and Outreachy Round 14 ended and concluded with a project showcase
 * August 23rd: First weekly Technical Advice IRC Meeting
 * August 9th–10th: Mentoring program at Wikimania
 * July 8th: MediaWiki workshop in Buea, Cameroon

New developers metrics and trends
All numbers refer to volunteer developers only.

Trends in attraction and retention
These are the KPIs of the Onboarding New Developers program.

Developers contributing patches for review
187 developers contributed between July–September 2017. (Source)

New developers attracted
51 new developers contributed between July–September 2017. (Source)

New developers retained
Percentage of developers active one year (±3months) after their first contribution, out of all new developers attracted one year ago. (Source: Calculation on data)

Review of changesets by new developers
148 changesets were contributed by new developers. (Source: Calculation on data )

New developers who contributed more than one changeset
18 out of 51 (35.3%) (Source: "Contribs" column of "New Authors")

Projects with most received contributions by new developers
51 new developers contributed to 28 repositories. (Source: "Repos by New Authors")

Outreach events

 * Wikimania Hackathon 2017 (August 2017):
 * Attracted XX new developers, out of YY developer attendees (ZZ %)
 * Wikimedia Hackathon 2017 (May 2017):
 * Attracted XX new developers, out of YY developer attendees (ZZ %)
 * Retained XX new developers who were still active in next quarter (July–September 2017), out of YY attracted new developers (ZZ %)

Outreach programs

 * Google Summer of Code 2016 (May–August 2016):
 * Attracted XX new developers.
 * Retained XX new developers who were still active one year (±3months) after their first contribution in the outreach program (ZZ %)
 * Outreachy Round 13 (December 2016–March 2017):
 * Attracted XX new developers.
 * Retained XX new developers who were still active one year (±3months) after their first contribution in the outreach program (ZZ %)

Survey analysis
We sent a survey to new developers who submitted code for the first time during July - September 2017 timeframe. The survey was designed using the Qualtrics platform, with a goal of understanding more clearly demographics and background, motivations, challenges and needs of our new developers. We planned to pilot the survey in two rounds: Out of the 35 new developers to whom we reached out, 9 (25.7%) people completed the survey. Four people started filling out the survey but didn’t finish, indicating that the completion rate of our survey was 69%.
 * 35 new developers who submitted code in July or August (still ongoing)
 * XX new developers who submitted code in September (yet to do)

Note: Since we got quite a few responses, the analysis of this survey may not be entirely justified, and actions for next steps and recommendations indicated in this report (coming soon! ) may not have many conclusions from the survey.

Below are the results from the survey:

Geography
Participants (n) = 9
 * Countries
 * 1 – Canada (11.11%)
 * 2 – Cote d'Ivoire (11.11%)
 * 3 – Germany (11.11%)
 * 4 – India (11.11%)
 * 5 – Sweden (11.11%)
 * 6 – Turkey (11.11%)
 * 7 – United States (33.33%)

33.33% of respondents of this survey were from United States, and 11.11% from Canada, Cote d'Ivoire, Germany, India, Sweden, and Turkey

Age group
Participants (n) = 9


 * Age group
 * 1 – <18 (0.0%)
 * 2 – 18-24 (11.11%)
 * 3 – 25-34 (44.44%)
 * 4 – 35-44 (11.11%)
 * 5 – 45-54 (11.11%)
 * 6 – 45-54 (11.11%)
 * 7 – 65+ (0.0%)
 * 8 – I prefer not to answer (11.11%)

44.44% of respondents of this survey said they belong to the age group between 25-34

Gender
Participants (n) = 9


 * Gender
 * 1 – Male (77.78%)
 * 2 – Female (11.11%)
 * 3 – Agender / None (0.0%)
 * 4 – Other / Non-Binary / Multiple Genders / Genderfluid (11.11%)
 * 5 – I prefer not to answer (0.00%)
 * 6 – Optionally tell us your gender (0.00%)

77.78% of respondents of this survey identify themselves as male

Current affiliation
Participants (n) = 9


 * Current affiliation
 * 1 – Student (11.11%)
 * 2 – Working Professional (66.67%)
 * 3 – Self-employed (11.11%)
 * 4 – Freelancer (11.11%)
 * 5 – Homemaker (0.00%)
 * 6 – Unemployed (0.00%)
 * 7 – I prefer not to answer (0.00%)
 * 8 – Other (0.00%)

66.67% of respondents of this survey are working professionals

Years of experience developing software
Participants (n) = 9


 * Years of experience developing software
 * 1 – Less than a year (11.11%)
 * 2 – 1 to 2 years (0.00%)
 * 3 – 2 to 3 years (22.22%)
 * 4 – 3 to 4 years (0.00%)
 * 5 – 4 to 5 years (0.00%)
 * 6 – More than 5 years (66.67%)

66.67% of respondents of this survey said they have more than five years of experience developing software

Other professional development activities outside work
Contributing to open source, attending conferences, leading local Wikimedia community, organizing meetups, etc.

Types of contributions
Participants (n) = 9


 * Types of contributions
 * 1 – Fixing bugs (19.35%)
 * 2 – Reporting bugs (16.13%)
 * 3 – Editing articles (16.13%)
 * 4 – Uploading media to Wikimedia Commons (12.90%)
 * 5 – Task discussion (9.68%)
 * 6 – Feature development (6.45%)
 * 7 – Documentation (6.45%)
 * 8 – Organizing meetups (3.23%)
 * 9 – Planning technical implementation (3.23%)
 * 10 – Answering developer queries (3.23%)
 * 11 – Other (3.23%)

35.48% of respondents of this survey said they fix or report bugs

Frequency of making contributions
Participants (n) = 9


 * Frequency of making contributions
 * 1 – Once in a few months (44.44%)
 * 2 – Once a month (0%)
 * 3 – A few times a month (33.33%)
 * 4 – Does not apply to me because: (0%)
 * 5 – A couple times a week (11.11%)
 * 6 – Once a day (0%)
 * 7 – Multiple times a day (11.11%)
 * 8 – Other (0%)

44.44% of respondents of this survey said they contribute code to Wikimedia projects once in a few months and 33.33% a times a month

Motivations
New developers who participated in the survey indicated that they first heard about Wikimedia as a place to contributing code: First topics or projects new developers worked on: lexeme, wikiclass, bug fix, extension: ArticleToCategory2, Pywikibot and Wikimedia site request, newsletter, etc. New developers chose to work on a project as they:
 * Through Wikimedia members at a conference
 * From a friend
 * Through African Wikimedia developers project
 * Github
 * By installing MediaWiki themselves
 * Taking inspiration from bug fixes made by viewing them on Wikimedia's Gerrit
 * Found it interesting
 * Project was a good fit for their graduate studies
 * Could share their research by working on the project
 * Wanted to improve the project
 * Wanted to get started with fixing bugs, submitting patches, etc.
 * Were being asked to do so at work
 * Wanted to learn new things and to minimize burden on Wikimedia developers
 * Heard about it at a hackathon

Challenges
Understanding of Wikimedia's code contribution process

Participants (n) = 9


 * Understanding of Wikimedia's code contribution process
 * 1 – I have a clear understanding of Wikimedia's code contribution process (11.11%)
 * 2 – I am developing my understanding of Wikimedia's code contribution process (55.65%)
 * 3 – I struggle with Wikimedia's code contribution process (33.33%)
 * 4 – No opinion: (0%)

55.65% of respondents of this survey said they are developing their understanding of Wikimedia's code contribution process and 33.33% said they struggle with it

Some challenges that new developers face are: finding time, connectivity issues, documentation, git-review process and understanding conventions when working with Gerrit, ignorance to patch for a bug fix, not being able to access Phabricator due to IP ban, poor communication, lack of agile practices, poor requirements, project vision, etc.

Learning resources and channels that new developers refer to when they get stuck: Help pages on Wikitech, # wikimedia-devtools, IRC, Google, Github, Gerrit, other developers, teammates, unconferences, video tutorials, books, the contribution wiki, Stack overflow, documentation on MediaWiki, extension documentation page, etc.

Experience contributing to Wikimedia
Participants (n) = 9


 * Experience contributing to Wikimedia
 * 1 – Extremely satisfied (50.00%)
 * 2 – Somewhat satisfied (20.00%)
 * 3 – Neither satisfied nor dissatisfied (10.00%)
 * 4 – Somewhat dissatisfied: (10.00%)
 * 5 – Extremely dissatisfied: (10.00%)


 * Recommending Wikimedia for code contribution to friends and colleagues
 * 1 – Extremely likely (33.33%)
 * 2 – Somewhat likely (22.22%)
 * 3 – Neither likely nor unlikely (33.33%)
 * 4 – Somewhat unlikely: (0.00%)
 * 5 – Extremely unlikely: (11.11%)

''50.00% of respondents of this survey said they are extremely satisfied with their experience contributing to Wikimedia. 33.33% said that they are extremely likely to recommend Wikimedia for code contribution to friends and colleagues.''

Suggestions for improvement
Here are some suggestions made by new developers (responses below have been only slightly edited):
 * Standard toolbox over in-house or unusual systems (Gerrit, Phragile, ...)
 * More autonomy for development teams: build a trust-based DevOps culture allowing teams to adopt Continuous Integration/Continuous Delivery practices and deliver value in small iterations (current deployment guide mentions a lead time of over six weeks for new services!).
 * Breaking focused services out of the monolithic MediaWiki core.
 * Be bold with code changes. Approve more patches in a timely fashion. Enlarge the group of developers who are authorized to approve patches.
 * Surveying and documenting conventions on how to interact with other developers through Phabricator and Gerrit.
 * Git commit message guidelines suggests "To express that a commit resolves a bug, add Bug: Txxx in the footer at the end of the commit message." What do you do when the commit doesn't resolve the bug because the bug has multiple items? The "Bug: Txxx" footer should _always_ be there, because that automatically adds a change notice to Phabricator. That convention isn't made particularly clear from the guidelines.
 * Fix the IP ban that devoid access to Phabricator
 * Be better on follow up issues
 * Better guides. Make more documentation on Wikitech. So that we can contribute more.