Mentor Guidelines Google Summer Of Code 2007

Post Reply
User avatar
willebil
Joomla! Guru
Joomla! Guru
Posts: 762
Joined: Thu Aug 18, 2005 12:06 pm
Location: Netherlands

Mentor Guidelines Google Summer Of Code 2007

Post by willebil » Fri Feb 16, 2007 2:06 pm

1. Introduction
Google Summer of Code is a program that offers student developers stipends to write code for various open source projects. Google works with a several open source, free software and technology-related groups to identify and fund several projects over a three month-period. Historically, the program has brought together over 1,000 students with over 100 open source projects to create hundreds of thousands of lines of code. The program, which kicked off in 2005 , is now in its third year, following on from a very successful 2006.

This document describes the mentor guidelines for the Joomla! Summer Of Code program 2007. It contains information about the program schedule, program goals, program organisation, the mentor-ship selection process, conflict resolution/problem solving resolutions, what to expect (and what do we expect) and of course communications and tooling.

2. General program schedule
  • Week of February 12th: Announcement that Google will fund GSoC 2007
  • March 5: Mentoring organizations can begin submitting applications to Google
  • March 12: Mentoring organization application deadline
  • March 13: Google program administrators review organization applications
  • March 14: List of accepted mentoring organizations published on code.google.com;student application period opens
  • March 23: Student application deadline
  • Interim Period: Mentoring organizations review and rank student proposals; where necessary, mentoring organizations may request further proposal detail from the student applicant
  • April 2: List of accepted student applications published on code.google.com
  • Interim Period: Students learn more about/integrate with their project communities
  • May 28: Students begin coding for their Google Summer of Code projects; Google begins issuing initial student payments
  • Interim Period: Mentors give students a helping hand and guidance on their projects
  • July 9: Students upload code to the Google Summer of Code project repository; mentors begin mid-term evaluations
  • July 16: Mid-term evaluation deadline; Google begins issuing mid-term student payments
  • August 20: Students upload code to the Google Summer of Code project repository; mentors begin final evaluations; students begin final program evaluations
  • August 31: Final evaluation deadline; Google begins issuing student and mentoring organization payments
Remember: This schedule is subject to change, latest and correct schedule can be found on the Google SOC 2007 Wiki

3. Joomla! Summer of Code

Program goals
The general goals of Google are recognized and extended with our own goals. In short, we want to improve the innovation within the project by offering students the opportunity to propose (research) topics that are Joomla! related. The Joomla! project offers students an inspiring environment to do research, create proof-of-concepts or create working functionality. The students get well guided by field experts. We not specifically target at implementing work in the Joomla! framework, if it can be done in the Summer Of Code period this is perfectly ok, if not we still have well founded research and possible new talents for the working groups within the Joomla! project. 

There is a non-limited list of program goals defined below. Please bare in mind that this is an initial list of subjects we like to aim at, and in basic the final program content is open for discussion. It is important to understand that we need some guideline for project proposal evaluation, else we end up with all nice initiatives, but no choice between the individual project. In general we aim at the following type of projects:

1. Adding new logic to the 1.5 extensions.
  • Creation of a 'digg' like extension for Joomla! 1.5 to be used on our news site. Features see digg.
  • Creation of a 'my joomla' like extension for Joomla! 1.5 to be used on our news sites. The goal of this extension would be to offer people a 'My Joomla! account they can use to communicate, have an overview of their activity, etc ... Ideally the system would use OpenID to give them a unique login that can be used across all sites. Basically it would be a social networking extensions for 1.5 tailored to the Joomla! community. Of course we would offer it under a GPL license so other communities can benefit from it too.
2. Adding new logic to the 1.6 framework.
  • ACL.
  • Re-factoring of back-end to fully use MVC.
  • Further implementation of mootools.
  • Simple work-flow (ties in with ACL).
  • Simple versioning.
  • WebDAV support (client and server).
3. Research oriented projects, like incorporating new technology into the Joomla! framework.
  • Research on mash-ups/programmable web/micro-formats.
  • GForge Joomla integration, GForge J!Code integration.
  • New technology implementations.
  • Import / Export of content assets and other related information
