Difference between revisions of "Summer of Code/Application/2009"

From ScummVM :: Wiki
Jump to navigation Jump to search
m
 
(42 intermediate revisions by 4 users not shown)
Line 10: Line 10:
|Applications for prior SoCs: || [[Summer_of_Code/Application/2008]], [[Summer_of_Code/Application/2007]]
|Applications for prior SoCs: || [[Summer_of_Code/Application/2008]], [[Summer_of_Code/Application/2007]]
|-
|-
|Organization administrator: || Eugene Sandulenko (sev.mail AT gmail.com)
|Organization administrator: || Eugene Sandulenko (sev.mail AT gmail.com) link_id: sev
|-
|-
|Backup administrator: || <span style="color:red">DrMcCoy?</span>
|Backup administrator: || DrMcCoy (drmccoy AR users.sourceforge.net) link_id: drmccoy
|-
|-
|Project License: || GPL
|Project License: || GPL
Line 23: Line 23:
|-
|-
|Mentors: ||
|Mentors: ||
* [[User:Fingolfin|Max Horn]], Google Account: max AT quendi.de
* [[User:Fingolfin|Max Horn]], Google Account: max AT quendi.de link_id: fingolfin
* [[User:Jubanka|Kostas Nakos]], Google Account: knakos AT gmail.com
* [[User:Jubanka|Kostas Nakos]], Google Account: knakos AT gmail.com link_id: jubanka
* [[User:Sev|Eugene Sandulenko]], Google Account: sev.mail AT gmail.com
* [[User:Sev|Eugene Sandulenko]], Google Account: sev.mail AT gmail.com link_id: sev
* [[User:LordHoto|Johannes Schickel]], Google Account: lordhoto AT gmail.com
* [[User:LordHoto|Johannes Schickel]], Google Account: lordhoto AT gmail.com link_id: lordhoto
* <span style="color:red">DrMcCoy?</span>
* [[User:JoostP|Joost Peters]], Google Account: joostp AT 7fc1.org link_id: joostp
* [[User:DrMcCoy|Sven Hesse]], Google Account: drmccoy AR users.sourceforge.net link_id: drmccoy
* [[User:DJWillis|John Willis]], Google Account: John.Willis AT Distant-Earth.com link_id: djwillis
|}
|}


Line 33: Line 35:
= Application organized according to program FAQ =
= Application organized according to program FAQ =
=== Describe your organization. ===
=== Describe your organization. ===
ScummVM is a collection of Virtual Machines which allow a variety of commercially available graphical point-and-click adventure games to run on modern hardware, often with improved features. Supported games include favorites such as Monkey Island, Simon the Sorcerer, Space Quest, and many more. To this end, the Virtual Machines (called Engines) are complete reimplementations of each supported game engine in a structured fashion using the C++ language. The development team works either by reverse engineering game executables (usually with the permission of creators of the game), or by using the original source code of the games provided by the creators. The number of engines is constantly growing thanks to a very agile and diversified development team.
ScummVM is a collection of Virtual Machines for playing classic graphical point-and-click adventure games on modern hardware. Supported games include favorites such as Monkey Island, Simon the Sorcerer, Space Quest, and many more. To this end, the Virtual Machines (called Engines) are complete reimplementations in C++ of the engines used in the original games. The development team works either by reverse engineering game executables (usually with the permission of creators of the game), or by using the original source code of the games provided by the creators. The number of engines is constantly growing thanks to a very agile and diversified development team.


The VM approach followed by ScummVM results in efficient code, which has been ported to numerous Operating Systems. Besides running on all mainstream desktop environments, namely Windows, Mac OS X and most Unix variants (Linux, *BSD, Solaris), ScummVM works on popular game consoles (Nintendo DS, PlayStation 2, PlayStation Portable and more), smart phones and PDAs (WinCE, PalmOS, iPhone or Symbian based), and even on many not-so-mainstream systems (like BeOS, AmigaOS or OS/2).
The VM approach followed by ScummVM results in efficient code, which has been ported to numerous Operating Systems. Besides running on all mainstream desktop environments, namely Windows, Mac OS X and most Unix variants (Linux, *BSD, Solaris), ScummVM also runs on popular game consoles (Wii, Nintendo DS, PlayStation 2, PlayStation Portable and more), smart phones and PDAs (WinCE, PalmOS, iPhone or Symbian based), and even on many not-so-mainstream systems (like BeOS, AmigaOS or OS/2).


