Google wants to pay a developer $5000 to turn your project ideas into code as part of Google Summer of Code 2014

Published
2014-01-27 09:26
Written by

Did that get your attention?

Unfortunately it's not as simple as just coming up with ideas and waiting for a check from Google. As a community, CiviCRM has to apply to even be part of the program. We are still looking for both more project ideas and more mentors to include in CiviCRM's application to be a mentoring organization in Google Summer of Code 2014.
 

I've been told this blog post was too long. So the tl;dr summary is that organizations with project ideas and developers interested in mentoring a Google Summer of Code student should add their ideas and information to Google Summer of Code 2014 Wiki.



At this point in the process we are trying to make CiviCRM appealing to both potential students and Google. Several months ago we started updating the wiki of project idea and potential mentors that Xavier Dutoit started for CiviCRM's application to be a Google Summer of Code (GSoC) mentoring organization in 2013. That year, CiviCRM was not selected to be part of the program. I'm hoping to change that this year by bringing some insights into how the program works from my experience as a mentor with Drupal projects. The application deadline is quickly approaching for 2014. The process CiviCRM must follow to have Google pay students ~$5000 to work on a CiviCRM related project for a summer has been discussed thoroughly in this forum thread, but here is a rough summary of the process:

 

  1. Members of the CiviCRM community interested in participating as mentors and/or organizations with a project idea, add the information to the Google Summer of Code 2014 Wiki
  2. Two Organization Administrators (Xavier and I) submit the Organization Application
  3. If approved, on Feb 24 students will start asking about existing project ideas and suggesting additional project ideas looking for potential mentors
  4. Students begin officially applying to Google between March 10-21 by by submitting a full project proposal based an existing project idea or their own idea
  5. A group of approved CiviCRM mentors review and rank student proposals
  6. Google approves a specific number of project slots for each mentoring organization using a process that isn't public so it isn't gamed

This process is like a dating service where both the student and the mentoring organizations are reviewing the potential date/project and Google is the acting like a match maker. Students can propose several dates/projects to the same mentoring organization or multiple organizations, but ultimately only one date/project is approved by Google. We can only take the date analogy so far without getting creepy since there is money changing hands.

  • Students are paid $5,000USD for the summer
  • Mentoring Organizations are paid $500 per approved slot
  • Individual mentors get $0, but other, non financial benefits

This is a great opportunity to subsidize the development of new features or overhaul critical, low level functionality in CiviCRM as well as grow the number of developers contributing to CiviCRM. While not every student who participates in GSoC continues contributing, the Drupal community has had great success finding key contributors through this program. Angie Byron (@webchick) got her start in Drupal as a student in the 2005 GSoC. For those of you who don't know, Angie is the Director of Community Development at Acquia and a Drupal core co-maintainer. I mentored Janez Urevc (@slashrsm) in 2012 on the Media Derivatives project. Janez now works for Examiner.com and is leading the drive for better Media integration in Drupal 8.

My personal experience mentoring students as part of GSoC has been extremely rewarding and required very little actual development work on my end. Most of the work for me happened during the initial planning phase of the projects. The students selected to participate in GSoC are extremely bright and motivated. My role was often to scale the scope of the project so what was developed was a solid foundation that allowed additional features to be easily, worked in several configurations, and was well documented vs. a dozens of poorly written features that would only work on the student's test site.

I've been really lucky to mentor some truly great developers. Your millage may vary. Every year there are students that disappear for several weeks and return with incredible tales of why they should be given an extension. This is frustrating, but even these provide a bit of amusement when they are shared on the mentor list. As a mentor, you are required to provide a "midterm" grade. If the student has not made what you consider enough progress to complete the project, you can fail them at this point. If failed, the student doesn't get paid anything… which is a powerful motivator to make substantial progress by the mid term. What we as a community will do to prevent student disappearances and engage the students is part of the Mentor Organization Application.

When volunteering to mentor, be aware that GSoC is open to students all over the world so confirm that you and the student speak a common language and can coordinate meetings that work for both timezones. When I mentored Janez, he was living in Slovania. Since the time difference made real time communication difficult, he was required to commit all code to Drupal.org's git repo, blog weekly about his progress, and meet every other week with me via Skype to discuss any issues. Janez original proposal was to create a universal File Derivatives API for Drupal that code not only convert an .flv -> H.264, but a .xls -> .ods. As a mentor, I'm expected to know about dependencies that could cause a project to fail and scope the project for the best chance of success. I convinced Janez that considering the current state of Drupal 7's Media module and lack of quality documentation for that code, just creating an engine to create media derivates was going to be a summer's worth of work. In addition to scoping the project, I introduced Janez to other developers working on specific media modules allowing him to skip the "I'm a new developer working on X" phase and get right to the technical details he was having issues with. The most time consuming part of being a mentor for me was reviewing Janez's code, testing the configuration myself, and convincing other developers to test and provide feedback. I'm hoping that by pairing a development mentor with an organizational mentor, we help keep that part of mentoring to a reasonable number of hours.

What we really need right now are more potential mentors, more project ideas, and more outreach so everyone knows about this opportunity.

  • If someone tells you at a CiviDay Event that it would be great if CiviCRM did X, point them to the wiki.
  • If you know of a student who'd be interested in participating in GSoC, encourage them to consider applying for a CiviCRM project
  • If you know someone at an organization who's been a mentoring organizations for GSoC in the past, please ask them to vouch for CiviCRM on this year's application

I'm happy to answer any questions anyone has about GSoC, help refine project ideas, and help match potential mentors w/ potential projects.