4. Collaborative projects:
  • J!Code, collaboration between Eclipse and Joomla!
Program organization
We strive for a shallow hierarchy for the Joomla! project and the Summer Of Code program is no exception to that. There will be a formal program structure in place, but in general we like everyone to just do their job. For the mentors this means a big responsibility towards the Joomla! project and especially the students.

The total organization of the program will be done by the program leaders, one as main program leader (Wilco Jansen) and a second program leader (Louis Landry) to offer continuity when one of the two leaders is absent or on leave. The program team is completed with the team of mentors. For each accepted project there will be at least one mentor, depending on the subject there is no limit to the amount of mentors but we would like to limit to a maximum of two, else it is not clear to the student who is guiding him/her in the project realisation. 

Mentor selection process
We can put together a real big questionnaire for the mentor selection...We like to make the selection process as easy as possible, we will describe the general "criteria" here:
  • Mentor needs to be familiar with the Joomla! project, and have some level of knowledge about our 1.5 framework.
  • Mentor needs to be someone with experience in guiding people. You can have experience in as a manager, project manager, a team coordinator, teacher or whatever. If this is the first time you are going to guide a student, help is available (see below).
  • Mentor needs to have knowledge about the topic he is going to mentor. If a student for instance wants to write a Python version of Joomla!, it is necessary the mentor has knowledge about Python and the Joomla! architectural design (just a fake example).
  • The mentor is responsible for guiding the student. This takes time, and with cultural and timezone differences this can be a real challenge! Past year the average time it took for a mentor was between 70-90 hours in 3 months, and this was considered to be too low to be really successful. If you are not able to put this kind of time in being a mentor, don't even consider! There is nothing worse then a mentor dropping out in the middle of the program, this simply increased the time stress on the program management and mentors left behind.
Conflict resolution and problem solving resolutions

It would be naive to assume that a group of people can work together in perfect harmony. There are going to be times when someone feels they have been wronged. In these times the following procedure should apply:
  • Talk privately to the person concerned.
  • If you still believe grievances exists, then bring in one or two other people to help mediate.
  • If this fails then take the issue to the program manager.
  • If this fails take the issue with the program manager to the Joomla! project leader.
Team members are encouraged to self-mediate all disputes. In all situations, treat 'wounds' appropriately. A prick on the finger just needs a tissue for a couple of seconds. Some grazes and cut just need a Band-Aid to help heal well but will probably heal anyway if left untouched. More serious lacerations need immediate intervention for survival. If a wound is left to attract an infection then the obvious threat of gangrene is present. 

What to expect, and what do we expect from you?
What we expect is simple. Dedication, devotion, an open mind and for all patience with the students. The actually are here to learn, some even have never worked in a team before, and don't know what a tracker or wiki is, explain and guide them. Also a communicative mind is very welcome, we prefer an information overload to the program manager and the fellow mentors then us hunting down all information needed to keep the program and community informed.

If you join as a mentor, what do you get in return? You can work in an open-source environment, meet great and inspiring people in a great open source project. It is all about sharing knowledge and work together to common goals. We will be there to support you also, like you do with is when you join.

Communications
This is a very important aspect of the project. Communicating is all about sharing what you are doing, the challenges you meet and the problems you have solved. We expect the students to do a weekly report (see student guidelines), and the task you perform is to communicate about the progression in relation to the planning the student makes. As a mentor you have the lead in solving the time-zone and language and cultural barriers:
  • Time zones: Having team members in different time zones is one of the most frustrating and challenging aspects of being involved in a distributed team network.  The worse combination is where certain members are separated by close to 12 hours.  It is something you need to get used to and deal with. It typically requires you to plan to load the mailing list for questions that you know will be picked up in a few hours time by your team mates in another country. On the other hand it can be your ally, allowing a project to potentially have support around the clock. Please take care of yourself; it is very easy to be around hour after hour just to get in contact to those that are on the other side of the globe.
  • Language and Cultural Barriers: Projects will come up against differences in language and culture in either the user community or in the make up of your teams.  There is no escaping it. When you are reading posts on a forum, submissions to a mailing list or even reading personal mail from another person who is not writing in their native tongue, you need to be sensitive to the fact that their translated dialog may not mean what they are trying to say. Sometimes you can unfairly brand a person as arrogant and rude because they have chosen forceful forms of words and phrases. Keep in mind it is generally not as bad as it sounds.
