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 misspelled words in articles and suggests 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, 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?

 * Addressing requests, developing solutions which would violate wiki policy.
 * Addressing 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 language communities with active technical contributors would be easy to approach to learn more on this topic?
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:


 * Indic language wikis – User:Jayprakash12345 leads MediaWiki technical trainings and addresses Indic community requests as part of the CIS-A2K's Wikimedia outreach (e.g., Indic-TechCom) initiatives in India.
 * Sverige wiki – Wikimedia Sweden runs Wikipedia: Community Technical List (a technical wishlist) for the Swedish community. User:Johan_(WMF) is a point of contact.
 * Persian wiki – User:Arash.pt is a point of contact.

Sidenote: Communities below were randomly chosen without any formal research and ended up in this list as Srishti is familiar with their work and have connections with a few members there who might be easy for us to approach and work with. Moreover, they are already doing some work in this area.

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 be kept in mind while designing the toolkits? What should be the basis for this selection?

= Workshop design = Next steps:


 * 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.
 * Develop a tentative plan until Wikimania 2019 for a day-long workshop for technical contributors on different topics.

= 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