Google Summer of Code/Processes

From Qt Wiki
Jump to navigation Jump to search

This page describes processes that are typically followed during The Qt Company's participation in Google Summer of Code.

Roles

There are three specific roles associated with GSoC - Administrator, Mentor and Student. The expectations for each of these roles are summarised below.

Student

During the application period, students applying for GSoC with The Qt Company are expected to:

  • Discuss their project ideas on Qt's IRC channels, or on the Qt development mailing list, to seek community agreement to the scope of the project that will be of most benefit to the wider community, and is of interest to the student.
  • Demonstrate an appreciation of Qt and its underlying technologies, as well as required skills, by showing some applications written in Qt (if the applications have been written by teams, specify what part has been contributed).
  • Apply for GSoC on the Google GSoC web site - not directly via mailing lists/IRC.
  • Put a draft application on the Google GSoC web site as early as possible, to allow mentors to review it and ask for clarifications before the closing date (we are not keen on applications that arrive in the last hour of the application period which we are not expecting!).

Once accepted to participate in GSoC, students are expected to:

  • Create an Qt Wiki page for their project with links to source code repositories, documentation etc., which should include a weekly progress update.
  • Create documentation for their project describing the scope of the work, the proposed design of the software, the key milestones to achieve the project goals and a simple project plan to track progress.
  • Seek the opinion of their mentor and the wider community on the proposed project design.
  • Seek the opinion of their mentor on the code they are producing.
  • Produce project documentation that will be of use after GSoC.
  • Invite the wider Qt community to review their work and suggest areas for improvement.

Note that the student is expected to plan the project and decide on the scope of work that can realistically be achieved within the GSoC timeframe. The mentor is there to offer advice, not to manage the project - the student is the project manager.

Mentor

The GSoC mentors are responsible for the following during the application process:

  • Providing advice to students that are considering applying for GSoC on what would make a good project proposal.
  • Reviewing the applications as they are received, and scoring them to help reach a consensus on which applications to accept and which to reject.
  • Volunteering to act as mentor for particular projects.

They are responsible for the following during the GSoC period itself:

  • Advising the students on which documentation to study to help them understand the technologies required to achieve their project goals.
  • Advising the students on the project management aspects of the project (project plan - milestones, timescales etc.) as students tend to have little experience in this area.
  • Reviewing the project documentation produced by the student and providing constructive criticism to help the student improve.
  • Recommending approaches for engagement with the wider community.
  • Providing pointers to assist the student if they have difficulties with parts of their project.
  • Reviewing the code produced by the student, and providing constructive criticism.
  • Evaluating the student's performance both mid-way through the programme and at the end (this evaluation determines whether or not the student receives payment from Google).

Note that the mentor is not expected to:

  • Specify the project scope, milestones etc. - this is the student's responsibility - the mentor advises the student.
  • 'Manage' the student - the student is responsible for his/her own time management.

Administrator

The GSoC administrators (and deputy) from The Qt Company are responsible for coordinating:

  • The organisation application to GSoC.
  • The project ideas page.
  • Recruitment of mentors.
  • Review and selection of student project proposals.
  • Communications between students and mentors, and the GSoC team and the wider community.
  • Providing feedback to rejected students on why their projects were not selected.

Application phase

Organisation application

Selection of administrator

TQtC needs to nominate an organisation administrator and a deputy administrator. The normal way of selection is self nomination by someone who feels that they have the time and inclination to fulfil the role.

The administrator should set up a wiki page on the Qt wiki relating to this year's GSoC.

Student applications

  • Students should review the Project Ideas page to identify projects that they are interested in.
  • They should familiarise themselves with Qt, if not familiar already, by creating something that can demonstrate their skills.
  • They should gain a basic understanding of the Qt modules and types.
  • Students should seek any clarification of the meaning of the project ideas by discussing it on Qt's IRC channels or on the Qt mailing lists.
  • The student should draft out a project proposal (based on the project idea), and ask for views on Qt's IRC channels or on the Qt mailing lists.
  • They should post their draft application on the Google GSoC web site as early as possible to allow mentors to review it early and ask for any clarification before the closing date.

Project ideas

The administrator should set up a project ideas page, and encourage members of the Qt community to propose ideas and possible mentors.

Submitting application

The administrator should prepare the application following the guidelines provided by Google, and have it checked by the second administrator before the application deadline.

Interaction with potential student applicants

Potential students applicants should be encouraged to discuss their ideas on Qt's IRC channels or on the Qt mailing lists. It is acceptable for potential mentors to coach the applicants on the best way to present the application to improve the likelihood of it being accepted if they ask for help. Such advice can be presented as private emails to the individuals.

Generic advice should be added to the GSoC wiki page to help other potential applicants.

Assessment of applications

Selection of mentors

The administrator should ask the Qt community for volunteer mentors. Mentors are generally self-nominated, but should be well known to the Qt community.

Assessment of applications

The potential mentors should review the applications. The assessment by mentors forms the basis for the selection of student proposals. The exact mechanism for this has varied over the years and will be communicated by the project administrator.

A private email group will be established to allow candid discussion of the applications between mentors.

Allocation of mentors to projects

Mentors are generally self nominated for specific projects. If more than one individual wishes to act as mentor for a particular project they should try to work together as joint mentors, with one allocated as the primary mentor.

Coding phase

Communications

Private student-mentor communications

Students and their mentors communicate privately using whichever means suits them.

Wiki pages

Each student should create a page on the Qt wiki for their GSoC project. This should be created underneath the relevant GSoC main page (e.g. Google_Summer_of_Code/2018/Qt_Super_Widget). This page should detail the following as a minimum:

  • Project title
  • Student name & contact details (e.g. Qt user ID)
  • Mentor name & contact details (e.g. Qt user ID)
  • Summary of the project goals.
  • Project time line (originally from project proposal, but may be updated in consultation with mentor).
  • Target for mid-term evaluation (i.e. what do you need to achieve to pass the mid term evaluation - to be agreed with mentor).
  • Link to project design documentation
  • Weekly project updates.

It may be appropriate to have a separate wiki page for the 'completed' project - i.e. once the work is complete, information on the finished 'product' - this should be developed in parallel with the code.

Qt community updates

Each student is required to provide a weekly update of progress, saying what is going well, where they are having difficulty, and if they would like any additional help. This weekly update should be posted on a suitable communications channel, and included in their wiki page as identified above. The mentor should make sure that the student understands this expectation.

Evaluation of students

The primary mentor should be the person who fills in the evaluations of the student, but the results of the evaluation should be discussed with other co-mentors.

If the primary mentor is not available to fill in the evaluation (e.g. on holiday) they should agree for a secondary mentor or the administrator to fill it in on their behalf.

The Pass-Fail decision is a judgement based on the achievements of the student in the first half of the GSoC period - it should be based on the previously agreed target for the mid-term evaluation.

Dealing with problems

If the student or mentor is concerned about progress, or they are struggling to communicate, contact the Qt GSoC Administrators, who will help to resolve issues.