Proposal for Google Summer of Code student selection process

Hi everyone,

This is a proposal to add an evaluation step to the current process of selecting students for GSoC.

The current process

The current guidelines exist at http://dev.xwiki.org/xwiki/bin/view/GoogleSummerOfCode/Guidelines.

These guidelines (mostly linked from one page to another) go through the following series of steps.

  1. Running and using XWiki
  2. Following the onboarding guidelines at dev.xwiki.org
  3. Creating and solving issues in jira
  4. Contributing code to XWiki through pull requests
  5. Writing and submitting a proposal

On a higher level.

  1. Onboarding
  2. Contributing
  3. Proposal

This approach is good but it can be improved by adding another step for a better direction for students and an easier evaluation for the mentors.

Addition of another evaluation step

The step to be included is about project related exercises and tasks.

Exercises and tasks

After going through the onboarding guidelines, instead of jumping straight into solving issues on jira, students will be required to complete a series of tasks or exercises to qualify for the project. These tasks will serve as a starting point for implementing the actual project. Having the students work on these will help them understand the kind of work they will be doing through GSoC and will also help mentors in evaluating them to see if they are a fit even if they did not contribute any code to some XWiki project.

The nature of these tasks will depend upon the project and the mentor. There could be multiple tasks each with its own set of steps to give the student a high level idea on how to do the task and where to look for relevant resources.

Example project and task

Suppose an “Advanced FAQ Application” is proposed by one of the mentors. The tasks for this project will be.

  1. Get familiar with XClasses and XObjects. Create sample XClasses for questions and answers. (see guide)
  2. Understand the concept of templates and sheets in XWiki and create a template and sheet for the question part. (see guide)

Grade for tasks

For checking the compatibility of this new step. We can have a grade for tasks added to the overall grade. And later make the step mandatory for student consideration.

Pros

This new step could help in.

  • Filtering the proposals
  • Having only capable students considered for the projects
  • Less mentoring effort after the project starts (since the student is somewhat familiar with the process at this point)
  • A definite direction for new students (since they know exactly what to do now)
  • An easier and definitive evaluation for selection

Cons

  • It could prove difficult for mentors to think out the tasks
  • Requires more effort from mentors in the initial GSoC phase

The new process

So the students onboarding and selection process will be updated to.

  1. Onboarding
  2. Project task(s)
  3. Contributing
  4. Proposal

Hi, Fawad!

Interesting proposal! I have heard other orgs starting to “test” their students in various ways more and more often. The current process is a bit too vague and, indeed, students contributing, say, translations or CSS quick fixes might not be really relevant for the project they have to do.

We could try it, indeed, and have each proposal require 3-5 tasks for the student to perform before we can consider their application. We need to validate that students can code but that they can also handle on their own and find/read/understand/follow the existing documentation/guides without depending 100% on the mentors/community.

We will have to review next year’s proposals anyway so the effort of adding the associated tasks would be integrated there.

1 Like

Hello, I want to contribute to GSoC 2021. I have already read the document about getting started that is mentioned here https://dev.xwiki.org/xwiki/bin/view/GoogleSummerOfCode.
But I still have a doubt about how to start.
Should I start by thinking about a new project and discussing it or should I start by solving some issues and bugs?
I really need your help.
Thank you.

Hi @deepika,

Welcome to XWiki!

It’s understandable that you are doubtful right now.

So as mentioned in the post the process starts from using XWiki. If you haven’t I would suggest you start using XWiki and try to do some things as a user. Like creating pages, installing extensions and using those extensions. You could always try using the “Interactive Maps Application” I created in 2019. That would also give you an idea about the kind of projects XWiki has.

Once you are done with using XWiki, the next step would be to understand how things work internally. Technically, the concept of XClasses and XObjects in XWiki. The onboarding page can be very helpful in that. Especially Track 1 would clear many things for you.

You can also watch and follow this video https://youtu.be/upQWknV06D4 (though it’s a little bad :)) or read this post about how to develop extensions.

It also depends on the kind of project you are interested in (Java / JavaScript / Frontend / Backend). For 2021, they haven’t been proposed yet but you can check project from previous years as they are mostly proposed again if not selected for that year. (The list for previous years is at the bottom of the main GSoC page)

So there are a lot of things and it might be a little confusing at the start but I am sure it will be easier later on.

I hope this is helpful.

Thanks.