How to Write a Good Task for the Google Code In

Borrowed shamelessly from the GNOME foundation (http://live.gnome.org/GoogleCodeIn/HowToWriteAGoodTask)

Steps to Propose a New Task for GCI

Guidelines

  • The goal of GCI is to get students interested and involved in open source, not to get free child labor. ;-) The tasks should reflect that. Try and form your tasks around ideas that are fun, interesting, of high importance for the project, and/or would look great on a college application.
  • Each task should take a student approximately 2-5 days to complete, in between normal school work, sleeping, eating, playing, etc. If you have a great idea but it is going to take longer than that, consider breaking it down into several progressive steps that could each be an individual task. (Also, as students get credit for the number of tasks completed, they might be less likely to take on longer and complex tasks).
  • Tasks don't need to be limited to coding! Tasks can be pretty much anything, including QA, marketing, design, usability, documentation, research.
  • Avoid “wildcard” tasks like “go fix any bug in the queue”. Ensure that they're put against specific goals that a Sahana project requires.
  • For coding tasks, remember that most students probably have not heard of Sahana, or if they have, they are probably not familiar with the underlying structure and coding conventions. So make sure to allow enough time for them to come up to speed (with help) and still get the task done.
  • Each task needs to make it clear exactly what you're looking for, which includes a detailed description of what the work entails and a clearly-defined deliverable. It also should include references to existing documentation specific to the task, unless this information is already covered in the Wiki (coding standards, etc). This helps students not waste time spinning their wheels looking for information, and helps ensure their efforts meet your expectations, leading to a more positive experience all around. Such documentation of the task description should be written in plain and simple language.

Task Template

The hardest part of the completing a task is to have a good and detailed description, so we'll cover that part in detail. This description should be entered directly onto the Google site, or, alternatively, built out as a page linked off of the main Sahana 2010 Google Code-In page under a community:gci:gci2010: namespace (i.e. create your page after the last colon and create a link to it from the “Detailed Task Descriptions Section”).

Task Title: A short description of the task. One short sentence, such as “Create New Theme for Sahana Website” or “Create a Screencast of Features of Sahana Eden”.

Description: This should consist of:

  • An initial sentence or two that describes what the task entails and why a student would want to spend their time on it (emphasize the importance of the task to the Sahana Software Foundation or one of its projects, the transferable skills that the student will learn by working on the task, etc.)
  • Several sentences (or paragraphs as needed) or bullets that provide more detail into the task: What approach should students use?
  • Requirements or prerequisites: A list of skills and knowledge the student will need to complete the task. This helps the students to know if they might be able to complete the task or not, e.g. bzr, php or web2py for coding tasks.
  • An ordered list of links that will be helpful to the student (e.g. how to set up a development environment, how to install Sahana Agasti or Eden for testing purposes, generally should be links to other wiki pages)
  • A sentence about what the completion criteria and expected deliverable is. (Note that students are expected to upload their deliverable to the GCI site).
  • The primary contact: How do you as a mentor want the student to get in touch with you if they have questions.

That's a good start.


QR Code
QR Code community:gci:gci2010:how_to_write_a_good_task (generated for current page)