ScummVM has a highly productive team of about 35 currently active developers (out of an all-time pool of over 60), who work together on a codebase almost 650,000 lines of code. In addition we have many non-developer contributors, and a huge and highly active community. ScummVM is among the top ranking projects hosted on sourceforge.net with well over 100,000 monthly downloads and ~10 million project web hits per month.
ScummVM has a highly productive team of about 45 currently active developers (out of an all-time pool of over 65), working together on a codebase almost 800,000 lines of code. In addition ScummVM has many non-developer contributors, and a huge and highly active community. ScummVM is among the top ranking projects hosted on sourceforge.net with well over 100,000 monthly downloads and ~10 million project web hits per month.


=== Why is your organization applying to participate in GSoC 2009? What do you hope to gain by participating? ===
=== Why is your organization applying to participate in GSoC 2009? What do you hope to gain by participating? ===
Drawing from our pleasant experience during our participation in GSoC '07 we feel compelled to apply again this year. Our goals for the gains to be attained through GSoC remain almost the same.
Yes! We like GSoC too much! We love it! We wait eagerly each year for GSoC to start!


Firstly, we hope to gain some new active developers. While we already have several very active contributors, these people are already mostly busy in specific subprojects and tasks. New people mean new ideas, new energy, and new ways of thinking. Therefore, a longer lasting engagement of our student contributors would be our highest hope.
What we hope to gain is valuable code contributions. In the past, we've had students take up and complete tasks which had been marked as "to-do", but the main developers were at a loss of time to implement them. The students have taken these up as self-contained GSoC projects and realized them. But also, some students have come up with new functionality, proposed and finally implemented it. These have been our favorite.


Furthermore, we have a list of self-contained tasks on specific aspects of ScummVM which have not been tackled yet. These tasks will improve the functionality of ScummVM, making them valuable to the ScummVM community. GSoC is a very good opportunity to have these implemented through the incentives the program offers. These tasks also present a good point of entry for new developers to ease themselves in the extensive ScummVM codebase.
In addition, we hope to gain new developers in the project. We hope that after their projects, students will stick around and improve them or work on other interesting tasks. We hope that GSoC brings the students in touch with open source and, in our case, bring them in touch with game developing. We hope these students will add their piece of code in this project and will keep on contributing afterwards.
 
We've been successful in the past two years and we're really looking forward to great results from the program this year too.


===  Did your organization participate in past GSoCs? If so, please summarize your involvement and the successes and challenges of your participation. ===
===  Did your organization participate in past GSoCs? If so, please summarize your involvement and the successes and challenges of your participation. ===


We have participated in the GSoC program last year, in 2007. We had an exciting time during the prep period, had some very good students and some very bad students during the main stretch, and we got some significant results in the end.
We have participated in the GSoC program for two years running, in 2007 and 2008.
 
In 2008 we had 6 students and 7 mentors. 5 of our students were so successful that their code is included in the mainline of ScummVM. Our latest release contains code from all 5. We consider a great achievement the fact that 4 of the students still continue to contribute to the project.
We had one student severely underachieving last year. Although his mentor helped him to a great extent, even going as far as writing portions of his task's code with him as a method to help him along, he still failed to even come close to completing the task. It is our assessment that the major problem was that he overestimated his free time to work on the project. We will be addressing this kind of issue this year by using several mothods, such as requiring a more detailed task schedule, explicitly asking about prior committments and conducting interviews with the students.
 
In 2007 we had 7 students and 4 mentors in total. Two of our students have been promoted to active, regular developers in the team after having their respective code contributions integrated in the codebase. One other student's code contributions have also been integrated in the mainline. Two more have their code still in development to improve it and make it production-ready, either through optimization or extension and better integration. Two students failed to keep up with the schedule and/or produced inadequate code.


We had 7 students and 4 mentors in total. Two of our students have been promoted to active, regular developers in the team after having their respective code contributions integrated in the codebase. One other student's code contributions have also been integrated in the mainline. Two more have their code still in development to improve it and make it production-ready, either through optimization or extension and better integration. Two students failed to keep up with the schedule and/or produced inadequate code.


