Talk:Wikimedia Engineering/2012-13 Goals

"integration of collaborative editing work from GSoC student, if applicable"

awesome! What is this brave student's name? Is there a page for this project yet?

Adamw (talk) 23:12, 25 March 2012 (UTC)
 * Ashish Dubey -- see User:Dash1291/GSoC 2012 Application, which I'll link to. Thanks. Sumana Harihareswara, Wikimedia Foundation Volunteer Development Coordinator (talk) 12:40, 26 March 2012 (UTC)

IPv6
See en:Wikipedia:WikiProject IPv6. I think IPv6 is an important goal here. It sure wouldn't be good for the WMF's PR if we miss World IPv6 Launch.Jasper Deng (talk) 03:43, 27 March 2012 (UTC)
 * But World IPv6 Day is 6 June 2012, which is before 1 July 2012 (the start of the 2012-2013 fiscal year). So you wouldn't be seeing that in these plans, which are for the 2012-2013 fiscal year. Sumana Harihareswara, Wikimedia Foundation Volunteer Development Coordinator (talk) 12:07, 27 March 2012 (UTC)
 * But let's say that we miss it. Surely IPv6 will still require lots of activity after the launch.Jasper Deng (talk) 19:29, 27 March 2012 (UTC)

previous goals?
I know about the page "Roadmap" and the strategy wiki's "product whitepaper", but is there anything like a "2011-2012 Goals" page so we can see how past planning/prioritisation efforts have gone - so we can assess the scale of what's actually achievable in a 12 month period? I think all of the things that are listed here are great and would be brilliant if we had them, but is it feasible that even a majority of them can actually be delivered on time? Looking at the "big picture" section of this page there are 7 key areas, the first one of which is a massive undertaking just by itself [modernise the editor]. Don't you think that trying to do that in parallel with all the other things is likely to be a classic case of "biting off more than we can chew"? I'd love to see the budget approved to achieve all this, but I'd hate to for it to look like a plan that is over-promising and likely to under-deliver. Wittylama (talk) 05:36, 2 April 2012 (UTC)


 * Hi Liam,


 * all good questions. The best public record of the 2011-12 engineering objectives is the high-level recap in the Annual Plan. We did develop a detailed goals document last year as well; however, we did not have time to take it past the initial submission (this was around the time of the CTO transition), which means that it doesn't reflect the funding that was ultimately approved. The difference was pretty significant, about 17 FTEs total, much of which was a proposed new offshore unit for additional development capacity. (I was in favor of removing that from the plan, because I didn't feel we'd be able to pull it off.) So to do a fair comparison, one would have to heavily annotate and reverse engineer that document, which I don't think would be a good use of anyone's time. But at the high level, in addition to the stuff you find in the plan deck and in the mid-year review, we aspired to do the following:

 
 * full DB replication to the new data-center (done)
 * fail-over capability to the new data-center (available in case of emergency, but hot failover will only be done next FY)
 * rearchitecting of analytics log collection infrastructure (lots of work already done, lots more left)
 * Git migration (done)
 * Heterogeneous deployment capability (done)
 * More frequent releases (done)
 * Completion of mobile port (done)
 * Mobile login (backend work done, including SSL)
 * Completion of mobile field research (done)
 * Multiple releases of i18n features such as input methods, font delivery, etc. (done, with much higher release frequency than planned)
 * Improved profiling tools (done)
 * Improved massively scalable media storage architecture (done for thumbnails, in progress for originals)
 * Work on next generation of AFT with external vendor (first releases done, work still in progress)


 * There's one big project we've deliberately postponed, which is the adoption of HipHop as a performance improvement -- instead we're focusing on Lua scripting.


 * There are a couple of big items that are still pending, mobile uploads (we're just kicking off work on the first implementation), and the launch of a new caching center (we're waiting for a final decision from a potential partner).


 * And, there are two areas where we've been only able to do substantially less than hoped for: QA and analytics. In both areas, it's taken us a lot longer to fill key positions than planned, so the work has only recently kicked off in earnest. But QA was also an area where we had first proposed to build a larger team sooner, and ultimately only added a single hire.


 * On the other hand, there are a few things we've been able to get done that weren't included in the goals:

 
 * We've developed powerful and successful Android and iOS Wikipedia apps, and have started significantly enhancing the mobile web experience
 * We have set up a continuous integration server for running unit tests and nightly builds of the mobile apps
 * We managed the unplanned integration of a complex new international payment processing system (Global Collect) for fundraising purposes
 * We're developing a dedicated extension to manage the Global Education program
 * We've made available the first-ever experimental mirror of Wikimedia Commons media files
 * We've created support for RSS feeds from featured content
 * We've achieved cost savings through various donations of hardware and services.


 * Plus a bunch more stuff that's not quite production-ready yet but will probably make it before the end of FY.


 * With that said, the list above illustrates that a one-year plan needs to be flexible and allow for rational changes -- this is "what we ought to do, as far as we know", not "what we will do, come hell or high water". Ideally, teams adjust their priorities on a daily basis, continuously delivering changes to the site, and understanding their own velocity in order to arrive at realistic estimates about what's doable, close to the time they're actually setting out to do it.


 * As for whether it's ambitious, it definitely is. In general, I would say that we're now in the middle of a continuum of risk aversion. In the early days, we were accepting a high risk of failure for most projects that we launched, because we had no resources, and therefore typically had part of one person's time per project. For example, Extension:AbuseFilter, Extension:LiquidThreads, Extension:FlaggedRevs and Extension:CentralAuth all had the bulk of the work done by 1-2 people, often student contractors who were also working on lots of other things. The bulkier projects in the goals we're discussing today all have teams of about 4-5 behind them, usually full-time employees. So that's a nice beefing up of capacity.


 * Building larger teams has come at the cost at saying "No" to lots of requests and desires; for example, while we'll aim to improve user-to-user messaging next year, we're not going to undergo any wholesale re-architecture of all talk pages yet, even though it's clearly going to be needed eventually.


 * Leaving aside unavoidable risks when diving into the unknown, this is still taking a significant degree of risk when a key person leaves (or gets sick for long), a key hire is late, there's an important skills gap on the team, a higher priority project is needing more resources, etc. So almost certainly, we'll miss the mark on some of the objectives. That risk could be reduced by having a lot more redundancy, and in turn, fewer projects. So instead of 500K you might pay 1M for a project, without necessarily getting a lot more out of it other than confidence that you have enough people to cover certain risks (having those extra people will in fact slow you down some of the time; see Brooks's law). I don't think we need to be that kind of organization -- we can afford to accept some risks of late delivery while being more nimble and being able to parallelize a bit more.


 * Relatedly, I can make reasonable assumptions about which hires are going to be easy and which ones are going to be hard, based on past experience, but I'm not going to be able to predict the future, nor will I tolerate bad hires to hit a deadline. I could make only worst case assumptions, but I don't see the point of that. So while we've been able to significantly pick up the pace on hiring, that's an area that will likely cause some lateness again. We'll post more positions sooner, though, to also make some opportunity hires when we can.


 * In general, I'm comfortable with our place in the risk continuum now. There are some areas where I'd like to have more solid ground under our feet. One of those areas is testing. We're proposing, here, a pretty risky QA strategy that's grounded entirely on test automation and community-driven testing, with very little room for paid testers. That's highly unorthodox and risky, but I think it's a good risk for us to take. Given the many permutations of Wikimedia from different users' perspectives, it would be very expensive to test thoroughly in any other way. With that said, I don't know whether it'll work, and I'll sleep better when I do. :-) ---Eloquence (talk) 07:58, 3 April 2012 (UTC)