Wikimedia Engineering/2015-16 Q4 Goals

From MediaWiki.org
Jump to: navigation, search
TriangleArrow-Left.svgQ3 Wikimedia Engineering Goals, FY2015-16, Q4 (April–June) Q1TriangleArrow-Right.svg

Purpose of this document: Goals for the Wikimedia Technology and Product Development department, for the fourth quarter of fiscal year 2015–16 (1 April 2016 – 31 June 2016). The goal setting process owner in each section is the person responsible for coordinating completion of the section, in partnership with the team and relevant stakeholders.

Status fields can use the following templates: In progress In progress, To do To do, N Postponed, YesY Done or Incomplete Partially done

ETA fields may use the initialism EOQ (End of Quarter).

Product[edit]

Discovery[edit]

We build the anonymous path of discovery to a trusted and relevant source of knowledge.

Our focus will be on building on-top of our anonymous and trusted search stack to improve relevancy, expose additional content and leverage locally relevant knowledge.

Goal setting process owner: Dan Garry

Search[edit]

Objective Key result Dependency ETA Status
Enhance search results and expose users to other interesting content by improving interwiki search integration.
  • Run A/B test for a feature that:
    • Uses the TextCat library to detect the language of a user's search query.
    • Adjusts results to match that language.
  • Depending on user feedback and success of the A/B test, push this feature to production.
  • Operations: Wikimedia Labs (maintaining Labs for dashboarding)
  • Discovery Analysis Team
June 2016 In progress In progress
Add real-time index updates to completion suggester and improve overall stability and performance of search by upgrading to Elasticsearch 2.x.
  • Upgrade search cluster to Elasticsearch 2.x.
  • Add real-time index updates to completion suggester.
  • None
June 2016 N Not done

Wikidata Query Service[edit]

Objective Key result Dependency ETA Status
Allow users to perform geospatial queries by adding support for geo-coordinate functionality into Wikidata Query Service.
  • Add support for geocoordinate functionality to Wikidata Query Service in production.
  • None


June 2016 YesY Done

Alongside the above goal, in Q4 the Wikidata Query Service will receive regular maintenance and user interface improvements in collaboration with Wikimedia Germany.

Maps & Geo[edit]

Objective Key result Dependency ETA Status
Address Wikivoyage concerns in order to replace the current wmflabs-based hack maps with the production-level <mapframe> and <maplink> tags. Wikivoyage sites switch away from Labs-based client code for maps and instead use Kartographer extension in the articles
  • UX engineer
  • liaison (part time)
  • community buy-in
June 2016 YesY Done
Understand Wikipedia map user stories, user flows and key activities A wiki page with a list of user stories, mockups and diagrams that describe how maps will be used in various scenarios, based on user experience and community discussions.
  • UX engineer
  • community liaison
June 2016 YesY Done

Analysis[edit]

The Discovery Department's Analysis Team leads the Discovery Department in experimental design, data collection, and data analysis. In light of reduced capacity due to the departure of one of our two analysts, this quarter the team will not have its own goals, instead allocating itself as required to achieve the goals for Discovery listed in the other subsections.

Wikipedia.org Portal[edit]

Objective Key result Dependency ETA Status
Make www.wikipedia.org a portal for exploring open content on Wikimedia sites.
  • Run at least 3 A/B tests to decrease the page's 44% bounce rate. (more details)
  • Graduate at least 1 successful A/B test to production on the portal.
  • Operations: Wikimedia Labs (maintaining Labs for dashboarding)
  • Discovery Analysis Team
June 2016 YesY Done

Editing[edit]

Goal setting process owner: User:Trevor Parscal (WMF)

The Editing Department build collaborative, inclusive tools for creating and editing free knowledge.

Objective Key Result Dependency ETA Status
Team Objective Outputs
Collaboration Solidify Notifications MVP
  • Finish interface overhaul and re-organization, implement long-delayed features such as mark as unread and expandable bundles.
  • Rewrite Special:Notifications to add cross-wiki functionality and upgrade message-handling features.
  • Conclusion of primary development
  • Better communication for multi-project participation
EOQ YesY Done
Language Increase reach for Content Translation
  • Out-of-beta release criteria for Content Translation is defined
  • More languages get machine support inside Content Translation
  • More translators and increase in translation rates.
Ops, Legal, CE EOQ In progress In progress
Multimedia Content interactivity
  • Articles have an increased number of media items featured in them.
Parsoid (gallery tag modifications)

OOjs UI (read-mode usage?)

EOQ YesY Done
Parsing Improved support for media in Parsoid
  • Parsoid native <gallery> extension completed and deployed
  • Parsoid DOM spec proposal for videos is implemented in Parsoid
  • Work in progress for audio files in Parsoid
  • Images in galleries and outside galleries render identically in Parsoid
  • Improved editing support for galleries
  • Videos are no longer treated as images in Parsoid