It also is import that we use the tools provided in this program, as a mentor you also have a leading role in "enforcing" the usage of tools. Tools are not targeted at communication, but using a compatible set of tools is more then advisable. In this section is a short list of some of the tools that are used within the Summer of Code.
Guidance of your student
As you see on the time schedule Google allows the student to familiarize with the project and tasks. You should prepare a kind of structure and document which help both of you with topics like:
  • Planing of actions/tasks; make a planning including milestones up-front.
  • Communications such as status reports, achieved steps. Prepare the student to make a weekly report telling what has achieved past week, and what is planned next week.
  • Time efforts and commitments. Students tend to under estimate the time and effort for certain tasks and you need to be prepared to cover those issues with some organizational help. Some of them might have different priorities e.g. exams, which might get in conflict of their plans. Being prepared from your side it will help to make this project a success for you and your student. It will be important that you become a good living example of your own structure in order to help the student through complicated decisions (e.g. dropping parts of the project as they will not fit into the time frame anymore).
Last edited by willebil on Fri Feb 16, 2007 2:08 pm, edited 1 time in total.

richammond
Joomla! Apprentice
Joomla! Apprentice
Posts: 38
Joined: Fri Jul 21, 2006 6:19 pm
Location: UK
Contact:

Re: Mentor Guidelines Google Summer Of Code 2007

Post by richammond » Sat Feb 17, 2007 9:28 am

Hi,

I'm very interested in participating in it. Could you give information on how to register? Do you have a mailing list or something like that?

Regards

richard(at) mylondoners.co.uk
Last edited by richammond on Sat Feb 17, 2007 9:32 am, edited 1 time in total.
Linux is like an indian tent : No Windows, No Gates and Apache inside!!
Joomla Dedicated Expert - Upgrade/Update/Hosting Service
www.richammond.com

User avatar
willebil
Joomla! Guru
Joomla! Guru
Posts: 762
Joined: Thu Aug 18, 2005 12:06 pm
Location: Netherlands

Re: Mentor Guidelines Google Summer Of Code 2007

Post by willebil » Sat Feb 17, 2007 9:52 am

Hi Richard,