Ultimately, aside the valuable contributions the majority of our students achieved, two students failed. In their case, our mentors agree that there wasn't anything more we could do. Their involvement was minimal from the start and that's what we must identify early on, at the application stage.
All in all, we maintain that we are refining our method of student selection these past two years and this refinement leads to better results each year. The discussions, testimonials and proposed actions which the mentor summit has brought up -and which we have participated in both these two years- have helped us a great deal, during this refinement process as well.


===  If your organization has not previously participated in GSoC, have you applied in the past? If so, for what year(s)? ===
===  If your organization has not previously participated in GSoC, have you applied in the past? If so, for what year(s)? ===
Line 66: Line 74:


===  What is the main development mailing list or forum for your organization? ===
===  What is the main development mailing list or forum for your organization? ===
scummvm-devel AT sourceforge.net
scummvm-devel AT lists.sourceforge.net
 


===  What is the main IRC channel for your organization? ===
===  What is the main IRC channel for your organization? ===
Line 73: Line 80:


===  Does your organization have an application template you would like to see students use? If so, please provide it now. ===
===  Does your organization have an application template you would like to see students use? If so, please provide it now. ===
First off, we have a list of rules that all interested students should read: http://wiki.scummvm.org/index.php/Summer_of_Code/Project_Rules
The following was adapted from the FreeBSD [http://www.freebsd.org/projects/summerofcode.html Proposal Guidelines].
The following was adapted from the FreeBSD [http://www.freebsd.org/projects/summerofcode.html Proposal Guidelines].


Line 90: Line 98:


===  Who will be your backup organization administrator? Please include Google Account information. ===
===  Who will be your backup organization administrator? Please include Google Account information. ===
Max Horn. Google Account: max AT quendi.de
Sven Hesse, Google Account: drmccoy AR users.sourceforge.net link_id: drmccoy


===  Who will your mentors be? Please include Google Account information. ===
===  Who will your mentors be? Please include Google Account information. ===
Max Horn, Google Account: max AT quendi.de
Max Horn, Google Account: max AT quendi.de link_id: fingolfin


Kostas Nakos, Google Account: knakos AT gmail.com
Kostas Nakos, Google Account: knakos AT gmail.com link_id: jubanka


Eugene Sandulenko, Google Account: sev.mail AT gmail.com
Eugene Sandulenko, Google Account: sev.mail AT gmail.com link_id: sev


Johannes Schickel, Google Account: lordhoto AT gmail.com
Johannes Schickel, Google Account: lordhoto AT gmail.com link_id: lordhoto
 
Joost Peters, Google Account: joostp AT 7fc1.org link_id: joostp
 
Sven Hesse, Google Account: drmccoy AR users.sourceforge.net link_id: drmccoy
 
John Willis, Google Account: John.Willis AT Distant-Earth.com link_id: djwillis


===  What criteria did you use to select these individuals as mentors? Please be as specific as possible. ===
===  What criteria did you use to select these individuals as mentors? Please be as specific as possible. ===
Our mentors were selected as volunteers from the development team who are already intimately familiar with the internals of ScummVM, our coding conventions etc.. All three are familiar with guiding people (in particular, students) through project work effectively (in fact, two of them happen to be lead developers of ScummVM). As such, we are convinced that we are able to guide interested students through the Summer of Code to the net benefit of all involved parties.
We want our mentors to have the following qualities:
# Be able to commit to participating for the entire duration of the program. They first and foremost have to be available to their students and the mentor team.
# Have a considerable track record hacking inside ScummVM. They can help the students more effectively and in an immediate fashion this way.
# Have the patience and skills to explain to their respective students on how to tackle their tasks. Also, to be able to help the students out in sticky situations.
# Have a clear vision on how a task should proceed, both in broad strokes as well as in the technical details level. Allowing of course some freedom of movement to the students, where this is applicable.
 
For this year, and this holds for our previous participations too, our mentors have volunteered to work with GSoC. This means that they primarily want to be involved in the program and that they are not dragged in to participate. Moreover, they have all been contributors to ScummVM for a long time. They feel comfortable around the ScummVM code and can guide students to perform their tasks. The majority of the mentors have also participated in past ScummVM GSoCs so they know their way around the procedures and have also refined their mentoring style. Some of them are/have been part of the academia, guiding real students. They have seen the student mentalité in-action and have experience helping people along. We are drawing the best available from our pool of developers to mentor GSoC students this year.


===  What is your plan for dealing with disappearing students? ===
===  What is your plan for dealing with disappearing students? ===
We hope that nobody will disappear, but we plan to take a proactive approach, i.e., we will try to minimize the risk of a loss of communication, but if it happens, we are prepared to deal with it, too.
We know that the students can do that. We learned this the hard way the first time 'round the GSoC ride :-) The measures we set in place last year effectively erradicated this problem.
Our plan this year is to use the application phase of the progam more efficiently. Ideally we would like to take up only students that are intimately interested to the project, have fresh ideas, propose a good looking timetable and are keen to execute it. That means more clarifying questions using the GSoC app, and setting up meetings with prospective students.
 
As for this year, we will firstly enforce certain rules at the program start. That is, we will clearly explain that this work should be considered as full-time, and that in any doubt we will not let the student enter the program.
 
Second, we are going to introduce a new policy, that is, the students have to provide status to their mentors on a bi-daily basis at most. If a student disappears for more than 3 days without notifying of his/her mentor, the student will fail off the project. The students will be immediately aware of this during their applications. We have positively identified that frequent and meaningful communication goes a long way in keeping the students engaged and interested.


During the project, we are also planning to impose a more strict "activity update report" schedule. The students should report at least once a week. Through a friendly atmosphere we hope to minimize the risk of any student being "afraid" to report problems they might have. On the other hand, we will make it clear that we expect dedicated work of the students and that unannounced/unjustified disappearances will draw consequences, like negative reports or even the failure of the whole project. Still, establishing a positive and friendly connection between student and mentor will be the cornerstone of our efforts in this regard. If the student trusts the mentor and tells him about his fear, uncertainties and problems early on, they can try to find a solution together, possibly with the help of the rest of the team. Also, integrating the students into our community should reduce the likelihood of disappearances further (see also the next section).  
Of course, comprehensive timelines will be required as usual, and we will accept only those of the students which will set realistic goals, thus minimizing the risk of getting intimidated. This factor too frequently leads to the student disappearing.


If all fails, though, and a student really vanishes completely, we will have to deal with the consequences, just like with regular projects in a company. Projects *can* fail, after all, no matter how hard you try to avoid it.
During the program we will make sure that the students will feel comfortable with their tasks. Our mentors already have experience with that. Moreover, in difficult situations in the past there was not a single person feeling responsible for a particular student, but rather the whole project was trying to help when needed. These reflexes on behalf of the mentor group but also on behalf of the active team members of ScummVM have proven to be a pretty good "tool", especially last year, and we are going to do our best this year too.


===  What is your plan for dealing with disappearing mentors? ===
===  What is your plan for dealing with disappearing mentors? ===
For the mentors, the risk is relatively low; two are project leads and are reachable virtually 24/7 (in case of emergencies). We all have exchanged sufficient contact information (including cell phone numbers etc.) to be able to discover our whereabouts etc. Should something really bad happen (like somebody ending up in hospital and hence unable to work, a natural disaster, etc.), we will attempt to shift students to new mentors (among the existing mentors, or drawn from our backup pool of mentors). This will depend on the number of students we have to mentor.
For the mentors, the risk is relatively low; our past experiences verify absolutely this claim. Two of our mentors are project leads and are reachable virtually 24/7 (in case of emergencies). We all have exchanged sufficient contact information (including cell phone numbers etc.) to be able to discover our whereabouts. Should something really bad happen which precludes a mentor from fulfilling his duties (including personal reasons), we will attempt to shift students to new mentors among the existing mentors, or drawn from our backup pool of mentors. This will depend on the number of students we have to mentor. The students will not be left hanging for any reason at all.


===  What steps will you take to encourage students to interact with your project's community before, during and after the program? ===
===  What steps will you take to encourage students to interact with your project's community before, during and after the program? ===
Our community uses forums, IRC, a Wiki and our mailing list for a vivid exchange of thoughts all the time. We will urge the students to participate in all of them; especially on IRC can they directly talk to many nice and helpful team and community members. The mentors will introduce the students to the rest of the team (making sure everybody knows who the students are). There are people active in the IRC channel virtually 24/7, thanks to the international nature of the project.  
In order to help the students familiarize themselves with the project, we have created several pieces of documentation for them. In particular, we have an exhaustive developer central where we describe the all-important internals of ScummVM. This is valuable as a quick reference as well as during the initial explorations of the codebase.
 
Also the development team actively uses the forums, IRC, Wiki and the development mailing list during the entire project development. We consider out students to be special, but developers nonetheless. Each developer including our students is encouraged to take part in discussions, whatever the means these discussions occur. As a pragmatic fact, on IRC any student will be able to get support literally 24/7, as our developers are scattered all over the globe.


We also expect the students to talk to non-mentor team members on a regular basis about parts of ScummVM for which these team members are experts (if these parts happen to be relevant for the student's project). To achieve that, the mentors will specifically introduce them to each other, and will try to encourage them to work together.
Also not only the mentors but also the entire development team is encourage to communicate with the students. The students are marked with special flag on our IRC channel, so everyone know who they are. Also we require the students to write introductory letters to our development list, so everyone will have impression about them, their skills and their assigned task of course.


===  What will you do to ensure that your accepted students stick with the project after GSoC concludes? ===
===  What will you do to ensure that your accepted students stick with the project after GSoC concludes? ===
Our experiences last year show that guys who are genuinely interested in the project will stick around. And that's really the drive for open source: to be interested in the project one is participating. We will try to select students who best match this criterion. Other than that, we run a cool team with loose coding deadlines and a cheerful IRC channel and mailing list, so prospective team members should feel at home soon. We always welcome new contributions with pleasure. Spending some time before someone gets promoted to normal team membership is how we've always done it; GSoC gives us the chance to implement this again, with added benefits too :-)
We already have a handful of students as our team members from the past two years. Our project brings both fun and challenge and suits folks who like such stuff. This is one of the prime forces which drive Open Source, and we are proud to be one of the biggest OSS projects.
 
We hope that this will be valued by our students and that if their time permits, they will continue to support the project and continue pushing it forward. We always greet new developers with a warm welcome and strive to ensure nobody feels abandoned :).
 
<span style="color:red">+++++++</span>

Latest revision as of 20:10, 11 March 2009

Introduction & overview

This is the application of the ScummVM project for the Google Summer of Code. Let's start with a quick overview of the facts before turning to the more elaborate parts of this document.

Project: ScummVM
Participation in prior SoCs: Yes
Applications for prior SoCs: Summer_of_Code/Application/2008, Summer_of_Code/Application/2007
Organization administrator: Eugene Sandulenko (sev.mail AT gmail.com) link_id: sev
Backup administrator: DrMcCoy (drmccoy AR users.sourceforge.net) link_id: drmccoy
Project License: GPL
Ideas page: OpenTasks
IRC channel: #scummvm on irc.freenode.net
Development mailing list: https://lists.sourceforge.net/lists/listinfo/scummvm-devel
Mentors:
  • Max Horn, Google Account: max AT quendi.de link_id: fingolfin
  • Kostas Nakos, Google Account: knakos AT gmail.com link_id: jubanka
  • Eugene Sandulenko, Google Account: sev.mail AT gmail.com link_id: sev
  • Johannes Schickel, Google Account: lordhoto AT gmail.com link_id: lordhoto
  • Joost Peters, Google Account: joostp AT 7fc1.org link_id: joostp
  • Sven Hesse, Google Account: drmccoy AR users.sourceforge.net link_id: drmccoy
  • John Willis, Google Account: John.Willis AT Distant-Earth.com link_id: djwillis

Please address all items in RED ;-)

Application organized according to program FAQ

Describe your organization.

ScummVM is a collection of Virtual Machines for playing classic graphical point-and-click adventure games on modern hardware. Supported games include favorites such as Monkey Island, Simon the Sorcerer, Space Quest, and many more. To this end, the Virtual Machines (called Engines) are complete reimplementations in C++ of the engines used in the original games. The development team works either by reverse engineering game executables (usually with the permission of creators of the game), or by using the original source code of the games provided by the creators. The number of engines is constantly growing thanks to a very agile and diversified development team.

The VM approach followed by ScummVM results in efficient code, which has been ported to numerous Operating Systems. Besides running on all mainstream desktop environments, namely Windows, Mac OS X and most Unix variants (Linux, *BSD, Solaris), ScummVM also runs on popular game consoles (Wii, Nintendo DS, PlayStation 2, PlayStation Portable and more), smart phones and PDAs (WinCE, PalmOS, iPhone or Symbian based), and even on many not-so-mainstream systems (like BeOS, AmigaOS or OS/2).

ScummVM has a highly productive team of about 45 currently active developers (out of an all-time pool of over 65), working together on a codebase almost 800,000 lines of code. In addition ScummVM has many non-developer contributors, and a huge and highly active community. ScummVM is among the top ranking projects hosted on sourceforge.net with well over 100,000 monthly downloads and ~10 million project web hits per month.

