Advice For GSoC’s Students: How to make Project Timeline

March 20, 2009

It’s really hard to make time line for software project and most of software project takes more time than expected, so don’t be surprised when big software vendors delay the release date of their products.

To make time line I usually do the following:
1- Define from where I will start  and what the end result I want to achieve.
2- See what tools and technologies I will have to learn in order to achieve my goal.
3- Define the project architecture. It’s good practice that my project architecture follow a well known design pattern like Model-View-Controller (MVC) or whatever is suitable for my project. But if I can’t make my project follow a well known pattern it’s OK design pattterns are not for all type of project. But always try to make your architecture into layers and modules.
4- Divide my big goals into millstones. Each millstone  means I have something that can work and can be tested. For example, if I’m following Model-View-Controller (MVC) design Pattern then finishing the model is a millstone and finishing the view is a millstone, also finishing the controller is a millstone, testing is millstone, packaging is a millstone, etc..
5- On each millstone I try to divide it to a smaller tasks like I want to implement class A on day1 and class B on day2, I want to test module X on day 3, etc.
6- Always put some time for catchup in case I didn’t follow the timetable. GSoC is very short programm so I guss you can’t put more than week for catch up.
7- Always Revise the time line you put on the proposal during the Community Bonding period because once I know more about my project I will be able define more accurate time line.
8- Always do weekly progress reports even I don’t made any progress. By this way I always put the time table on mind and do my dest to follow it.

Leave a Reply