User:CFloyd (WMF)/Reading Services Coordination

Goal
The purpose of this initiative is to enable product teams in the Reading vertical to better plan and develop new features that require backend services.

Desired Outcomes

 * Reduce uncertainty of feature planning that involves services
 * Improve productivity of engineers by streamlining services planing and development
 * Increase collaboration of platform teams within Reading by working together on shared services
 * Establish collaborative relationships with other teams and verticals that develop and maintain services

Roles and Responsibilities
The Reading Service Coordinator performs several functions in order to achieve these outcomes:
 * Assist PMs in productizing existing and new services developed within the WMF and community
 * Coordinate and communicate service requirements of the product in the Reading vertical with external teams
 * Gather service needs for upcoming features from Reading PMs
 * Align Reading product teams on shipping of common service backed features
 * Establish and maintain a 6-9 month road map for service dependent Reading features
 * Coordinate development and deployment schedules of services and product features among teams
 * Identify and manage development dependencies of service and product teams
 * Establish a Point-of-Contact for each team involved in the development each service

Feed Services APIs
Description

Create and deploy APIs and services to support the Explore Feed for the iOS and Android Apps
 * 1) Deploy separate endpoints for random, trending, picture of the day, featured article, and in the news
 * 2) Create an aggregated endpoint
 * 3) Create an infrastructure that allows us to easily add new service endpoints for the feed

Maps and Geo Services API
Description

Push Notifications
Description

Create and deploy a backend infrastructure that can:
 * 1) Send push notifications to Android, iOS, Chrome, Firefox, and Safari.
 * 2) Can consume an arbitrary stream or end point to get data
 * 3) Can perform arbitrary analysis of consumed data to determining whether a push is required and for what devices
 * 4) Can persist a list of UDIDs representing devices/browsers, subscription types, dates, and some metadata
 * 5) SLA of 10 minutes (not real time)

Wikidata Enrichment APIs
Description

Ingest Wikidata information to enrich the querying ability of search APIs

Administrative

 * Define responsibilities for my work in establishing a services coordination process
 * Create a Wiki to track progress and plans during initial stages
 * Work with Adam to gather organization information and contacts
 * Review existing Q1 plans of Reading, Discover, Services, and Analytics
 * Review planned feature releases for all Reading platforms
 * Understand and document the relationship between MediaWiki, Restbase Services and the Mobile Content Service
 * Create 6-9 Month Road Map of all Reading Services
 * Work with TPG to establish a process for working with teams to develop and ship cross vertical features
 * Create a Phabricator tag and board to track tasks across all dependencies and platforms
 * Create documentation for planning a feature with service requirements

iOS Team Impacts

 * 1) Current time being spent on coordination is about 10-15 hours/week

Progress Reports
July 8 July 11 July 18
 * 1) Worked with Josh to coordinate new Geodata service changes with Discovery - enhancements are deployed
 * 1) Coordinated beginning of work on new Trending Edits Service
 * 1) Created the Wiki!