Why is your organization applying to participate in GSoC 2009? What do you hope to gain by participating?

Yes! We like GSoC too much! We love it! We wait eagerly each year for GSoC to start!

What we hope to gain is valuable code contributions. In the past, we've had students take up and complete tasks which had been marked as "to-do", but the main developers were at a loss of time to implement them. The students have taken these up as self-contained GSoC projects and realized them. But also, some students have come up with new functionality, proposed and finally implemented it. These have been our favorite.

In addition, we hope to gain new developers in the project. We hope that after their projects, students will stick around and improve them or work on other interesting tasks. We hope that GSoC brings the students in touch with open source and, in our case, bring them in touch with game developing. We hope these students will add their piece of code in this project and will keep on contributing afterwards.

We've been successful in the past two years and we're really looking forward to great results from the program this year too.

Did your organization participate in past GSoCs? If so, please summarize your involvement and the successes and challenges of your participation.

We have participated in the GSoC program for two years running, in 2007 and 2008.

In 2008 we had 6 students and 7 mentors. 5 of our students were so successful that their code is included in the mainline of ScummVM. Our latest release contains code from all 5. We consider a great achievement the fact that 4 of the students still continue to contribute to the project. We had one student severely underachieving last year. Although his mentor helped him to a great extent, even going as far as writing portions of his task's code with him as a method to help him along, he still failed to even come close to completing the task. It is our assessment that the major problem was that he overestimated his free time to work on the project. We will be addressing this kind of issue this year by using several mothods, such as requiring a more detailed task schedule, explicitly asking about prior committments and conducting interviews with the students.

