Tips on writing your proposal

Be detailed.Don't say "I want to improve Python's support of XYZ", because that's vague, making it difficult to assess the project's feasibility or the time required. Exactly what changes would you make to improve XYZ support?

Compare with alternative projects.If your project will do task XYZ, look at other existing projects that perform the same task and explain how yours is different or better. (Or you can write a proposal to finish an existing project instead.)

Try to provide a rough timeline.How much time would each change take (a day, a week, six weeks)? What intermediate milestones will there be? (e.g. for a game, you might get an initial graphic display in week 1, write a parser for level definitions in week 2, write a level editor in weeks 3 and 4, etc.)

Get feedback. Post the proposal to a relevant mailing list and ask for comments. Post the proposal to your weblog and see what people think.

Describe your experience.Why are you a good person to work on this project? What skills/interests/knowledge do you have that are applicable?

Suggest a mentor.If you know a developer who would be a good mentor for your project, contact him/her and ask if they're interested. In 2005 and 2006, some interesting projects went unfunded because there was no one in the pool of mentors who felt capable of handling them.

Mentors: How to apply

The mentor's responsibility is to ensure the student makes progress. This could entail coaching them, providing motivation, making sure they aren't stuck, answering technical questions, or pointing the student to the proper resources. However, the mentor is not expected to do work for the student. In order to accomplish this, the mentor is expected to dedicate a couple of hours per week.

Looking at the list of PSF mentors can help you craft your proposal to match their interests.

["SummerOfCode/Mentors"]

Project ideas

For 2007, the PSF would like to concentrate on projects that advance PSF projects (CPython and its documentation, Jython and its documentation, the Python web site). The following pages list some ideas: