Wikimedia Engineering/2016-17 Goals/New MediaWiki-focused team

From mediawiki.org
2016-03-03: this page was copied from https://office.wikimedia.org/wiki/Engineering/New_core_team and may have links that don't make sense in the mediawiki.org context. Please copy/move/whatever to situate this in a better home as appropriate.

This is a proposal to have a team within WMF Engineering focusing on the core MediaWiki software. There are two proposals here with different scope: a new "Platform" team to make MediaWiki a better software development platform, and an "Availability" team, which would focus their guardianship around ensuring that MediaWiki remains a stable software platform.

Platform[edit]

Full proposal: MediaWiki Platform team proposal

Gergo has been working on this proposal, based on a WikiDev16 discussion (etherpad), and following up from Brion Vibber's original idea.

Naming[edit]

MediaWiki Platform team

Scope[edit]

Improve other Wikimedia developers' ability to use MediaWiki as a software development platform.

  • Refactor MediaWiki into loosely coupled, well-documented components with clean interfaces and easy-to understand interactions
  • Support developers working with core via code review, consultation and training
  • Improve developer experience by making MediaWiki's developer-oriented features more intuitive and convenient

Availability[edit]

RobLa-WMF proposes this alternative naming and scope

Naming[edit]

Wikimedia Availability Team

Scope[edit]

Make MediaWiki backend failures diminishingly infrequent, and prevent end users from noticing the ones that do by making recovery as easy and automated as possible.

  • Maintenance of MW core -- internals and extension points
  • Make short and medium-term roadmaps of what major availability changes are expected to go into core
  • Providing architectural consultation about and helping to make engineering improvements needed by other 'client' teams within WMF Engineering as well as third-party users
  • Work with Release Engineering and Operations to ensure MediaWiki works reliably with the minimum of logistical overhead
  • Partner with other teams responsible for operational excellence: e.g. Security, Performance, Architecture

Brion Vibber's rationale for a new core team[edit]

This section was written in December 2015, which started the discussion

Since the WMF Engineering reorg earlier this year there's no longer a MediaWiki Platform or Core team, meaning that there is no team within WMF Engineering dedicated to maintaining the core of MediaWiki. This has made it very difficult to make any kind of long-range planning or roadmap for MediaWiki as a platform, which harms both internal and external users of MediaWiki.

I would like to propose re-establishing a MediaWiki Core team:

  • with responsibility for maintenance of MW core -- internals and extension points
  • with responsibility to make short and medium-term roadmaps of what major changes are expected to go into core and how to deal with back-compatibility
  • providing architectural consultation about and helping to make engineering improvements needed by other 'client' teams within WMF Engineering as well as third-party users
  • expect to partner with other teams on various projects re: security, performance, etc

What do people think? Would this be helpful, or is there a better way to provide engineering resources to MediaWiki core? Should we do something else instead, perhaps centered around the existing Architecture group? Should we separate the roadmap & consultation from the heads-down engineering work? Should we separate back-end (API, database) from front-end (CSS/JS, OOUI) or keep them together? Is a 'services' relationship with other teams a good model, or should we rely more on cross-functional teams? If so, how do we manage them and make sure they get stuff done and get the resources they need?