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

proposals or anti-proposals to come soon!

see the talk board here!

This is a proposal to have a team within WMF Engineering dedicated to maintaining the MediaWiki core software. There are two competing proposals here with different scope: a new "Platform" team that has broad responsibility for MediaWiki as a software development platform, and a narrow "Availability" team, which would focus their guardianship around ensuring that MediaWiki remains a stable software platform.

Platform (MediaWiki Core)
"Full proposal: MediaWiki Platform team proposal"Gergo has been working on this proposal, based on a WikiDev16 discussion, and following up from Brion Vibber's original idea.

Naming
Wikimedia Platform team

Scope
Accelerate user interface innovation/evolution and increase efficiency of editor automation by making all business logic for MediaWiki available via remotely callable APIs.
 * Develop and document a clear set of APIs so that external developers can create applications that easily interface with MediaWiki
 * Expose existing business logic to external consumers via APIs
 * Collaborate with Wikimedia Engineering teams and the larger MediaWiki developer community to ensure that new features added to MediaWiki have APIs that fulfill current community standards
 * Providing architectural consultation about and helping to make engineering improvements needed by other 'client' teams within WMF Engineering as well as third-party users
 * Partner with other teams responsible for operational excellence: e.g. Security, Performance, Architecture

Availability
RobLa-WMF proposes this alternative naming and scope

Naming
Wikimedia Availability Team

Scope
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 reliability 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
"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?