Roadmap

Background: In recent years, Wikimedia Foundation's engineering planning has primarily taken place in a combination of internal goals documents and public project-level documentation. The purpose of this page is to establish a practice of sharing holistic engineering goals, initially primarily with a short term horizon, as a public document with open participation.

Timeframe of roadmap draft: September 2011-March 2012

See also:
 * Product Whitepaper for Wikimedia Foundation product priority justifications; Strategic Plan for long-term WMF goals, some of which are engineering goals
 * Roadmap/Archive for an earlier effort to create a roadmap more focused on point releases of the MediaWiki software
 * Software deployments schedule

September 2011

 * Protocol-relative URLs fully deployed to all Wikimedia wikis, followed by HTTPS deployment by early October
 * MW1.18 deployment (~9/19-10/4)
 * Continuous integration improvements (by ~10/31)
 * Stable Jenkins setup for PHPUnit tests
 * TestSwarm integration
 * Start community discussion re: git conversion process

October 2011

 * Git conversion - prelim test conversions early in month [needs planning/rescheduling, pending 9/29 team roadmap conversation]
 * [to finalize] "git boot camp" @ WMF tech days and/or NOLA hackathon
 * MediaWiki 1.18 tarball release
 * Make decision regarding project parameters for inline template scripting
 * Push code review on trunk toward zero
 * Git workflow architecture review
 * CI tests get run when a developer chooses to push to the stage between their branch and the mainline branch
 * this stage is roughly equivalent to merge requests on github & gitorious -- show test results to reviewers on a more or less completed chunk of code (may be one or several commits, and can be updated & resubmitted)
 * Agree on implementation strategies regarding remaining development process questions, e.g. how to handle multi-repo commits
 * [to review] Database-backed session handling
 * [to review] SwiftMedia deployment (pending code review of new engineering contractor)

November 2011

 * Finish code review on trunk
 * Cut 1.19 release branch
 * Git conversion begins \o/
 * Finish up specific Git management scripts
 * to support WMF workflow
 * i18n updates
 * new developers
 * SVN import, post-release/deployment make r/o switch
 * Deployment scripts
 * Make Gerrit behave like we want it to
 * 1.19 deploy (from SVN)
 * Move towards git-based development and release process

December 2011

 * First release from git mainline development branch
 * Move towards continuous integration via git, goalpost: weekly deployment
 * Jenkins (Testswarm/PHPUnit tests) on git branches

January 2012

 * HipHop deployment preparation
 * Create HipHop instance that includes a full production image
 * run CI tests on HipHop as well as Zend
 * push further necessary fixes into the detail plan
 * Begin developing framework for integration testing
 * possibly Selenium

February 2012

 * HipHop decision point and development schedule

Ops
[needs CT's/Mark's input]

September 2011

 * HTTPS support
 * Puppet/git migration
 * new mobile platform

October 2011

 * test labs deployment
 * bits deployment in eqiad with varnish3
 * external storage replication to eqiad, snapshot backups
 * finalization of Tampa router migration
 * knams router move
 * /home move to NetApp
 * finish upgrade/install of application servers (Lucid)
 * fundraiser preparations (separate section)

Fundraising

 * GlobalCollect/Braintree integration
 * CentralNotice improvements
 * RapidHTML (quickerform iterations)
 * improved unit testing coverage, Selenium
 * cross-browser testing environment and UX testing
 * security audit

September 2011

 * Release first beta of Android port of Wikipedia App [internal release done, public release TBD]
 * Finish MobileFrontend loose ends (various fixes as needed) [major fixes resolved]
 * Switch traffic from mobile. (old HawHaw gateway) to m.
 * Deploy larger collections support (applicable to all collections) [code for managing larger collections done]
 * Bug fixes to iOS app due to memory leaks [tester feedback pending]
 * Kiwix beta release (http://kiwix.svn.sourceforge.net/viewvc/kiwix/moulinkiwix/CHANGELOG ) [on schedule]

October 2011

 * Final release of Android app to market [on schedule]
 * Determine product requirements for release 2 of Android app and begin development
 * Decommission hawhaw and ruby gateways [on schedule]
 * Develop interlanguage and language switching for mobile web; tackle other first prioritized feature requirements
 * Build out better testing setup for mobile
 * Build out batch collections cluster [pending hardware - http://rt.wikimedia.org/Ticket/Display.html?id=1593]
 * Kiwix beta release
 * First UI review of MobileFrontend extension

November 2011

 * Mobile/Offline/i18n - Hackathon
 * MobileFrontend feature iteration
 * possibly including first "Save this for later" or other offline functionality
 * Kiwix beta release

December 2011

 * MobileFrontend feature iteration
 * Kiwix final release

March 2012

 * First MobileFrontend feature related to mobile editing (e.g. section editing or annotation)

June 2012

 * First MobileFrontend feature related to mobile uploads (e.g. media upload beta).

Proposed but unscheduled

 * USSD gateway rollout
 * SMS gateway rollout
 * Varnish as default cache for Mobile
 * New article creation
 * Watchlists
 * Diffs
 * Search improvements
 * Kiwix on Android
 * Partner integration (various)
 * Lazy loading articles
 * reduce bandwidth requirements for some users
 * WikipediaZero

September 2011

 * Finalize UploadWizard multi-file selection
 * Begin TimedMediaHandler code review
 * Implement basic MoodBar fixes; simple initial activation improvements
 * Implement read-only feedback dashboard based on MoodBar comments (->early Oct)

October 2011

 * Finalize UploadWizard chunked uploads (to ensure reliable large file uploads)
 * Make decision regarding follow-up MoodBar/feedback dashboard development based on capacity availability
 * Begin development on article creation workflow and NPP projects
 * Small WikiLove fixes (no more than a week)
 * Finalize TimedMediaHandler review and complete first round of fixes
 * Kick-off AFT vendor development project with initial focus on free-text comments + moderation

November 2011

 * Prototype deployment of new page patrolling tool, article creation flow iteration 1
 * TimedMediaHandler limited test deployment
 * [needs review] RL2/Gadgets improvements deployed with MW 1.19

December 2011

 * Test deployment of visual editor for limited use case, possibly only experienced editors
 * First limited production deployment of AFT improvement iteration

January 2012

 * Production deployment of new page patrolling + article creation flow improvements
 * Personal Image Filter development presumed to begin, may be done via vendor development
 * Deploy AFT improvement iteration

February 2012

 * GlobalProfile development to kick off in January, provided development capacity is available
 * Finalize development of iteration 2 on NPP / aticle creation flow
 * Deploy AFT improvement iteration

March 2012

 * Prototype deployment of GlobalProfile
 * Deploy iteration 2 on NPP / article creation flow
 * Deploy AFT improvement iteration

April 2012

 * Small scale production/default deployment of visual editor

Later in the year
Potentially:
 * Affiliation tools for WikiProjects [build on GlobalProfile]
 * Re-energize LiquidThreads (rename it?!) (may need refactoring for notification streams)
 * Photo/media moderation tools; additional patrolling and moderation tooling
 * Help features
 * Mentoring features
 * Other real-time features, chat

Continuous Responsibilities

 * Code review
 * RT review / ops tasks
 * Community extension review and deployment
 * Bug triages and general bug fixes
 * New extension deployment (Review queue)

Parking lot and todos

 * Details of git migration (extension mgmt, permissions, code review tool etc.)
 * More work on product backlogs for features and mobile
 * Ops section
 * Fundraising flesh-out
 * cf http://www.mediawiki.org/wiki/Wikimedia_Platform_Engineering and merge as appropriate