EOQ N Not done
Product Consolidate data sources
  • Editors, product managers and others can see relevant data sources from each team in a single dashboard
Analytics Engineering EOQ N Not done
VisualEditor Increase usage of the visual editor
  • Provide the visual editor as the default editing experience on all Wikivoyage wikis
  • Increased number of edits and editors using the visual editor
Community Liaisons EOQ YesY Done

UI Standardization[edit]

Goal setting owner: User:VEckl_(WMF)

Objective Key Result Dependency ETA Status
Basic stylesheet of accorded design properties
  • Test implementation in OOjs UI
  • Gather feedback & improve workflow for extension requests by web-facing teams and developer community. Pending documentation.
  • Implementation partners: Discovery, Editing or Reading Web
EOQ N Not done

Fundraising Tech[edit]

Goal setting process owner: User:AGomez_(WMF), User:Khorn_(WMF)

Objective Key result Dependency ETA Status
Complete PayPal re-integration / upgrade
  • Paypal upgrade campaign-ready
  • PayPal integration support
June 2016 In progress In progress
Donor database cleanup: Second Phase
  • Reversible deduplication of exact matches complete
  • donor services
  • major gifts
June 2016 In progress In progress

Reading[edit]

Objective Key result Dependency ETA Status
Web: Increase learning by lowering cost of exploration Launch hovercards beta feature on desktop web across multiple wikis, gauge improved reader satisfaction via survey

https://phabricator.wikimedia.org/T70860

  • Community Engagement
  • Analytics
  • Ops
2016 Q4 YesY Done (used in-depth research rather than survey)
Web: decrease load time and cost for low-resource environments Lazy loading of images, and cutting default html size on wikipedias, stable mobile web channel.

https://phabricator.wikimedia.org/T113066

Specific key results here: Reading/Web/Projects/Barack Obama in under 15 seconds on 2G#Key Results

2016 Q4 YesY Done
Android: Launch feed Drive user retention via Feeds on the app's home screen, with an emphasis on sharing the feed content. In the process, encapsulate as much feed generating logic in our RESTBase service, for use by Android, iOS, or other consumers. phab:T129076 Success of the Feed feature in the iOS app, after its release. 2016 Q4 YesY Done
iOS: Universal links Continue to improve user retention by implementing "Universal Links" (aka deep links) which provide convenient re-entry to the app from links and OS search, but do not advertise or promote the app. https://phabricator.wikimedia.org/T97785 Web 2016 Q4 YesY Done
Infrastructure: finish MediaWiki authentication framework rewrite Enable two-factor authentication via AuthManager on the Wikimedia cluster. (T130340) Security 2016 Q4 In progress In progress
Community Tech: Increase core contributors' productivity Ship features and fixes related to three wishes in the Wishlist Survey top 10 2016 Q4 In progress In progress
Community Tech: Support volunteer and chapter developers Work with volunteer devs and WMDE's TCB at the Hackathon and in Berlin on wishes below the top 10 2016 Q4 YesY Done

Please see Reading/Quarterly planning/Q4 for the community-open brainstorming that led to this set of goals.

Technology[edit]

Group goal[edit]

Objective Key result Dependency ETA Status
Make codfw (Dallas data center) functional as a backup data center
  • Serve MediaWiki application server traffic from codfw for 48 hours
  • Serve Swift, ElasticSearch and RESTBase, Parsoid services from codfw
  • Technical Operations
  • Performance (partial MediaWiki multi-DC work, Swift, MediaWiki configuration)
  • Release Engineering (Scap, MediaWiki configuration)
  • Services (RESTbase, Parsoid)
  • Discovery (Search)
April YesY Done

Analytics Engineering[edit]

Goal setting process owner: Nuria Ruiz

Feedback can be sent to analytics@lists.wikimedia.org (public e-mail list)

Objective Key result Dependency Outcome/Rationale/Value Proposition Status
Wikistats 2.0 (ongoing goal).

Remove dependency of dumps as sources of edit data to be able to replace wikistats reports.

Setting up a pipeline that allows to source historical Edit Data into hdfs task T130256 Enables Easy consumption of edit data. At this time consuming edit data from database or dumps is cumbersome YesY Done
Public Event Stream task T130651 N Not done We had to lower the priority of this goal to focus on the edit data pipeline.Retaking work on Q1.
Make Unique Devices dataset public task T126767 Unique Devices dataset substitutes data

about unique users of wikimedia projects that we used to get from comscore. Provides a measure of reach of wikimedia projects.

