Adium

How To Write a Summer of Code Proposal

Requirements

As a student, you must be willing to meet the following requirements, in addition to the Google eligibility requirements:

  1. You must not overbook yourself. Working on your Adium project should be your main activity for the entire summer.
  2. You must be willing to provide frequent (weekly) status updates.
  3. You must have a solid understanding of Objective C and the Cocoa API before starting the project (Cocoa takes some time and experience to get used to!).
  4. You will be expected to learn how to use Subversion.

The most important item is the first. Adium is a large, mature codebase, and you will need to spend some time orienting yourself. Remember, no project is trivial -- all of them represent a significant investment of time and effort.

Format

A strong proposal will include:

  • Name
  • Email
  • Project Title
  • Benefits to the Adium Community - A good project will be both fun (for you) and generally useful (to users).
  • Deliverables - It is very important to list quantitative results here, such as "Implement new feature X" or "Improve Y and Z to do foo and, time allowing, improve bar by A%".
  • Project Schedule - How long will the project take? Provide an estimated timeline, so we know what to expect. Please also include other information on your summer plans which might be relevant to planning development. This is, arguably, the most important sections, so do not overlook it!
  • Biography - Who are you? What makes you the best person to work on this project? A brief CV is appropriate, but informal is both fine and preferred.

Suggestions

Long version: Look at the page in the Google SoC wiki.

Short version: These are adapted from the Drupal mentors' list of suggestions. Remember, none of these are required, and are just tips to help you write the best possible application.

  • Sell your idea - Describe your idea in detail. What is its ultimate goal? What components will it have? How does it benefit Adium itself and the Adium community? How do you plan to achieve completion of your project?
  • Sell yourself - Convey your enthusiasm for the project. Tell us what makes you stand out from the rest of the crowd. Talk about your past experiences, what makes you tick. Why are you interested in open source software, and Adium in particular? What interests do you have, and how do these interests relate to the project for which you're applying? There is a basic assumption that people applying for Summer of Code will have at least some programming skills already. So rather than a lot of time elaborating on these (though by all means, do tell us what you know), spend time talking about you.
  • Show enthusiasm - Summer of Code is a very exciting opportunity, and Adium is an extremely exciting project to work on. We're not just looking for people who want a summer job to pass the time, we're looking for devoted people who have an intrinsic passion for open source, Mac OS X, and Adium.
  • Get feedback on your idea from the community - Discussing your idea with the mentors is highly recommended. If your idea duplicates existing efforts or code (and does not provide a very convincing reason for doing so), it will be rejected. Don't be afraid to ask the community for help; we want you to succeed just as much as you do.
  • Don't be afraid to go out on a limb - Have a brilliant idea that's not on the SummerOfCode page? Great! Don't be scared to come up with a fantastic idea of your own.