Difference between revisions of "GSoC Application"

From ScummVM :: Wiki
Jump to navigation Jump to search
(Add slightly changed template)
m (fix Discord page link)
 
(5 intermediate revisions by 5 users not shown)
Line 1: Line 1:
Your application has two important purposes: It should clearly identify the
Your application has two important purposes: It should clearly identify the goals of your project, and it should convince us that you are the right person for this task.
goals of your project, and it should convince us that you are the right person
for this task.


In particular, your application is your opportunity to show us that you
In particular, your application is your opportunity to show us that you understand what you'll be doing for the task, and to demonstrate that you've spent some time thinking about it, its difficulties, strategies for overcoming these, and have a good estimate of how much time they will take. Based on that, we will ask you a realistic planning for the 12 weeks of GSoC, including the deliverables expected for each intermediate evaluation period and at the end of the GSoC. In order to be complete, we also expect you to make a pull request, for example for a bug fix. The purpose is to ensure you know how to use Git, and that you had a look at our coding conventions.
understand what you'll be doing for the task, and to demonstrate that you've
spent some time thinking about it, its difficulties, strategies for overcoming
these, and have a good estimate of how much time they will take.
 
We don't expect you to produce a perfect application without any help at all.
We strongly encourage you to discuss your application with us while you're
preparing it, to ensure your ideas align well with our own thoughts on the
tasks. It is also the perfect chance to already get to know your potential
mentor and the rest of the team.


We don't expect you to produce a perfect application without any help at all. We strongly encourage you to discuss your plans and your application with us while you're preparing it, to ensure your ideas align well with our own thoughts on the tasks, and that your objectives are achievable. It is also the perfect chance to already get to know your potential mentors and the rest of the team. Don't hesitate to join the [[Discord Server|Discord]] channels and ask questions: keep in mind that there are no stupid questions!


== Application template ==
== Application template ==
Line 22: Line 12:
* ''Email''
* ''Email''
* ''Online nicks''
* ''Online nicks''
: You should at least add your IRC (freenode) nickname here.
: You should at least add your Discord nickname here (please abstain from fancy characters or change your nickname on our server).
* ''Project Title''
* ''Project Title''
: State concisely what you intend your project to be about. 40 characters is usually a good upper limit.
: State concisely what you intend your project to be about. 40 characters is usually a good upper limit.
Line 30: Line 20:
: A good project will not just be fun to work on, but also generally useful to others. Why do you think it's a good project for us?
: A good project will not just be fun to work on, but also generally useful to others. Why do you think it's a good project for us?
* ''Deliverables''
* ''Deliverables''
: The deliverables will be used to evaluate your progress/success at the mid-term/final evaluations, so it's very important that you list some clear goals here. Some examples:
: The deliverables will be used to evaluate your progress/success at the intermediate/final evaluations, so it's very important that you list some clear goals here. Some examples:
:* "Get scene X in game Y working."
:* "Get scene X in game Y working."
:* "Improve feature X in ways Y and Z."
:* "Improve feature X in ways Y and Z."
:* "Write documentation for the new interfaces."
:* "Write documentation for the new interfaces."
:* "Improve performance in this game scene by 20%."
:* "Improve performance in this game scene by 20%."
: Make sure there is a clearly visible set of '''goals''' that need to be accomplished for your project to be considered successful. You might also want to list additional goals you plan to accomplish in the course of your project if everything goes better than expected!
: Make sure there is a clearly visible set of '''goals''' that need to be accomplished for your project to be considered successful. You might also want to list additional "stretch" goals you plan to accomplish in the course of your project if everything goes better than expected!
: Finally, be sure to describe some '''milestones''', your high-level targets for the project. A milestone should be connected to the progress/accomplishment of goals. You should, at the very least, define 2 (two) milestones here. Again, describe the milestones and elaborate on your reasons for defining exactly these milestones. When you plan to accomplish the milestones will be handled in the schedule and not here.
: Finally, be sure to describe some '''milestones''', your high-level targets for the project. A milestone should be connected to the progress/accomplishment of goals. You should, at the very least, define 2 (two) milestones here. Again, describe the milestones and elaborate on your reasons for defining exactly these milestones. When you plan to accomplish the milestones will be handled in the schedule and not here.
* ''Project Schedule''
* ''Project Schedule''
: Your project will last for 12 weeks. Create a proposed schedule with a granularity of weeks. This schedule should (among other things) explain how long each of your goals is planned to take, and you should connect the weeks to the Summer of Code schedule, i.e. clearly make the start, mid-term evaluations, etc. visible.
: Your summer work on your project will last for 12 weeks. Create a proposed schedule with a granularity of weeks. This schedule should (among other things) explain how long each of your goals is planned to take, and you should connect the weeks to the Summer of Code schedule, i.e. clearly make the start, intermediate evaluations, etc. visible.
: Obviously we want to see a connection between your goals and your schedule: try to elaborate why you think X takes time Y and what possible issues might arise here. Obviously your schedule will probably change once you've started working on your project, so we want to know what kind of risks and problems you think might cause such changes.
: Obviously we want to see a connection between your goals and your schedule: try to elaborate why you think X takes time Y and what possible issues might arise here. Your schedule will probably change once you've started working on your project, so we want to know what kind of risks and problems you think might cause such changes.
: Last but not least, put a fixed date for each milestone you defined here. We want at least one milestone before the mid-term.
: Last but not least, put a fixed date for each milestone you defined here. We want at least one milestone before the mid-term.
* ''Availability''
* ''Availability''
: How many hours per week can you spend working on this? What other obligations do you have this summer? It is
: How many hours per week can you spend working on this? What other obligations do you have this summer? It is fine if you have exams or vacations planned, but explain how you plan to adapt your schedule around this.
fine if you have exams or vacations planned, but explain how you plan to adapt your schedule around this.
* ''Phone Number''
* ''Phone Number''
: Cellular is preferable, for emergency contacts.
: Cellular is preferable, for emergency contacts.
* ''Timezone''
* ''Timezone''
: Which hours of the day will you be available? This is important because we want to match this up to our mentors' schedule where possible.
: Which hours of the day will you be available? This is important because we want to match this up to our mentors' schedules where possible.
* ''Bio''
* ''Bio''
: The two main questions you should answer here are:
: The two main questions you should answer here are:
:* Who are you?
:* Who are you?
:* What makes you the best person to work on this project?
:* What makes you the best person to work on this project?
: Make sure you fill this with some background. We would like to know your university year for example. Also, explain what attracts you to ScummVM in general and to your project in specific. What experience do you have with C++ or other languages required in your project? Have you taken university courses which you think will be helpful? Have you worked on any projects we can take a look at? Do you think you will learn anything from your proposed project?
: Make sure you fill this with some background. We would like to know your university year for example. Also, explain what attracts you to ScummVM in general, and to your project specifically. What experience do you have with C++ or other languages required in your project? Have you taken university courses which you think will be helpful? Have you worked on any projects we can take a look at? Do you think you will learn anything from your proposed project?
* ''Pull Request''
* ''Pull Request''
: A link to the pull request you submitted as part of our [[Summer of Code/Project Rules | Project Rules]]
: A link to the pull request you submitted as part of our [[Summer of Code/Project Rules | Project Rules]]

Latest revision as of 18:06, 11 April 2021

Your application has two important purposes: It should clearly identify the goals of your project, and it should convince us that you are the right person for this task.

In particular, your application is your opportunity to show us that you understand what you'll be doing for the task, and to demonstrate that you've spent some time thinking about it, its difficulties, strategies for overcoming these, and have a good estimate of how much time they will take. Based on that, we will ask you a realistic planning for the 12 weeks of GSoC, including the deliverables expected for each intermediate evaluation period and at the end of the GSoC. In order to be complete, we also expect you to make a pull request, for example for a bug fix. The purpose is to ensure you know how to use Git, and that you had a look at our coding conventions.

We don't expect you to produce a perfect application without any help at all. We strongly encourage you to discuss your plans and your application with us while you're preparing it, to ensure your ideas align well with our own thoughts on the tasks, and that your objectives are achievable. It is also the perfect chance to already get to know your potential mentors and the rest of the team. Don't hesitate to join the Discord channels and ask questions: keep in mind that there are no stupid questions!

Application template

Your application should have at least the following information:

  • Name
  • Email
  • Online nicks
You should at least add your Discord nickname here (please abstain from fancy characters or change your nickname on our server).
  • Project Title
State concisely what you intend your project to be about. 40 characters is usually a good upper limit.
  • Possible Mentor
If you're not sure, come and talk to us.
  • Benefits to the ScummVM Community
A good project will not just be fun to work on, but also generally useful to others. Why do you think it's a good project for us?
  • Deliverables
The deliverables will be used to evaluate your progress/success at the intermediate/final evaluations, so it's very important that you list some clear goals here. Some examples:
  • "Get scene X in game Y working."
  • "Improve feature X in ways Y and Z."
  • "Write documentation for the new interfaces."
  • "Improve performance in this game scene by 20%."
Make sure there is a clearly visible set of goals that need to be accomplished for your project to be considered successful. You might also want to list additional "stretch" goals you plan to accomplish in the course of your project if everything goes better than expected!
Finally, be sure to describe some milestones, your high-level targets for the project. A milestone should be connected to the progress/accomplishment of goals. You should, at the very least, define 2 (two) milestones here. Again, describe the milestones and elaborate on your reasons for defining exactly these milestones. When you plan to accomplish the milestones will be handled in the schedule and not here.
  • Project Schedule
Your summer work on your project will last for 12 weeks. Create a proposed schedule with a granularity of weeks. This schedule should (among other things) explain how long each of your goals is planned to take, and you should connect the weeks to the Summer of Code schedule, i.e. clearly make the start, intermediate evaluations, etc. visible.
Obviously we want to see a connection between your goals and your schedule: try to elaborate why you think X takes time Y and what possible issues might arise here. Your schedule will probably change once you've started working on your project, so we want to know what kind of risks and problems you think might cause such changes.
Last but not least, put a fixed date for each milestone you defined here. We want at least one milestone before the mid-term.
  • Availability
How many hours per week can you spend working on this? What other obligations do you have this summer? It is fine if you have exams or vacations planned, but explain how you plan to adapt your schedule around this.
  • Phone Number
Cellular is preferable, for emergency contacts.
  • Timezone
Which hours of the day will you be available? This is important because we want to match this up to our mentors' schedules where possible.
  • Bio
The two main questions you should answer here are:
  • Who are you?
  • What makes you the best person to work on this project?
Make sure you fill this with some background. We would like to know your university year for example. Also, explain what attracts you to ScummVM in general, and to your project specifically. What experience do you have with C++ or other languages required in your project? Have you taken university courses which you think will be helpful? Have you worked on any projects we can take a look at? Do you think you will learn anything from your proposed project?
  • Pull Request
A link to the pull request you submitted as part of our Project Rules