Anyone who wants to share some experience on the subject of how to manage virtual development teams?
What I''m refering to is how to practically take care of version distribution, file sharing and other stuff. Most people can''t setup an own server with CVS and/or dedicated FTP access and so on.
Most basic way is to use mail, IRC and ICQ. But I''ve been looking at (free) services like www.visto.com and www.freedrive.com too, anyone tried them out?
Without some sort of dedicated place to put things you will find it very difficult to manage this group. You will need to find some web space that can be ftp''ed to and from by your team members. Most ISPs give this away with an account or it is available for purchase. I would highly recommend figuring out a way to do this.
Second and probably more important than a common place to work online, is the need for communication. As the team leader you must establish the rules and the group atmosphere for communication. Because you are not together physically, more emphasis will be placed upon the email style communication methods. Be sure to get to know eachother very well. This will help prevent any misreads on the email sent to the group. Leave a communication channel wide open to discuss issues as soon as they happen.
We handled the remote management issue in a relatively simple manner: The project was broken apart into very non-overlapping pieces: client and server.
After defining the communication interface between the client and server, we could do our separate developments without worrying about each other. Of course, sometimes it was one of us waiting for the other to get his piece finished "enough" that we could test against it.
Art and sound/music were also relatively simple since we had only a single artist and single sound technician. And only the client was affected by those (the server doesn''t care about graphics or sound).
Is there a lesson somewhere in this? I hope so... =)
I think it''s important that a project be broken into the most manageable pieces it can be. Also, each piece of the project must be the responsibility of only a single team member. If that piece needs to be changed, then only the responsible team member will make the change. Especially with a remote project, it''s important to minimize the dependencies between team members. It really sucks if Team Member A is stuck for several weeks because Team Member B doesn''t have his part done "enough" to be at least tested against.
I think you also need someone who is capable of managing all the different pieces and making sure they come together.
For the code this should probably be the lead programmer, as hes supposed to know what everyone is doing, and how it all comes together. This does make more non-coding work for him though, so its best if you streamline the process so he doesnt lose more working time than he has to.
I think another important roll is project lead (not the lead programmer, though on small teams, it may end up being him), who will keep track of what EVERYONE is doing.
IMO, this should probably NOT be the lead programmer, as there is just too much footwork that has to be done to make sure the art and sound and other aspects of the game are coming together, though it probably wont be enough of a job in small teams to be a full time position. So this person cause also be a art/sound tech to help get things into the game, and a level/mission designer as well.
Just some of the things Ive been thinking about regarding this and team management in general recently.
Here''s a radical idea. As much as I hate to admit it, putting up a small mud server could be something extremely useful. ICQ is nice but it still doesn''t beat the interactivity contained in a mud. A mud can be stripped of all the combat and gameplay pretty easily, though that work is not necessary and the features are often nice to have there for atmosphere. Effectively what a mud gives you is an online presence that the other team members can see, touch, and hear. (thank god you can smell them or taste them...not going there) If I want to throw something at you in a mud I can and it will hit you.(albeit virtually and if you make your throwing skill check.) Makes for a highly interactive communication medium.
Who knows maybe this will help. Oh and the other nice thing about muds is all it requires is telnet which comes with ever OS known to man.