The chief reason I was in San Francisco earlier in the month was to attend the Google Summer of Code Mentor Summit. Not only has Google paid for ten stellar programmers to work on the SilverStripe project this year, they paid for my for flights and accomodation from New Zealand! We couldn't be more thankful!

(Photo from Google Code Blog

The one-day event was held to share the successes and challenges of this years' Summer of Code and construct useful feedback to both Google and to participants on how to make the next year even better.

It went incredibly well. Of any unconference I've been to, the mix of people was amazing. Not only was everyone a leader of some of the world's most influential software projects, the people attending were very relevant to me, and there was a really genuine level-playing field where everyone was able to learn from each other.

It was great, for example, to bump into PHP's Marcus Börger and ask when namespaces were coming: in the next version, PHP 5.3! (PHP6 is still well under construction and there's no reason to hold off on namespaces)

The morning began with breakfast, witnessing Google's realtime projection of search queries, and organising the day.

Weeks beforehand, invitees were given access to a wiki that allowed for the proposal by anyone to present on a topic, and for the rest of the attendees to endorse the idea. (Tip for next time: email 4 days before the event to say that in 2 days all proposals must be online as voting will occur online. This would prevent the last-second rushes).

On the morning, the session ideas were printed out, with GSOC organiser Leslie Hawthorn assigning rooms and times with input from the group--beginning with the most popular sessions and attempting to reduce the overlaps as much as possible by merging related sessions into one.

Encouraging people to be long-term open source contributors 

Straight after the day's sessions times were established, I presented a talk on encouraging Google Summer of Code students to become continuing open-source community members. Much of this is explained in a 15 minute interview I did last week:

  • Ensure you have the right students to begin with. SilverStripe appointed an overall single person accountable for GSOC (me), who got the 40 applications down to the 10 approved slots.
  • I gave all applicants (the same) code test which was used for comparisons and matching students with appropriate projects. This let me trust the claims students made to me in their applications.
  • I talked with all good contenders over skype to ensure communication was going to be fine.
  • When choosing the students, I tried not only to pick the best, but also help tailor their project to their interests/skill level, based on the code test.
  • I publically profiled the students from the beginning.
  • I encouraged students to rise to our level of professionalism/accountability (work on hard, rewarding tasks)
  • I appointed mentors late, once students and projects were decided, to ensure best fit. 
  • I motivated students by promising exposure, then publicly congratulating work widely. By giving students responsibilty of disinct areas, I can thank them personally. (See our new image editing system brought to us by Matuesz, for instance).
  • I congratulated working, packaged code (not just when its on their environment)
  • Release early, learn what the issues are before the deadline!
  • Kept assigning trac tickets to encourage participation, track in Ohloh

Many of the points made caught the attention of the Drupal members present, who especially were keen to use screencasts next year to efficiently illustrate the work done.

At the conclusion of my talk, Philippe Ombredanne of Eclipse and other few others joined me, and we had a very collaborative session to solicit everyone else's ideas on how best to turn people into valuable contributors of an open source project. Ideas included;

Community participation

  • Get them involved in choices
  • Frequent public communication
  • Introduce students early on to the community
  • Get them on the community resources (IRC, mailing lists...)
  • Encourage any kind of participation not just code.
  • Entrust them with responsibilities/give them ownership over things.

Tools

  • Give them a blog on the project blog.
  • Add public wiki repository
  • Common mailing list
  • Regular reports through IRC, etc.
  • Treat them like any other developer (not less)
  • Public discussions
  • Have well-defined review process.
  • Give them rights equal to others on the project.
  • Mentoring program

Committing code

  • Give them commit access as much as possible (especially when working on their own extensions).
  • At the same time, have an experimental branch
  • Have students participate heavily in communication process
  • Have other members do bug reports, etc.
  • Track contributions
  • Reward their contributions early; commit early, commit often.
  • Have well-defined policy on how to commit code; they won't be bothered working hard  to find out.
  • Use alternative source repository (SourceForge?, etc.) for licensing problems. 
  • For situations where students have to submit patches, make sure someone is fast about reviewing it.

Encouragement

  • Track and promote statistics, e.g. on blogs and ohloh
  • It's all about "Fame" -- congratulate them publically for every success.
  • Demonstrate to contributors that their code is being used, is valuable.
  • Offer prize to "best" project.

After Google Summer of Code

  • Offer thanks and personally invite them to stick around
  • Give them more things to work on after (interesting stuff, not just maintenance work).
  • Make contribution a habit.. doesn't have to be code... could be documentation, etc. 
  • Keep them feeling involved.
  • Get them involved in helping others, as those they help will provide motivation to keep on helping (e.g. answering IRC or forum questions)

Rewards

  • Hire students
  • Provide additional incentives.

Other sessions of the day

When we went to merge in the Google Summer of Code work into our product for the upcoming SilverStripe 2.2 release, we finally hit the limitations of Subversion and understood how a next-generation code versioning system like Git would have helped. Currently, many thousands of lines of code in SilverStripe are incorrectly atttributed as being written by Ingo Schommer because he was the one who merged in the bulk of the Google Summer of Code projects. This makes it hard to for someone to query about that line of code, or for people to gain the recogniition the deserve. Git solves this by letting a line of code to contain both the concept of who author and who committed into the codebase. That's just the beginning.

Many of the hundred other organisations face similar difficulties, but my conclusion is that it will be some time before Git becomes polished enough to be easy and not just flexible. So its great to see Git as one of the members of GSOC. Just as important, however, is for someone to step up to Git's marking challenge.  Even in a room full of smart geeks, most people using Subversion and CVS and no one could do a good job of explaining in simple terms why Git is better. (Perhaps open-source author Karl Fogel can run to the rescue?)

Other sessions included;

  • Getting more programmers from developing nations into the programme, though better marketing, and demonstrating how being involved can provide great life opportunities to people in struggling economies.
  • Getting universities to have open source projects
  • Triumping cultural differences and ensuring good communitication between people in different nations
  • Sharing knowledge on translation systems
  • Best practices on running good hack-fests
  • Dealing with webspam
  • How to improve the open-source gaming scene

Making sense of it all

After several dozen sessions everyone reassembled into one group to debrief   Google's Chris Di Bona and Leslie Hawthorn on the epiphanies of the day. Nearly everyone had something useful to chip in with, so we're guaranteed that next year's GSOC will be bigger, brighter and cooler. 

I give huge praise to Chris, Leslie and others of the open source programs office: If only other aspects of life, government, and business would be so open to group input and idea sharing, we'd have much more fruitful and pleasant lives! (If either of you ever run for president, you'll have my support!)

Dinner and party-time

After a long but very enchanting day at the Google campus, everyone trekked over to Wild Palms for pizza, swimming, and of course, a lot of chatter over a few beers. Most people were entirely from out of town, which made for some very scintilating conversations...

 

Post your comment

Comments for this post are now closed.

Comments

RSS

Awesome work guys, I can't wait to start using the new features!!!!

It seems all this google code stuff seriously paid off!

GO OPEN SOURCE! :-D

Posted on 20 Oct 2007 by Simon

Thanks for this thorough report!

Posted on 19 Oct 2007 by Ondrej