Currently it is indeed not very clear how you can apply, did tell something in the blog (http://dev.joomla.org/component/option, ... ,33/p,275/).

I have opened up a mailgroup, details are below:

Startpage:    http://groups.google.com/group/joomla-s ... sion-group
E-mailadress:   [email protected]

If you are interested, leave me a personal message in the forum or contact me by mail at [email protected].

Hope this answers you question.

Wilco

ssdt
Joomla! Intern
Joomla! Intern
Posts: 53
Joined: Sun Oct 07, 2007 1:53 pm

Re: Mentor Guidelines Google Summer Of Code 2007

Post by ssdt » Mon Oct 08, 2007 6:07 pm

willebil wrote: 1. Introduction
Google Summer of Code is a program that offers student developers stipends to write code for various open source projects. Google works with a several open source, free software and technology-related groups to identify and fund several projects over a three month-period. Historically, the program has brought together over 1,000 students with over 100 open source projects to create hundreds of thousands of lines of code. The program, which kicked off in 2005 , is now in its third year, following on from a very successful 2006.

This document describes the mentor guidelines for the Joomla! Summer Of Code program 2007. It contains information about the program schedule, program goals, program organisation, the mentor-ship selection process, conflict resolution/problem solving resolutions, what to expect (and what do we expect) and of course communications and tooling.

2. General program schedule
  • Week of February 12th: Announcement that Google will fund GSoC 2007
  • March 5: Mentoring organizations can begin submitting applications to Google
  • March 12: Mentoring organization application deadline
  • March 13: Google program administrators review organization applications
  • March 14: List of accepted mentoring organizations published on code.google.com;student application period opens
  • March 23: Student application deadline
  • Interim Period: Mentoring organizations review and rank student proposals; where necessary, mentoring organizations may request further proposal detail from the student applicant
  • April 2: List of accepted student applications published on code.google.com
  • Interim Period: Students learn more about/integrate with their project communities
  • May 28: Students begin coding for their Google Summer of Code projects; Google begins issuing initial student payments
  • Interim Period: Mentors give students a helping hand and guidance on their projects
  • July 9: Students upload code to the Google Summer of Code project repository; mentors begin mid-term evaluations
  • July 16: Mid-term evaluation deadline; Google begins issuing mid-term student payments
  • August 20: Students upload code to the Google Summer of Code project repository; mentors begin final evaluations; students begin final program evaluations
  • August 31: Final evaluation deadline; Google begins issuing student and mentoring organization payments
Remember: This schedule is subject to change, latest and correct schedule can be found on the Google SOC 2007 Wiki

3. Joomla! Summer of Code

Program goals
The general goals of Google are recognized and extended with our own goals. In short, we want to improve the innovation within the project by offering students the opportunity to propose (research) topics that are Joomla! related. The Joomla! project offers students an inspiring environment to do research, create proof-of-concepts or create working functionality. The students get well guided by field experts. We not specifically target at implementing work in the Joomla! framework, if it can be done in the Summer Of Code period this is perfectly ok, if not we still have well founded research and possible new talents for the working groups within the Joomla! project. 

There is a non-limited list of program goals defined below. Please bare in mind that this is an initial list of subjects we like to aim at, and in basic the final program content is open for discussion. It is important to understand that we need some guideline for project proposal evaluation, else we end up with all nice initiatives, but no choice between the individual project. In general we aim at the following type of projects:

1. Adding new logic to the 1.5 extensions.
  • Creation of a 'digg' like extension for Joomla! 1.5 to be used on our news site. Features see digg.
  • Creation of a 'my joomla' like extension for Joomla! 1.5 to be used on our news sites. The goal of this extension would be to offer people a 'My Joomla! account they can use to communicate, have an overview of their activity, etc ... Ideally the system would use OpenID to give them a unique login that can be used across all sites. Basically it would be a social networking extensions for 1.5 tailored to the Joomla! community. Of course we would offer it under a GPL license so other communities can benefit from it too.
2. Adding new logic to the 1.6 framework.
  • ACL.
  • Re-factoring of back-end to fully use MVC.
  • Further implementation of mootools.
  • Simple work-flow (ties in with ACL).
  • Simple versioning.
  • WebDAV support (client and server).
3. Research oriented projects, like incorporating new technology into the Joomla! framework.
  • Research on mash-ups/programmable web/micro-formats.
  • GForge Joomla integration, GForge J!Code integration.
  • New technology implementations.
  • Import / Export of content assets and other related information
4. Collaborative projects:
  • J!Code, collaboration between Eclipse and Joomla!
Program organization
We strive for a shallow hierarchy for the Joomla! project and the Summer Of Code program is no exception to that. There will be a formal program structure in place, but in general we like everyone to just do their job. For the mentors this means a big responsibility towards the Joomla! project and especially the students.

The total organization of the program will be done by the program leaders, one as main program leader (Wilco Jansen) and a second program leader (Louis Landry) to offer continuity when one of the two leaders is absent or on leave. The program team is completed with the team of mentors. For each accepted project there will be at least one mentor, depending on the subject there is no limit to the amount of mentors but we would like to limit to a maximum of two, else it is not clear to the student who is guiding him/her in the project realisation. 

Mentor selection process
We can put together a real big questionnaire for the mentor selection...We like to make the selection process as easy as possible, we will describe the general "criteria" here:
  • Mentor needs to be familiar with the Joomla! project, and have some level of knowledge about our 1.5 framework.
  • Mentor needs to be someone with experience in guiding people. You can have experience in as a manager, project manager, a team coordinator, teacher or whatever. If this is the first time you are going to guide a student, help is available (see below).
  • Mentor needs to have knowledge about the topic he is going to mentor. If a student for instance wants to write a Python version of Joomla!, it is necessary the mentor has knowledge about Python and the Joomla! architectural design (just a fake example).
  • The mentor is responsible for guiding the student. This takes time, and with cultural and timezone differences this can be a real challenge! Past year the average time it took for a mentor was between 70-90 hours in 3 months, and this was considered to be too low to be really successful. If you are not able to put this kind of time in being a mentor, don't even consider! There is nothing worse then a mentor dropping out in the middle of the program, this simply increased the time stress on the program management and mentors left behind.
Conflict resolution and problem solving resolutions

It would be naive to assume that a group of people can work together in perfect harmony. There are going to be times when someone feels they have been wronged. In these times the following procedure should apply:
  • Talk privately to the person concerned.
  • If you still believe grievances exists, then bring in one or two other people to help mediate.
  • If this fails then take the issue to the program manager.
  • If this fails take the issue with the program manager to the Joomla! project leader.
Team members are encouraged to self-mediate all disputes. In all situations, treat 'wounds' appropriately. A prick on the finger just needs a tissue for a couple of seconds. Some grazes and cut just need a Band-Aid to help heal well but will probably heal anyway if left untouched. More serious lacerations need immediate intervention for survival. If a wound is left to attract an infection then the obvious threat of gangrene is present. 

What to expect, and what do we expect from you?
What we expect is simple. Dedication, devotion, an open mind and for all patience with the students. The actually are here to learn, some even have never worked in a team before, and don't know what a tracker or wiki is, explain and guide them. Also a communicative mind is very welcome, we prefer an information overload to the program manager and the fellow mentors then us hunting down all information needed to keep the program and community informed.

If you join as a mentor, what do you get in return? You can work in an open-source environment, meet great and inspiring people in a great open source project. It is all about sharing knowledge and work together to common goals. We will be there to support you also, like you do with is when you join.

Communications
This is a very important aspect of the project. Communicating is all about sharing what you are doing, the challenges you meet and the problems you have solved. We expect the students to do a weekly report (see student guidelines), and the task you perform is to communicate about the progression in relation to the planning the student makes. As a mentor you have the lead in solving the time-zone and language and cultural barriers:
  • Time zones: Having team members in different time zones is one of the most frustrating and challenging aspects of being involved in a distributed team network.  The worse combination is where certain members are separated by close to 12 hours.  It is something you need to get used to and deal with. It typically requires you to plan to load the mailing list for questions that you know will be picked up in a few hours time by your team mates in another country. On the other hand it can be your ally, allowing a project to potentially have support around the clock. Please take care of yourself; it is very easy to be around hour after hour just to get in contact to those that are on the other side of the globe.
  • Language and Cultural Barriers: Projects will come up against differences in language and culture in either the user community or in the make up of your teams.  There is no escaping it. When you are reading posts on a forum, submissions to a mailing list or even reading personal mail from another person who is not writing in their native tongue, you need to be sensitive to the fact that their translated dialog may not mean what they are trying to say. Sometimes you can unfairly brand a person as arrogant and rude because they have chosen forceful forms of words and phrases. Keep in mind it is generally not as bad as it sounds.
It also is import that we use the tools provided in this program, as a mentor you also have a leading role in "enforcing" the usage of tools. Tools are not targeted at communication, but using a compatible set of tools is more then advisable. In this section is a short list of some of the tools that are used within the Summer of Code.
Guidance of your student
As you see on the time schedule Google allows the student to familiarize with the project and tasks. You should prepare a kind of structure and document which help both of you with topics like:
  • Planing of actions/tasks; make a planning including milestones up-front.
  • Communications such as status reports, achieved steps. Prepare the student to make a weekly report telling what has achieved past week, and what is planned next week.
  • Time efforts and commitments. Students tend to under estimate the time and effort for certain tasks and you need to be prepared to cover those issues with some organizational help. Some of them might have different priorities e.g. exams, which might get in conflict of their plans. Being prepared from your side it will help to make this project a success for you and your student. It will be important that you become a good living example of your own structure in order to help the student through complicated decisions (e.g. dropping parts of the project as they will not fit into the time frame anymore).

Thanks for the lesson


Post Reply

Return to “Past Google Summer of Code Editions”