We want to change our requirements from students this year based on our
past experience. The biggest change is that we will divide all projects
in to merge-able sub-projects and actually merge them to master during
the project. This way people will test your code already during the
summer and you can be sure that we will use your work. Our aim with this
is that you feel included in our community and get the most rewarding
experience at the end of the summer.

To achieve this, we have to change our requirements. This list should
help you understand what we expect from students this year.

Communications
============
- write us at least once a week a short report
- commit early commit often and push to github so that we can see it
- actively work on your project plan and communicate with us during the
community bonding period
- Communicate every working day with your mentor. Just say "hello" If
you like. It can be via email,IRC or github comments.
- If there are good reasons, for not communicating please announce them
early.
- If you don't communicate with us regularly we will fail you.

Midterm Goals
==========
- set a realistic goal for mid-term. If you fail to meet your own goal
we are more likely to fail you in the evaluations.

Merging Code to master
=================
- have some code merged into master at the end of the summer to pass the
final evaluation.
- This is a hard requirement this year so make sure that your time plan
includes it.


The communication rules should be clear. The best way meet the other
requirements it will help to break your projects into small pieces and
play with the code base a bit to get a feeling how much time you need
for a task.

Getting code into master
------------------------

The easiest way to have part of your project merged into master before
the end of the summer is to divide it into small subtask that can be
separately merged. And plan to merge at least one of them into master
around mid-term.

For example the Cover Art project can be done these 3 steps
  1. reading/storing cover art
  2. displaying the covers
  3. fetching missing covers

These points build up on each other but can be merged individually in
this order

For the track-management I could imagine something like this
  1. change artist/album/genre/... for more then one track at once
  2. cue-point editor
  ...

It is usually possible to divide a project into separate problems or
there are also minimal solutions to a problem. Try to go for the minimal
solution first and then build on top of the for the rest of the summer.

Another way to contribute code to master is fixing bugs that you
encounter along the way. You'll likely encounter some small bugs or find
that a small code refactoring would help you implementing your ideas. So
instead of fixing them in your branch and having a massive pull request
at the end fix them immediately in our master branch and make life
easier for all of us. As a nice side effect you'll likely already get
feedback from our brave beta-testers that use the current master branch.

Since this is a hard requirement we as mentors will also have an eye on
that and check if your proposal  incorporates it and also warn you
ahead of time during the summer if we see that you might not make it.
Communicating with us on a regular basis is vital for that though.

Having a realistic Mid-term goal
--------------------------------
To get a feeling for the code and get some experience with our code you
can go and tackle some of our easy bugs. Look at the code that you want
to change, check if it follows our coding guidelines. Do some research
on the API's you want to use, plan what classes you will add and how
their public API will look. Write down your algorithms in pseudo code.
The better your research is and the better you plan ahead the easier it
will be to judge how long a given task will take. For your time
estimates you should also consider that you can do less stuff during
exams and try to be a bit conservative. If you have never done anything
like GSoC before you will tend to underestimate the time to complete a
task. I know that giving these estimates is not easy and that also
professionals have problems with it. But having a good plan, knowing its
weak and strong points are can  help a lot, which is also the reason why
I nag so much and try hard to find pitfalls in your proposals.

best Max


------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Get Mixxx, the #1 Free MP3 DJ Mixing software Today
http://mixxx.org


Mixxx-devel mailing list
Mixxx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mixxx-devel

Reply via email to