YesY Done
Prototype Data Pipeline On Druid task T130258 Security, Operations Prototype will be done with pageview data. Would allow easy access to detailed pageview data through a basic UI. Will let us learn about Druid technical limitations/advantages. Access to data might be internal at the end of quarter. Next quarter we will focus on making UI public. YesY Done
Operational Excellence Set of tasks needed to keep lights up and update/upgrade existing systems to maintain and improve current level of service N Not done

A lot of work is involved in scaling Pageview API, that is still ongoing, to be finished next quarter.

Architecture[edit]

Goal-setting process owner:  Rob Lanphier


Objective Key result Dependencies ETA Status
Focus: Implement ArchCom subteams (T123606) Scaling the advice gathering process Emergent leadership and wide participation EOQ Incomplete Partially done - Security WG partially form. Conpherence experiments underway.
Strengthen: Iterative improvement in ArchCom processes (T125218) Speed and clarity of advice from ArchCom TPG support EOQ YesY Done - Architecture committee/Status instituted; process for regular updates isn't as labor intensive as it once was.
Experiment: Develop Fellowships program Clarity of relationship with our most senior engineers Editing EOQ YesY Done - the real work comes in instituting this next quarter.

Performance & Availability[edit]

Goal-setting process owner: Ori Livneh

Speed is Wikipedia's killer feature. ("Wiki" means "quick" in Hawaiian.) As the Wikimedia Foundation’s Performance team, we want to create value for readers and editors by making it possible to retrieve and render content at the speed of thought, from anywhere in the world, on the broadest range of devices and connection profiles.

The following is a summary of the Performance Team Goals.

Objective Key result Dependency ETA Status
Deploy PerformanceInspector None EOQ In progress In progress
Deploy Thumbor
  • Service-based thumbnailing re-architecture in production - task T121388
Ops EOQ In progress In progress
Multi-DC
  • Support CODFW switchover
Ops EOQ In progress In progress

Release Engineering[edit]

Goal setting process owner: Greg Grossmeier

All tracked in: #releng-201516-q4 - More details at Wikimedia Release Engineering Team/Goals/201516Q4

Objective Key result Dependency Team members ETA Metric Status
Consolidate deploy tools / Train 2.0
  • Migrate remaining services to scap3
  • Services team
  • Any teams that have deployed services
  • Chad
  • Dan
  • Mukunda
  • Tyler
EOQ The number of services using scap3 N Not done
Retire Gerrit in favor of Differential
  • YesY Done - Initial documentation and workflow explanation - task T117058
  • YesY Done - Phase 1 repository migration - task T130418
  • YesY Done - Spec out needed glue for Differential to Gearman to Nodepool - task T130949
  • WMF Engineering
  • MW Tech community
  • Chad
  • Mukunda
  • Antoine
EOQ The number of repositories actively using Differential instead of Gerrit. YesY Done
End to End test language expansion
  • YesY Done - Evaluate available JavaScript end-to-end testing frameworks. - task T108874
  • Prototype new JS framework. - task T131121
  • YesY Done - Send out user satisfaction survey. - task T131123
  • none
  • Dan
  • Zeljko
EOQ Nothing for this quarter N Not done


Research[edit]

In Wikimedia Research we use qualitative and quantitative methods to provide strategic insights and technological solutions to the movement and the Foundation, to foster innovation and to inform the development of new products.

Research & Data[edit]

Goal setting process owner: Dario Taraborelli Goal setting process owner: Dario Taraborelli [ Wikimedia Research goals overview ]

Objective Key result Dependency ETA Status
EXPERIMENT

revscoring in production

  • ORES Extension deployed to 2+ wikis (T130210)
  • Ops
EOQ YesY Done
EXPERIMENT

Discussion modeling

  • publicly release cleaned dataset of all user talk diffs
  • analyze user_talk editing behavior of users blocked for harassment/personal attacks
  • label user talk posts for tone (friendly to aggressive) and for whether it's an example of harassment/personal attack
  • Community Engagement
EOQ In progress In progress
FOCUS

Research outreach

  • host a joint research workshop (Wiki Workshop 2016) at WWW '16 and ICWSM '16
  • host WikiCite – a technical event/hackathon focused on extraction and data modeling of Wikipedia citation data (T125186)
None
May 2016 YesY Done
FOCUS

Reader segmentation research

  • Deepen our understanding of Wikipedia readers by a quarter-long focused research on the data collected via the large scale English survey
  • (Stretch) Run the large scale English survey in one more language.
  • Reading (for the stretch goal)
May 2016 In progress In progress

Design Research[edit]

Goal setting process owner: Abbey Ripstra [ Wikimedia Research goals overview ]

Objective Key result Dependency ETA Status
Personas -

Use them in product development,

and iterate pragmatic personas.

  • Support the use of personas in product development.
  • Analysis on the collected Reader, New Editor and deep dive (New Readers) personas.
