Wikipedia:Wikipedia Signpost/2011-09-12/Technology report

What is: agile development?
On Thursday, the WMF Fundraiser Engineering team posted an update on how preparations for this year's fundraiser were progressing. They reported recent improvements in logging changes to CentralNotices, expanding the number of payment providers (for example, to allow donations in more currencies to be accepted), general bugfixes and other improvements. According to the team's project tracking software, Mingle, progress this year has resulted in at least 22 additional features (known as "cards") being implemented. With a number of tests and trials already being run, the advanced state of the project prompted the WMF's Philippe Beaudette publicly to commend the seven-person team, describing them as "enormously talented young... men and women".

Perhaps more controversially, the Fundraiser Engineering team have been trialling a development framework as yet uncommon in Wikimedia cycles. "Agile development" focusses on short iterations, each including their own design and production stages, improving the product iteratively. Iterations, known as sprints, are separated by retrospectives during which problems are analysed. The benefit of such a scheme, agility, can be described as responsiveness to changing requirements and priorities as designers, software engineers and managers work (normally literally) side-by-side. By contrast, under the waterfall model, the incumbent framework at Wikimedia, product changes are put through a lengthy but comprehensive design process before coding begins. In doing so, requirements are fixed early, tasks divided between teams and deadlines set; not so with agile development, now in use in Fundraiser Engineering, supported by Mingle. Although early signs look promising, critics of the agile development framework will no doubt wait for the fundraiser to come and go before judging its success.


 * Individuals and interactions over processes and tools
 * Working software over comprehensive documentation [e.g. design specifications]
 * Customer collaboration over contract negotiation
 * Responding to change over following a plan

MobileFrontend taking production traffic
Since Thursday, a percentage of visitors to Wikimedia's mobile site will have experienced a slightly different browsing experience. The old Ruby site has been converted into a newer PHP implementation that replicates the existing feature set. Nonetheless, the extension was built not merely to mimic, but to entirely surpass, existing functionality. New features, such as basic editing and uploading interfaces, are scheduled for next year; at the moment, visitors wishing to edit must transfer to the main site, which is not customised for display on slow connections and small screen sizes. The new extension is also built to take better advantage of Wikimedia's existing technical infrastructure in order to filter out and handle requests from mobile devices more effectively.

As such, the project forms an important part of the Foundation's vision of expanding its editor base into "Global South" countries such as Brazil and India, where mobile phone (and mobile Internet) usage can be considerably higher than traditional forms of Internet access. As a result, "Wikimedia should have a strategy that allows Wikipedia and other Wikimedia projects to be easily read and edited using mobile technology" according to the Foundation's white paper. The white paper, published in March this year, outlined ways of achieving the targets outlined in its five-year plan, including halting the decline in the number of editors.

The English Wikipedia served approximately 580 million pages customised for display on mobile devices last month, up more than 90% compared to August 2010 (full statistics). Since the switch was made, a number of bug fixes have also gone live (a full list of bugs found in the new extension, and possible new features, is also available).

In brief
Not all fixes may have gone live to WMF sites at the time of writing; some may not be scheduled to go live for many weeks.
 * The problems of packaging software: WMF bugmeister Mark Hershberger blogged about the problems he is experiencing in packaging HipHop for PHP for wider distribution, including to Wikimedia's own servers. In unrelated news, Hershberger also oversaw this week's bug triage, which focussed on bugs relating to the UploadWizard extension, which facilitates uploads to Wikimedia Commons (wikitech-l mailing list).
 * Debate over data storage: In light of the news that developer Niklas Laxström is preparing to work on MediaWiki's action logging infrastructure, there was a discussion on the wikitech-l mailing list about the proper format for storing PHP arrays in databases. For example, some users suggested JSON as a storage format, whilst others preferred the output of PHP's own  function.
 * 3D molecule viewer closer than before?: There are renewed efforts to get some form of 3D molecule viewer enabled on Wikimedia wikis. According to developer Magnus Manske, the feature "has been on wishlist[s] since ... forever".
 * Does MediaWiki need a skin language?: At the moment, all skins are written in the programming language PHP, making them a security vulnerability. Such a weakness effectively prevents letting users write their own skins, writes developer Daniel Friesen, who argues for the introduction of a "template language", effectively limiting them to a safe subset of functions (wikitech-l mailing list).
 * Pre-trial bot runs to be recorded: A bot was approved for use on the English Wikipedia this week to make a note of unauthorised trials on a bot's BRFA. Although such edits are common on other wikis in order to prove functionality, bots on the English Wikipedia must have approval before they begin any edits. A bot task to move hatnotes to the very top of articles is currently being discussed, as are a number of other tasks.
 * JavaScript bug fixed: The use of protocol-relative URLs no longer breaks some JavaScript functionality when using Internet Explorer version 7 (bug #30825).