Project:New contributors

'''THIS IS A DRAFT PROPOSAL. EARLY FEEDBACK IS WELCOME.''' It is also a vision document. Implementation details will follow. = top priority for discussion and planning. 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 a single website connecting people, groups, projects, tasks and events through semantic data and targeted notifications.

The first phase of development aims to have a first iteration deployed at Wikitech by the end of June 2013. The scope proposed includes:


 * Semantic user profiles.
 * Standard group pages.
 * Standard project pages.
 * Standard task pages.
 * Standard event pages.
 * Notifications filtered by tags.
 * Move of all developer documentation to Wikitech.
 * Unified set of tags.

People
Identify yourself and 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.
 * Gravatar.

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


 * 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 wiki
Everything I'm looking for is here.

Solving the old dilemma MediaWiki / Wikimedia (Tech, Meta, WP...):


 * wikitech.wikimedia.org: infrastructure, tools and support for all developers and other technical contributors.
 * mediawiki.org: MediaWiki software downloads, documentation, support and promotion.
 * All developer documentation of Wikimedia Foundation projects in Meta and other projects moved to Wikitech.
 * Invitation to English Wikipedia and other Wikimedia projects to move their tech development content.

About the new Wikitech:


 * Single place for developer documentation and other technical contributors.
 * MediaWiki login integrated with Gerrit, Bugzilla, Labs (and Mailman by identifying your email addresses?).
 * Unified templates and processes for project pages, status reports and opportunities for contributors.
 * All Wikimedia Engineering content in mediawiki.org moved to Wikitech.

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:


 * Unclear identity and scope
 * Outsiders confused about Wikipedia / Wikimedia / MediaWiki.
 * Insiders differ about project identity and scope.
 * As a result: confusing landing and path for new contributors.
 * 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.