User:SSethi (WMF)/Sandbox/Technical contributors workshop

This page documents the research for designing a workshop for technical contributors to small and large wikis.

Goals
The goal of this workshop would be to train technical contributors on developing bots, tools, gadgets etc. so that they are better equipped to:


 * 1) Serve the technical requests of their language wiki in any of these areas
 * 2) Empower other members of their wiki community to address the technical needs
 * 3) Grow their language wiki
 * 4) Build a network of technical contributors within Wikimedia who could share best practices on developing technical solutions and learn from one another

= Preliminary research =

Who is a technical contributor in the context of this project?
A technical contributor in the context of this project is someone who addresses the technical needs of their wiki community members (site administrators, editors, content moderators, event organizers) and contribute to the growth of their language wiki.

What kinds of technical requests small or large wikis receive or address?
From the technical requests received and handled by Indic-TechCom for Indic language wikis, users and contributors of Persian wiki and Wikimedia Sweden chapter for Sverige wiki, they can be categorized into following areas:


 * Enhancing existing or fixing broken user script of gadgets. Some example(s):
 * Enhanced version of Twinkle for reverting, rollbacking and restoring a version.
 * Developing or enabling user scripts or gadgets. Some example(s):
 * Gadget for fixing arabic letters, grammars, numbers, URLs, article structure, sections, duplicate letters, zero-width non-joiner, hamza and some verbs and references and template problem:
 * https://fa.wikipedia.org/wiki/mediawiki:Gadget-Extra-Editbuttons-persiantools.js
 * Gadget that finds possible misspelling words in articles and suggest multiple replacement to editors and they can fix the mistake by one click:
 * https://fa.wikipedia.org/wiki/mediawiki:Gadget-CheckDictation.js
 * User script for floatable buttons to avoid carpal tunnel syndrome
 * https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/FloatableEditingButton
 * User script for renaming files and auto-replacing them on Bengali Wiki
 * https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/MoveAndReplace
 * Add cite templates to toolbar in Telugu Wiktionary
 * QR code generator
 * https://meta.wikimedia.org/wiki/Indic-TechCom/Tools/qrCodeGenerator
 * Enabling or developing small extensions. Some example(s):
 * Enabling translate extension for Tamil Wiktionary
 * Developing a count down clock
 * Extension:CountDownClock
 * Developing tools or bots. Some example(s):
 * Wikisource proofreading statistics for Indic languages (see example)
 * ToFaWiki tool - creates an article from an english article with wikidata items and generates an article text with full structure, templates, categories and references in Persian language. It makes it easy to write articles for new users and helped us add over 100,000 articles to the encyclopedia.
 * https://github.com/Ladsgroup/tofawiki

Who benefits from the technical solutions and in what ways?
By gaining access to the technical solutions, a wiki community members (editors, translators, site administrators, content moderators, patrollers, event organizers) get:


 * a personalized user experience


 * access to additional features (e.g., content editing, administrative controls) of the MediaWiki software and tools that allow them to do their work efficiently


 * wiki project statistics that help them make informed decisions on the next steps for their projects

What challenges do the technical contributors currently have while addressing these technical requests?

 * Navigating requests, developing solutions for which would violate wiki policy.
 * Navigating requests that are not technically feasible.
 * A technical implementation that is beyond the scope of technical contributors work — for example, making changes in a tool hosted on Toolforge that doesn't have active contributors/maintainers currently.
 * Slow response from Wikimedia developers on requests for code review, deployment or technical support.
 * Learning curve for technical contributors is high as there are different programming languages and frameworks used in writing bots and tools.

Which communities have the most active technical contributors?

 * Indic language wikis
 * Sverige wiki
 * Persian wiki

Which language communities have run initiatives to collect or serve technical requests?
Most technical requests are discussed and addressed informally at Wikipedia:Village pump (technical) or Tech on Meta. But, there are some examples of where there are processes to handle community requests:


 * IndicTechCom - With support from CIS-A2K, a group of volunteers at Indic-TechCom are running the Indic-TechCom project to support Indic Wikimedia projects and the community:
 * Wikimedia Sweden - run the Indic-TechCom for the Sweden community.

Who should we collaborate with?

 * Jayprakash + CIS + Indic-TechCom

Additional notes

 * Based on article count, Sverige Wikipedia is ranked 3rd, Persian 18th and Hindi (most spoken among Indic languages) 55th.
 * My general impression is that technical requests that small wikis receive are mostly to help active editors, content-moderators and administrators with their basic needs. Intermediate wikis requests in addition to the requests small wikis receive are about content creation tools for users and newcomers (e.g., guided tours) and large wikis requests are quite a bit about enhancements,  experimenting with new technology features, etc.
 * Questions: Which users (wiki type: small, intermediate or large) should we keep in mind while designing the toolkits? What should be the basis for this selection?

= Workshop design = Some rough ideas:


 * Take different examples (easy, medium, complex) of the requests already served by Indic-TechCom to develop tutorials around gadgets, user scripts, bots, mediawiki apis, etc.
 * A tentative plan until Wikimania for a day-long workshop for technical contributors.

= References =


 * https://meta.wikimedia.org/wiki/Indic-TechCom


 * https://meta.wikimedia.org/wiki/Wishlists
 * https://meta.wikimedia.org/wiki/Technical_wishlist (NW: I think this should be Developer Wishlist?)
 * https://meta.wikimedia.org/wiki/Small_Wiki_Monitoring_Team/Tools
 * https://en.wikipedia.org/wiki/Wikipedia:Village_pump_(technical)
 * https://meta.wikimedia.org/wiki/Tech
 * https://sv.wikipedia.org/wiki/Wikipedia:Gemenskapens_tekniska_%C3%B6nskelista