Friday, August 10, 2012

A mentor's take on GSoC


There are only few days till Google Summer of Code's 'Pencils Down' moment. This was my first year as mentor (or as anything for that reason) and now that the whole thing is fresh in my mind, it is a good time for me to write down my conclusions.
From my previous experience with junior developers, I knew that they need time "to boot up", to become productive. And not any kind of time, but quality time: you need to be there to make sure they ask the questions when needed and also that they understand the answer. Now the "be there" part, the physical collocation, is missing in this context. With GSoC there's a high chance (like in my case) to have your student on a totally different time zone (5.5 hour as it happened). 
On top of that, the module we wanted implemented was, even though isolated from the rest of the system, rather complex. These said, I was rather sceptic on the output of this endeavour. 

And how did it end? The student outperformed. And the mentor enjoyed it, a lot actually: it's a good feeling to see someone learning at a fast pace. And the enthusiasm is contagious.

   
Below's my take on what we did good, what we could have done better and what we saw around.

The good  

The best thing we did by far was to take our time and interview each candidate properly, rather than only rely on their melange submission for evaluation. Not only that the ranking of the students changed after the interviews, but we got an clear winner. 
The other thing we did was to clearly define the tasks to be worked on for few weeks in advance. That helped keeping focus on relevant tasks and was an effective way to define (and adjust) our expectations.

Could have done better
The setup. While writing code makes juniors and seasoned developer alike enthusiastic, setting up a build system or automating the test suite runs can be a major put-off for the the former. Setting up the project and then showing the student why the scripts(in our case) are needed and how were they written can not only gain time, but also keep the energy level high without compromising on the things the student learns. 

The bad

I think this was the most debated problem on the mentor's mailing list. Close to the evaluation period (mid term or final), the were mentors in doubt on whether the student should pass or not. I haven't encountered that myself, but I can understand the "was it maybe me" feeling you can get in such a situation. 
My only solution to this problem (besides experience) is to think about it in advance, and act quickly. The moment you feel "you are wasting time" (vs. teaching) you should make that very clear to the student. And if things don't get better act/stop the collaboration. 

I think that pretty much covers it all. But before that, a BIG thanks to both Google and my student for this prime experience!


Cheers,

Mircea