Development process improvement/Versions and phases

Problem statement

 * The Wikimedia Foundation engineering team has indicated an intention to use an Agile development methodology, but doesn't have the proper tools to implement it. Adapting or creating such tools is not a priority at the moment.
 * There is a lack of distinction between the different versions, or phases, of each Wikimedia engineering project. Some hackish workarounds include time-based labels (e.g. "2010 Q3 plan") or ambiguous names (e.g. "LiquidThreads v2"). This is causing several issues:
 * the difficulty to track the status and roadmap of projects
 * the difficulty to report or fix bugs, since bugs may refer to different versions, in which the bugs may already have been fixed.
 * incorrect or misleading information (e.g. Extension:LiquidThreads lists the WMF team members as contacts, although these contacts refer to the current work being done, and not to the released extension, which is the subject of the Extension page).

Proposed solution

 * Use version numbers / milestones to disambiguate between different states of features & projects
 * Echo these version numbers in bugzilla for easier bug tracking & feature planning
 * Use "mysterious future"-like version for unplanned features.

Advantages:
 * easy to implement, easy to transition from later
 * more relevant bug reports
 * increased transparency and reduced ambiguity
 * increased efficiency: goals for each phase / version

Drawbacks and ways to mitigate them:
 * switching costs: limited
 * other?

Example

 * The current LiquidThreads extension is released as version 2.0.
 * In 2010, the Wikimedia Foundation decided to "adopt" LiquidThreads and to support its development, in order to assess its wider use as a discussion system on Wikimedia projects. A major redesign of the interface was started, labeled inconsistently as "LiquidThreads v2" (sic) and "LiquidThreads redesign".
 * In 2011, the decision was made to not only redesign the interface, but also make major changes to the back-end. Neither of these changes have been specifically labeled besides a generic "LiquidThreads rewrite". Since both are going to significantly change the feature, these changes should be bundled under a "LiquidThreads 3.0" label.

Numbering scheme
The numbering scheme is very much up to the developers & EPMs. Software versioning article on Wikipedia provides some context.

For projects where version numbers aren't appropriate, use phases (phase 1, phase 2, etc.) but generally prefer version numbers for software projects (e.g. Extension:CentralNotice should have version numbers instead of phases (2, 3)). "Phases" are more appropriate for operations projects.

Implementation
Almost none of the WMF-supported projects currently underway have been specifically labeled. Thus, a first step is to assign version numbers to all of them. The next step will be to continue to increment version numbers as development continues.


 * 1) Go through Category:WMF Projects 2011q1 and assign version numbers in collaboration with developers & EPMs
 * 2) Add version numbers / phases to the template for project pages
 * 3) Add version numbers to bugzilla for the appropriate products/components

Proposed labels:

Operations

 * WMF Projects/Data Center Virginia → Virginia data center buildout/Phase 1 (requirements, planning & purchase), Virginia data center buildout/Phase 2 (installation / buildout)
 * WMF Projects/Media Storage → Wikimedia media storage expansion/Phase 1 (research, requirements), Wikimedia media storage expansion/Phase 2 (implementation)
 * WMF Projects/Monitoring → Wikimedia status monitoring/Phase X (?)
 * WMF Projects/Virtualization cluster → Wikimedia virtualization cluster/Phase X (?)
 * Extension:OpenStackManager (already numbered)
 * WMF Projects/Backups → Wikimedia backups/Phase X (?)
 * WMF Projects/Data Dumps → Wikimedia data dumps/Phase X (?)

Content Quality and Editorial Tools

 * Article feedback → Article feedback/2.0
 * Pending Changes enwiki trial → phase?
 * Controversial content management system → Controversial content management system/0.1
 * External review system → External review system/0.1

Discussions and Interactions

 * Extension:LiquidThreads/WMF project information → LiquidThreads/3.0 (major rewrite, current version is 2.0)
 * Extension:SimpleSurvey/requirements → SimpleSurvey/1.0
 * Account Creation Improvement Project → Is this even an engineering project?

Multimedia Tools

 * Extension:UploadWizard/WMF project information → UploadWizard/1.0
 * Media Projects → umbrella? make a list of active subprojects and track progress on them

MediaWiki development

 * MediaWiki 1.17/Wikimedia deployment
 * MediaWiki roadmap/1.17 → MediaWiki 1.17
 * ResourceLoader → ResourceLoader/1.17 (part of MediaWiki core)
 * Test framework deployment → phase?
 * WMF Projects/Technical Documentation → phase?

Wikimedia analytics

 * Analytics upgrade → Analytics upgrade/Phase X Umbrella project
 * WMF Projects/OWA → OpenWebAnalytics deployment/Phase 1 or OpenWebAnalytics/1.4
 * WMF Projects/udp2log → udp2log/2.0 (1.0 was unicast)

Fundraising

 * 2010 Fundraiser →

Mobile

 * Mobile site rewrite → Wikimedia mobile site/2.0 (?)

Offline

 * Wikipedia version tools →
 * OpenZim integration → phase?
 * Kiwix UX study → Kiwix 1.0