EOQ not completed
Maintain evaluative design research projects with Editing, Reading, Search and Community Engagement teams
  • Continue to mature collaboration between design research and product teams (make our system more lean)
  • Continue to mentor and coach teams that do not have design support, to do design research (PC&L particularly this quarter)
  • Continue to provide evaluative research to official product teams (Reading, Editing, Search)
  • Functional collaboration and good planning with product (Reading, Editing and Search) teams.
  • TPG support to collaborate toward leaner and more effective collaboration with product teams.
EOQ In progress In progress
Deep dive / contextual inquiry in Nigeria and India
  • Forward our deep dive / contextual inquiry process and method to be a repeatable practice implementable by WMF.
  • Bring data and stories about New Readers in Nigeria and India back to WMF and the movement.
  • Start to look across deep dives (South Africa, Mexico and Nigeria and India) for patterns and for differences between various regions visited.
Collaboration with Communications, Partnerships and Reading team and Reboot (external consultant). EOQ Done
Continue, Complete Collaboration with UW on Survey
  • Deploy survey to 200 or more students at the University of Washington
  • Analyze and publish results on Wiki
  • External collaborators
EOQ done
Create a project plan and understand dependencies and resource needs for benchmarking.
  • Pick up where we left off, using the work completed before to create a stable testing environment.
  • Make a plan to create a stable testing environment usable for iterative unmoderated, remote testing as well as benchmarking (mobile and desktop) and mobile field research.
  • Prepare to run pilots with UserZoom and Loop11 (and any other possible tools).
  • funding for tooling
  • tooling working on mediawiki software (necessitates a pilot)
EOQ Done

Security[edit]

Goal setting process owner: User:CSteipp (WMF)

More details at Wikimedia Security Team/Goals 201516#Q4_.28Apr-Jun_2016.29

Objective Key result Dependency ETA Status
CentralAuth password authentication service. Reduce the impact of a security breach by isolating password hashes into a smaller, more well-defended set of servers. During this quarter, the team will work on the design and initial implementation steps; having the service deployed and used for all password authentications will likely finish in Q1 of next fiscal year.
  • System design documented
  • Initial service implementation
  • Isolated database established
Operations (database work); Services (design collabaration) EOQ DRAFT

Services[edit]

Goal setting process owner: Gabriel Wicke

Objective Key result Dependency ETA Status
Core: REST API build-out, documentation & distribution
  • Support apps and the API-driven frontend effort with cacheable high-traffic entry points and clean content interfaces. Status: Done.
  • Expand mediawiki-containers environment to fully support RESTBase, and improve support for development use cases. Status: Deferred, integrate with ops Kubernetes effort in next quarters.
EOQ Partly done.
Focus: EventBus & change propagation
  • Introduce retry queues. Status: Done.
  • Migrate several jobs (in particular RestbaseUpdateJobs) to EventBus / change propagation service. Status: Mostly done, but encountered issues with Kafka bindings.
  • Complete EventBus & change propagation multi-Dc support & test it: T127718. Status: Not done, blocked on Kafka bindings work.
Analytics (Kafka replication setup), Operations (Service discovery for DC fail-over) EOQ Partly done / in progress.

See also https://phabricator.wikimedia.org/T118871 for background and ongoing work.

Technical Operations[edit]

Objective Key result Dependency ETA Status

Make codfw (Dallas data center) functional as a backup data center

  • Serve MediaWiki application server traffic from codfw for 48 hours
  • Serve Swift, ElasticSearch and RESTBase, Parsoid services from codfw
  • Ability to deploy MediaWiki, RESTbase, Parsoid from codfwYesY Done
  • Performance (partial MediaWiki multi-DC work, Swift, MediaWiki configuration)
  • Release Engineering (Scap, MediaWiki configuration)
  • Services (RESTbase)
  • Discovery (Search)
  • Parsing (Parsoid)
EOQ YesY Done
Traffic: Support HTTP/2 protocol in our TLS termination for all cache clusters
  • Generate statistics on browser HTTP/2 and/or SPDY support beforehand to evalute the tradeoff
  • Evaluate reasonable options to support both protocols if statistics indicate significant performance loss otherwise
  • Support HTTP/2 before Chrome's May 15 deadline to cut SPDY/3 support
May 15
(Chrome SPDY removal deadline)
YesY Done
Traffic: Progress the Varnish 4 upgrade for reduction of technical debt and unblocking new projects
  • Finish any trailing previous-quarter work for full analytics support with Varnish 4
  • Convert other low complexity cluster to Varnish 4
  • Fully evaluate the remaining difficulties for converting the more-complicated text and upload clusters to Varnish 4
Analytics (Varnish 4 logging) EOQ YesY Done
Labs: Allow using Kubernetes as a backend for the Tools 'webservice' command
  • Make available a --engine=kubernetes switch that runs webservices on k8s
EOQ YesY Done