Habt Ihr denn schonmal in einem Team gearbeitet um zu sagen, mit was man anfangen soll und was man später tun soll?
Das hängt eben ganz von den Fähigkeiten der Leute ab. So pauschal läßt sich das nicht sagen. Vielleicht wäre es halt mal ganz gut, wenn ihr euch einfach gegenseitig das Zeug, das ihr bisher schon selbst gemacht habt, zuschickt oder hochladet, ich denke, dann kann man das besser einschätzen.
Dann könnt ihr euch überlegen, was ihr nun in Angriff nehmen wollt. Letztendlich ist die Planung einer der wichtigsten Punkte, sogar wichtiger als die Implementierung. Denn bei guter Planung könnt ihr, wenn einer oder mehrere abspringen, auch später neue Leute ins Boot holen, und möglichst reibungslos weitermachen.
Teamarbeit ist nicht immer leicht, das weiß ich aus eigener Erfahrung. Besonders, wenn Leute im Team sind, die nicht viel draufhaben. Daher sollte man möglichst schon vorher festlegen, wer woran arbeitet, damit es nicht zu solchen Dingen wie "och mann, kriegt der's jetzt endlich mal gebacken" kommt.
Um einen Einstieg zu finden, könnt ihr euch ja auch erstmal ein Projekt aussuchen, das zwar cool ist, aber bei dem ihr denkt "das haben wir sowieso in 4 Wochen fertig". Dann könnt ihr sehen, wie ihr miteinander arbeitet, und bereits aus diesem Projekt fürs nächste lernen. Bei den 4 Wochen wird's höchstwahrscheinlich eh nicht bleiben

aber notfalls kann man's ja auch abbrechen. Aber dann habt ihr wenigstens ein paar Erfahrungen machen dürfen, und kriegt das beim größeren Projekt vielleicht sogar schon besser hin.
Am besten wäre, ihr wählt einen als Projektleiter aus, am besten den, der am meisten Ahnung von Programmierung bzw. Software-Architektur hat. Der sollte sich dann das Projekt mal aufskizzieren und in einzelne Module unterteilen, Schnittstellen definieren, Klassen bzw. Strukturen festlegen, das ganze am besten nochmal 3x durchdenken, und dann wird entschieden, wer welchen Teil machen darf. Das ganze Gerüst wird sich während der Implementierung so oder so noch ein bißchen ändern, das läßt sich eigentlich nie vermeiden, aber das sollte vorerst mal nicht stören. Wichtig ist, daß man eine Grundplanung hat. Wenn sich jedoch bestimmte Dinge massiv verändern, sollte auch die Planung wieder entsprechend angepaßt werden.
Wie Du die Aufgaben verteilst, hängt natürlich vom Projekt ab, aber generell sollte die GUI von der eigentlichen Logik getrennt sein (was natürlich nicht heißen muß, daß das dann auch zwei verschiedene Programmierer machen müssen, nur mal als Anmerkung). Dann gibt's ja noch viele weitere Untermodule, wie z.B. das Hilfesystem, das Speichern/Öffnen, dann gibt's Leute, die testen müssen (testen kann man auch als Programmierer, indem man kleine Programme schreibt, die bestimmte Funktionen aufrufen und deren Ergebnisse auswerten - in bestimmten Bereichen ist das sinnvoll). Und zu guter Letzt werden auch oft Tools benötigt, die man programmieren kann. Diese sind dann oftmals etwas losgelöster vom eigentlichen Projekt (bei einem Spiel z.B. der Leveleditor, der oft im Spiel drin sitzt, aber dennoch ein sehr eigenes Programm darstellt), das ist oft eine gute Aufgabe für diejenigen, die mit Teamarbeit nicht ganz so gut zurechtkommen und gerne in bestimmter Weise ihr eigenes Ding machen wollen.
Wir haben neulich ein Spiel an der Schule programmiert, in einem 6-Mann-Team. Hier war es so, daß drei von uns richtig programmieren konnten, davon haben zwei an der Engine gearbeitet und einer hat sich um Netzwerk-Highscore und Level-Editor gekümmert. Von den anderen drei hat einer komplett Grafiken erstellt, der andere hauptsächlich dokumentiert und einer war Projektleiter und hat sich um den ganzen Verwaltungskram gekümmert (also besonders das, was von schulischer Seite verlangt war - das ist bei euch zum Glück nicht so viel, also nehmt bei euch lieber einen Projektleiter, der Ahnung vom Programmieren hat und das Projekt plant). Das lief eigentlich ganz gut soweit, aber wir haben uns auch richtig treffen können. Online wäre das sicherlich schwieriger gewesen. Hin und wieder gab es auch Überschneidungen, was die Aufgaben anging, aber insgesamt war es doch recht gut aufgeteilt, und es wußte eigentlich jeder, was er zu tun hat.
Noch ein Tip, besorgt euch SVN oder was vergleichbares, um euren Code zu verwalten. Das war jetzt in unserem Fall nicht nötig (waren ja nur zwei Engine-Programmierer, und wir saßen meist vor einem Rechner), aber bei euch ist das Pflicht, sonst vergeht euch ziemlich schnell die Laune