In 2007 we had 7 students and 4 mentors in total. Two of our students have been promoted to active, regular developers in the team after having their respective code contributions integrated in the codebase. One other student's code contributions have also been integrated in the mainline. Two more have their code still in development to improve it and make it production-ready, either through optimization or extension and better integration. Two students failed to keep up with the schedule and/or produced inadequate code.


All in all, we maintain that we are refining our method of student selection these past two years and this refinement leads to better results each year. The discussions, testimonials and proposed actions which the mentor summit has brought up -and which we have participated in both these two years- have helped us a great deal, during this refinement process as well.

If your organization has not previously participated in GSoC, have you applied in the past? If so, for what year(s)?

N/A

What license(s) does your project use?

GPLv2 with some parts dual-licensed under LGPL as well

What is the URL for your ideas page?

http://wiki.scummvm.org/index.php/OpenTasks


What is the main development mailing list or forum for your organization?

scummvm-devel AT lists.sourceforge.net

What is the main IRC channel for your organization?

#scummvm at freenode.net

Does your organization have an application template you would like to see students use? If so, please provide it now.

First off, we have a list of rules that all interested students should read: http://wiki.scummvm.org/index.php/Summer_of_Code/Project_Rules The following was adapted from the FreeBSD Proposal Guidelines.

  • Name
  • Email
  • Project Title
  • Possible Mentor (optional)
  • Benefits to the ScummVM Community - a good project will not just be fun to work on, but also generally useful to others.
  • Deliverables - It is very important to list quantifiable results here e.g.
    • "Improve X modules in ways Y and Z."
    • "Write 3 new man pages for the new interfaces."
    • "Improve test coverage by writing X more unit/regression tests."
    • "Improve performance in FOO by X%."
  • Project Schedule - How long will the project take? When can you begin work?
  • Availability - How many hours per week can you spend working on this? What other obligations do you have this summer?
  • Bio - Who are you? What makes you the best person to work on this project?

Who will be your backup organization administrator? Please include Google Account information.

Sven Hesse, Google Account: drmccoy AR users.sourceforge.net link_id: drmccoy

Who will your mentors be? Please include Google Account information.

Max Horn, Google Account: max AT quendi.de link_id: fingolfin

Kostas Nakos, Google Account: knakos AT gmail.com link_id: jubanka

Eugene Sandulenko, Google Account: sev.mail AT gmail.com link_id: sev

Johannes Schickel, Google Account: lordhoto AT gmail.com link_id: lordhoto

Joost Peters, Google Account: joostp AT 7fc1.org link_id: joostp

Sven Hesse, Google Account: drmccoy AR users.sourceforge.net link_id: drmccoy

