Time management for students
Well, 12 weeks isn't a lot of time to write all the code and have all the fun that you're supposed to have during GSoC. Efficient time management goes a long way in helping you make the most of your GSoC experience. Even though Google puts out a timeline for making sure that things do happen on time, you and your mentor should come up with a custom time line that fits in well with your project requirements and also with your plans for the summer.
The following are some suggestions that can help you to manage your time well:
Community Bonding Period
There's already a complete section in the manual on this. (It is that important.) Use this time to get familiar with your community, setup your development environment and get an early start on the code development. This is time where you're getting to know your mentor and other students. Chat with them on IRC, ask questions and share ideas on projects and get ready to begin the fun ride ahead.
GSoC is a job and needs an investment of about 40 hours a week. If you know in advance that you'll need to take a couple of days during the summer of code, you should communicate that with your mentor beforehand and plan to make up for lost days.
Regular meetings with your mentor
You should absolutely, absolutely make sure you're interacting often with your mentor through mutually agreed upon communication channels. It is extremely important that you and your mentor are on the same page in terms of the project status and plans. Your mentor is your biggest resource and you should make sure that you capitalize on that well.
Have mini-goals for each week
It always helps to set short-term goals that you can discuss with your mentor. Breaking down your project in smaller tasks helps in many ways:
- It gets you started!! You have a smaller, well-defined task to work on which is easier to manage.
- Mini-goals help create a road map to get to the final output you're trying to produce.
- Smaller goals are less daunting, and completing a small goal gives you the confidence to tackle the next one.
Regular code reviews
Regular code reviews are extremely important for staying on track. Don't be afraid to ask for them as frequently as you need them. It is much better to ask for a code review after 10 or 20 lines instead of hundreds of lines. If your mentor tells you that you are going about something the wrong way, you don't want to find out after writing a ton of useless code.
Maintain a log to keep track of your progress
Keeping a log of your progress is a great way to monitor progress both for yourself, your mentor and anyone else. It also turns out to be valuable in cases when you need to go reconsider a decision and figure out why you made that choice in the first place. Blogging is a good way to achieve this, since you may get good advice in the way of comments from people that you normally wouldn't communicate with, and it gives you a bit of limelight as well.
Handling the time-zone differences
It's very likely that your mentor is in a different time zone than you are. Be sure that you take this into account while you're preparing your plan. Time zones should be included for any meeting times, and UTC is often the best time zone to use, since it is not affected by Daylight Savings Time.
Be prepared for the unexpected
Things usually don't go the way you plan them. Make sure you have room for the unplanned changes. It's always best to keep aside some buffer time that you can use in case you do digress from your original plan and save yourself from considerable pain and panic attacks.
Of course, do remember that GSoC is not just all coding and working. It's about having fun too! If you manage your time well, you will have a great Summer of Code, meet interesting people and have lots of fun.