Project:New contributors

How to attract volunteers and connect them with interesting people and activities?

Our problem is similar to engaging Wikimedia editors. It is also common to many other open source projects. We can solve our contribution infrastructure problems by improving MediaWiki tools, benefiting also the Wikimedia movement and other OSS projects.

The solution proposed is to connect people, groups, projects, tasks and events through semantic data and targeted notifications. The location would be wikitech.wikimedia.org, the site proposed to become the home for all technical contributors.

First implementation
The first phase of development aims to have a first iteration deployed by the end of June 2013.

The scope proposed includes:
 * A taxonomy of categories to organize people, projects, tasks and events around interests, locations and languages.
 * Standard pages for user profiles, projects, tasks and events generating a calendar. Implemented with Semantic Forms, already available in Wikitech.
 * Groups generated out of categories and user preferences. Implementation under discussion.
 * Notifications filtered by categories and user preferences. Implemented presumably with Echo notifications - under discussion.

= 1st phase features. Top priority for discussion and planning.

People
Identify yourself to connect with relevant people and activities.

Optional identification:
 * Interests - a predefined list of OSS activities, programming languages and projects.
 * Availability for each - Send me updates, Looking for a task, Looking for a mentor, Offering mentorship.
 * Locations.
 * Languages.
 * OSS projects involved.
 * Social media handlers.
 * Avatar.

Automatic fields:
 * Badges - Project membership, Group membership, Events attended, Mentorship programs.
 * Maybe good to use an existing solution for this. OpenBadges?


 * Activity stats - MediaWiki, Gerrit, Bugzilla, Labs.
 * Could centralize these somehow, in a dashboard to show others.
 * See - List of Gerrit users

Social:
 * TBD - A way to show related users.
 * TBD - A way to show Wikilove / Barnstars / Likes given to and received from.

Searching people:
 * For lists of people around one tag see Groups.


 * Combined tag searches e.g. Barcelona AND JavaScript, Lua AND Willing to learn.

Metrics:
 * TBD: Lists of top contributors based on user stats e.g. top code reviewers of the month.

Groups
People collaborating around a specific topic

Implementation under discussion.


 * Group pages for interests, locations, languages and OSS projects are created automatically listing users according to their user profile data.
 * The content area above the list can be edited.
 * Discussion page.
 * Users can sign up explicitly as members, appearing as such in the list.
 * Groups that are officially recognized as Wikimedia User Groups are identified as such.

Projects
A standard way to report goals, members, tasks and updates.


 * Project pages
 * Members
 * Related tags e.g. programming languages.
 * Standard process for descriptions and status reports


 * Project admins can identify users as project members with roles.

Tasks
A funnel to connect pending work with potential contributors.


 * Integrated with Bugzilla.
 * Other tools like Gerrit sync with Bugzilla - see - Integrate git/Gerrit and Bugzilla
 * Publish tasks for contributors tagging them by interests, location, language...
 * Users can add themselves as mentors for tasks.
 * Users can signal that they are interested in a task.

Events
A standard way to advertise activities and know the people joining them.


 * Events share a lot with Tasks but they are tied to dates and have many participants.
 * Task mentors = Event organizers. Interested in task = Sign up to event.
 * Events are automatically listed to a Calendar.
 * People signing up are automatically listed at the event.
 * After the event: organizers distribute badges to actual participants.

Notifications
Receiving updates about the things that matter to you.

Maintainers contact users filtered by tags:
 * Promoted tasks.
 * Events.
 * News and announcements.

Automatic notifications for subscribers:
 * Your watched Project has a new status report.
 * Your watched user has a new role.
 * Your Group/Project has a new member.

One ontology
A common vocabulary to classify items across all our tools

Aka Tags aligned across MediaWiki, Bugzilla, Gerrit and anything taggable we do.

Reusing established ontologies (Wikidata link?)
 * Location: cities, regions... Is fuzzy geolocation an option?
 * OSS community activities: How to contribute structure as starting point.
 * Programming languages: PHP, JavaScript, HTML, CSS, Puppet...
 * Human languages: English, German, Hindi...
 * Projects: our own doubling as tags + Wikimedia projects + related external open projects: OSM, CC, Ada...
 * Tasks: Bugzilla / Gerrit sync for easy, enhancement, mentored...
 * Hobbies???

See - Free-form tagging in gerrit

The problem
We have problems in the whole contribution cycle:


 * Lack of global profiles identifying contributors
 * One contributor = many usernames from MediaWiki/Wikimedia, Gerrit, Bugzilla, Mailman, IRC...
 * User profiles are plain text, relying on manual updates.
 * Lack of semantic data e.g. location, skills, interests, projects...
 * Lack of common memory about contributors
 * Personal lists maintained (or not) manually by various people.
 * Difficult to promote activities to the right people
 * Every time we start almost from scratch.
 * We lack ways to broadcast selectively by topic.
 * Social media and community communication channels are ok but too broad.
 * Manual pokes in user Talk pages don't scale, are unequally effective and are not trivial to follow-up.
 * Difficult to connect new volunteers with a first task
 * It's not trivial to arrive and find a task by yourself.
 * We don't know how many newcomers never dare to ask.
 * Those who ask find that it's not easy to get started.
 * It's not easy to give a task to someone landing with a vague request in an email.
 * Most probably the memory is lost after a few weeks.
 * Difficult to find peers and stay in touch
 * No way for contributors to find who is interested in XYZ and discuss with them.
 * Same problem: spam wikitech-l, hope to find people through Discussion pages...
 * Groups are supposed to help but group creation and membership is heavy.
 * Difficult to find inactive contributors and follow-up
 * We lack the metrics to find out who was active but not anymore.
 * English only
 * Potential communication and activities in other languages are even more disconnected.