| First, use Model-View-Controller to keep various aspects of your design separate from each other. Since there will be multiple programmers, you have, afaik, 2 options:
1) Use CVS. I personally hate CVS, but 1000's love it.
2) Choose one person to manage the code and all coders submit changes to that person who then checks it against the other code to ensure no conflicts WinMerge is the only thing that makes this possible. Be sure to archive working code bases before upgrading. This may seem like more work, but it's the only way I keep my head on straight and I insist on reviewing code line-by-line before adding it to a base to check against security flaws and intentional hacks. I have to say, however, that I've never been on a project where I'm in the role of anything but lead, so I can't speak from others' perspectives there.
As for timelines. A GANTT chart is nice for some. For me, a calendar of deadlines is helpful. Nothing beats daily communication from the project lead as coders are lazy, in general, and will put things off as long as possible. But, if you're constantly asking about how things are going, some progress will be made before the last week anything is due.
As for the forum, the key thing is whether it's regularly checked. I find those things slow me down, so I never go to them. There are also software project management solutions out there which allow you to delegate tasks to a coder, file bug reports, and communicate back-and-forth. Again, I never take the time myself to go to these things and nothing really substitutes for one-on-one communication which I do through email and phone (email for important things so that there is a record and phone for shorter or more detailed things which need to be discussed).
I don't claim my methods to be the best for everyone. They are the best for me.
One thing to be very cautious about is the order in which you build the system. Building a part before its dependencies are completed (or at least its member functions stubbed) can be a major pain in the but and send a project into a tailspin. Here, use case scenarios can help you as well as well-designed models.
Hope this helps you forge forth on your first project. When you get time, you may want to look at the field of systems analysis which explores a variety of techniques for project management as well as system design and optimization. |