John Willis, Google Account: John.Willis AT Distant-Earth.com link_id: djwillis

What criteria did you use to select these individuals as mentors? Please be as specific as possible.

We want our mentors to have the following qualities:

  1. Be able to commit to participating for the entire duration of the program. They first and foremost have to be available to their students and the mentor team.
  2. Have a considerable track record hacking inside ScummVM. They can help the students more effectively and in an immediate fashion this way.
  3. Have the patience and skills to explain to their respective students on how to tackle their tasks. Also, to be able to help the students out in sticky situations.
  4. Have a clear vision on how a task should proceed, both in broad strokes as well as in the technical details level. Allowing of course some freedom of movement to the students, where this is applicable.

For this year, and this holds for our previous participations too, our mentors have volunteered to work with GSoC. This means that they primarily want to be involved in the program and that they are not dragged in to participate. Moreover, they have all been contributors to ScummVM for a long time. They feel comfortable around the ScummVM code and can guide students to perform their tasks. The majority of the mentors have also participated in past ScummVM GSoCs so they know their way around the procedures and have also refined their mentoring style. Some of them are/have been part of the academia, guiding real students. They have seen the student mentalité in-action and have experience helping people along. We are drawing the best available from our pool of developers to mentor GSoC students this year.

What is your plan for dealing with disappearing students?

We know that the students can do that. We learned this the hard way the first time 'round the GSoC ride :-) The measures we set in place last year effectively erradicated this problem.

As for this year, we will firstly enforce certain rules at the program start. That is, we will clearly explain that this work should be considered as full-time, and that in any doubt we will not let the student enter the program.

Second, we are going to introduce a new policy, that is, the students have to provide status to their mentors on a bi-daily basis at most. If a student disappears for more than 3 days without notifying of his/her mentor, the student will fail off the project. The students will be immediately aware of this during their applications. We have positively identified that frequent and meaningful communication goes a long way in keeping the students engaged and interested.

Of course, comprehensive timelines will be required as usual, and we will accept only those of the students which will set realistic goals, thus minimizing the risk of getting intimidated. This factor too frequently leads to the student disappearing.

During the program we will make sure that the students will feel comfortable with their tasks. Our mentors already have experience with that. Moreover, in difficult situations in the past there was not a single person feeling responsible for a particular student, but rather the whole project was trying to help when needed. These reflexes on behalf of the mentor group but also on behalf of the active team members of ScummVM have proven to be a pretty good "tool", especially last year, and we are going to do our best this year too.

What is your plan for dealing with disappearing mentors?

For the mentors, the risk is relatively low; our past experiences verify absolutely this claim. Two of our mentors are project leads and are reachable virtually 24/7 (in case of emergencies). We all have exchanged sufficient contact information (including cell phone numbers etc.) to be able to discover our whereabouts. Should something really bad happen which precludes a mentor from fulfilling his duties (including personal reasons), we will attempt to shift students to new mentors among the existing mentors, or drawn from our backup pool of mentors. This will depend on the number of students we have to mentor. The students will not be left hanging for any reason at all.

What steps will you take to encourage students to interact with your project's community before, during and after the program?

In order to help the students familiarize themselves with the project, we have created several pieces of documentation for them. In particular, we have an exhaustive developer central where we describe the all-important internals of ScummVM. This is valuable as a quick reference as well as during the initial explorations of the codebase.

Also the development team actively uses the forums, IRC, Wiki and the development mailing list during the entire project development. We consider out students to be special, but developers nonetheless. Each developer including our students is encouraged to take part in discussions, whatever the means these discussions occur. As a pragmatic fact, on IRC any student will be able to get support literally 24/7, as our developers are scattered all over the globe.

Also not only the mentors but also the entire development team is encourage to communicate with the students. The students are marked with special flag on our IRC channel, so everyone know who they are. Also we require the students to write introductory letters to our development list, so everyone will have impression about them, their skills and their assigned task of course.

What will you do to ensure that your accepted students stick with the project after GSoC concludes?

We already have a handful of students as our team members from the past two years. Our project brings both fun and challenge and suits folks who like such stuff. This is one of the prime forces which drive Open Source, and we are proud to be one of the biggest OSS projects.

We hope that this will be valued by our students and that if their time permits, they will continue to support the project and continue pushing it forward. We always greet new developers with a warm welcome and strive to ensure nobody feels abandoned :).

+++++++