User:BDavis (WMF)/Projects/Tool Labs support

Tool Labs support is an evolving idea for a team/sub-team/individual in the Wikimedia Foundation with a mission of helping Tool Labs developers create more robust, secure and performant tools and bots to support Wikimedia wikis.

Bots and tools are a vital resource for many on-wiki content creation and curation activities. A typical bot/tool project begins life as a way for a motivated Wikimedia community member to make some on-wiki task easier (or possible). These individuals are "scratching their own itch" in the best tradition of open source development. Many of these projects have a short lifecycle due to factors such as loss of interest by the maintainer, insurmountable technical hurdles, or discovery of a better means to manage the original problem. Others however become popular and tightly integrated in the workflows of one or more on-wiki communities.

Popular tools and bots become de facto production software needed to keep the wikis healthy and happy. Their roots as weekend projects from motivated volunteers brought them their success, but ultimately pose a risk to their end users. Life happens and a single developer project is in perpetual danger of abandonment. In The Cathedral and the Bazaar, ESR notes that "When you lose interest in a program, your last duty to it is to hand it off to a competent successor." Facilitating the best practices and communication that allow for this hand off to happen and for project to grow beyond what can be accomplished by a single motivated individual would be a primary focus of Tool Labs support.

Key activities

 * Connect bot and tool developers via mailing lists, irc channels, phabricator and other public communication channels to solve shared problems and advocate for shared concerns.
 * Curate and promote documentation of best practices for tool and bot development.
 * Help interested developers transition from one person weekend projects to small collaborative communities.
 * Help organize groups to work on shared libraries/infrastructure needed for bots and tools. Pywiki bot is a good example of a healthy library community to emulate for other projects.
 * Help curate bootstrap projects for common tasks including support for best practices and evolving Labs infrastructure.
 * Consult on performance and security for interested projects.
 * Advocate for shared Tool Labs user concerns in Wikimedia Foundation planning.

Similar projects
At first glance the focus of Tools Lab support may seem very similar to the focus of the existing Community Tech, Developer Relations and/or Wikimedia Labs teams. The author however believes that the proposed activities are actually falling into a gap between these teams. Community Tech might become involved in the short term maintenance of a popular tool or bot but their current charter is focused on the on-wiki outcomes and not the health of the project behind any particular tool or bot. Developer Relations encourages use of the MediaWiki APIs that are the backbone of many tools and bots but focus primarily on creating documentation and engagement opportunities for learning about using MediaWiki and its APIs. The Wikimedia Labs team maintains and enhances the technical infrastructure for Labs and Tool Labs but has no charter to mentor the individual projects that are hosted there beyond basic tutorials for using the provided services. The Tool Labs support would likely collaborate with all three teams to fulfill its mission as well as interact with other Wikimedia Foundation teams such as Community Engagement and additional technical teams as well as the larger MediaWiki developer community.

For organizational purposes, the Tool Labs support team could be founded as a sub-team within any of the Community Tech, Developer Relations and/or Wikimedia Labs teams. Regardless of the eventual staffing, the project should be incubated for a trial period as a single person or at most two people within one of these existing teams.

Past proposals
This idea is not really new. Various people have pitched similar or related ideas during past annual planning cycles. The author believes that the focus of this particular proposal is slightly more narrow than past proposals. It does not include an ask for design or project management support as one proposal considered in the run up to the 2015 Engineering department reorg proposed. It also does not include a "productization" charter for very popular tools as was suggested in another unpublished proposal. The focus here is really intended to be on enabling the formation and reinforcement of volunteer communities. The technical contributions envisioned are primarily in the form of template projects and tutorials with a hope that these will actually be largely maintained by the various developer communities themselves.