Project:New contributors

We have a problem engaging volunteers and motivating them to stay. The amount of documentation, tools and channels is simply overwhelming. Being at the shadow of Wikipedia, we could generate a massive interest from tech-friendly users and we could offer them suitable technical tasks. In reality we miss many newcomers and our community efforts don't scale.

Now imagine this solution:

"Mary registers to one site, and after filling her profile she is notified about groups, projects, tasks and events related to her interests. This happens on her first day, and whenever there is an update fitting her preferences."

The Semantic MediaWiki and Echo notifications frameworks could get us there. We are the MediaWiki experts and we can iterate fast eating our own dog food. Wikitech has already the ingredients in place.

This experiment would be useful for the Wikimedia movement and all the communities using MediaWiki. Even if our technical implementation wouldn't scale to the needs of Wikipedia, we would provide a priceless proof of concept with lessons learned.

First implementation
The first iteration aims to be deployed by the end of June 2013. It is defined by three prioritized drivers:


 * 1) User profiles, groups, projects, tasks and events categorized using Semantic Forms.
 * 2) Announcements sent manually, categorized and received by the users asking for them.
 * 3) Groups generated automatically out of categories and user preferences.

There are more features proposed in the /Roadmap/.

People
Identify yourself to connect with relevant people and activities.

The User page is extended with Semantic Forms. All fields are optional and feature autocompletion:
 * 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.

The User Talk page is preloaded with LiquidThreads

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.

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

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...

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.

Notifications
Receiving updates about the things that matter to you.

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

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.