Page MenuHomePhabricator

Google Code-in 2015: Summarize and document what to improve for GCI 2016
Closed, ResolvedPublic

Description

For WM org admins, etc:

  • Find org admins from more than one timezone!
  • The CI whitelist caused confusion (and waste of time as the student had to wait for half a day due to timezone differences just so someone else can say "recheck"). Either need more documentation on how to run tests locally, or ideally add all students to the whitelist at the beginning. https://gerrit.wikimedia.org/r/#/c/261322/ Without adding, only a subset of the tests is run by jenkins and that can cause confusion.
  • The last two weeks, potentially be a bit "stricter" with prospect finalists to get more "quality".
  • Document that "test your patch before you submit it" is a strong requirement. In some cases it was pretty clear that the student had no idea what they were doing and code wouldn't even run, but submitted it for review nevertheless.
    • Document "beginner task" definition better for mentors! IMHO we have still seen mentors creating tasks as beginner which require setting up the complete development environment. Some tasks may actually not be beginner tasks and less attractive for GCi students (example: https://phabricator.wikimedia.org/T120366#1915886 ?)
  • Document better Recurring / cloneable task instances vs. creating separate tasks to allow students to claim more than one single instance? (cf. Nemo's "Make translatable another time" tasks)
  • Better workflow for mentors creating tasks to tell admins they are ready to publish? Or is [[ https://www.mediawiki.org/wiki/Google_Code-in_2015 | "Either add a "[READY]" prefix to the task summary to let org admins know, or contact them explicitly." ]] sufficient?

Tasks and mentors

  • Beginner tasks:
    • Need a beginner task that relates to setting up a development environment / Vagrant. Set up a repository in Gerrit and have a beginner task that requires students to clone that repo, create a file named with their GCI username or something, commit the file to their local Git clone, and submit the patch for review? Might also help start making students test their patches themselves earlier. Maybe a beginner task of "set up vagrant, install this extension, make a screenshot" would help?
      • Vagrant docs might need better documentation for Windows platform?
    • "Get on IRC task" was helpful: "60 task instances later, I think we proved that the IRC task is not so easy at all for the students. I think one third of them needed to resubmit their work after receiving additional instructions, or to have an extension, or abandoned the task.""
    • @Aklapper: Not many students claimed the "Triage some TestMe bug reports", maybe that choice was too limited?
    • Ubuntu had a beginner task to set up a wiki user home page (and get used to wikitext editing?), should we have that too?
  • How to encourage having more tasks with more than one mentor?

For Google (contest rules, GCI site):

  • have something like an "org dashboard" where one can create tasks without assigning a mentor yet. That would open the possibility for a mentor to take over a task, which was already created, but not "claimed" by a mentor so far, or, co-mentor a task.

What else did we learn / realize?

  • Part of GCI is "getting work/tasks done", part is "recruiting new contributors / community members"
  • We miss a "pipeline" how to direct students to further stuff (try GSoC if you are 17?) Point to local hackathons? / "GCI is missing a follow-up program for the best contributors. (Or maybe the MediaWiki/Wikimedia technical community is missing a non-time-limited mentorship system?)" Every year there are GCI participants with a "hire on sight" competence level and it would be great to keep them engaged.
  • Students sometimes still have no way to gauge the complexity / required skill level of a task, and making a task description perfect can be the enemy of good.

Event Timeline

Aklapper raised the priority of this task from to Low.
Aklapper updated the task description. (Show Details)
Aklapper added subscribers: Aklapper, Nemo_bis, Petrb.

We desperately need a beginner task that relates to setting up a development environment. What I was thinking - and it might be too complex for a beginner task - is to set up a repository in Gerrit called "GoogleCodeIn" or something. We would have a beginner task that requires students to clone that repo, create a file named with their GCI username or something [1], commit the file to their local Git clone, and submit the patch for review. It would basically prepare them for working with Gerrit over the course of GCI.

Why does the IRC task require them to use a non-proprietary client? I see no good reason for this, other than "let's force FOSS down their throats while we've got them". In fact, since we don't normally ask students to confirm which client they use, it ends up penalising students who just happen to mention offhand that they're using mIRC or whatever. Also, a lot of students failed to hang around for an hour, for whatever reason.

We need org admins from more than one timezone! If I was working with a student at, say, 00:00 UTC, and we wanted to get a task published, we had to wait until Europe woke up. You should try to find at least one admin in SF next time.

Not super-relevant, but students don't get the idea of "hooks" in MediaWiki core, and our docs are kind of awful (mw.org Manual:Hooks doesn't know what audience it's talking to, and needs cleanup and updating). Need to fix that before next GCI, because I'm sick of explaining it.

That's just the beginning from me :) I will send a private email to the org admins after GCI 2015 is over.

[1] I first thought of getting them to add their name to a text file (like "signing the GCI guestbook"), but imagine the hell of merge conflicts that would create.

For the gerrit stuff etc. we have some ideas at https://www.mediawiki.org/wiki/Talk:Google_Code-in_2015#Ideas_for_beginner_tasks , would be nice to keep discussing there.

Most of the beginner tasks are actually about learning git/gerrit. When I tell the student to change one line in a specific way, I'm obviously not testing their coding, just forcing them to use the code review system.

Why does the IRC task require them to use a non-proprietary client?

Because the contest is about open source.

In fact, since we don't normally ask students to confirm which client they use,

I use CTCP VERSION.

Why does the IRC task require them to use a non-proprietary client?

Because the contest is about open source.

So is MediaWiki development, But we don't stop the devs from using closed sourced products. I guess from your argument we should ban @Reedy from using phpStorm and the like?

So is MediaWiki development, But we don't stop the devs from using closed sourced products. I guess from your argument we should ban @Reedy from using phpStorm and the like?

False analogy. There is no rule that forbids using proprietary tools in GCI. Simply, the focus of each task needs to be free software/content, usually MediaWiki. When the ONLY component of a task is IRC technology, then the task should be about the free one, so that at the end of the task we know the student learnt something about free software... once again, that's the goal.

There are certainly other ways to reach the GCI goals, other tasks can be invented with a functional set of instructions and educational goals; when you have proposals, please write them down so that we can try your task too.

Aklapper set Security to None.
Aklapper moved this task from Ready to Go to Doing on the DevRel-February-2016 board.

I have summarized all mentor email feedback and comments in this task by updating the task description here.

I have incorporate all relevant items on our two wiki pages:

Closing as resolved. Thanks everybody who gave feedback!