PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie Teamprojekt (Softwareentwicklung) koordinieren ?



Crashman
08.10.2004, 21:57
Hallo,

wir werden in den nächsten 3 Monaten im Zuge eines (universitären) Programmierpraktikums in einem 6 Mann starken Team ein Java Programm entwickeln. Derzeit sind wir in der Analysephase und alles scheint noch recht einfach.

Ich mache mir jedoch Gedanken um die Organisation wärend der weiteren Phasen. So sollen die Teammitglieder auf aktuelle Daten zugreifen können. Auch Dokumente sollten irgendwo zentral und aktuell erreichbar sein.
Wie kann ich dies sicherstellen? Entwicklungsumgebung wird wohl Eclipse sein. Für die Diagramme nutze ich Visual Paradigm SDE (gefällt mir aber nicht wirklich...).

Wie löst ihr die Problematik?

MfG

Ray
09.10.2004, 12:43
Mal ganz grob, um halbwegs professionell heranzugehen: ;D
Vor allem ein System für KM (Konfigurationsmanagement) einsetzen, z.B Subversion (http://subversion.tigris.org/project_status.html). Dies sollte im z.B. im UNI-Netz auf einem Server laufen und alle anfallenden Daten (Dokumente, Planungsunterlagen, Source, ...) im Repository aufnehmen.
Falls das gänzlich neu für Euch ist, Know How dazu heranschaffen, ein Dummy-Projekt anlegen und üben.
- Ein Teammitglied als Leader ("Projektleiter") festlegen.
- Ein weiteres Teammitglied als Hauptverantwortlichen für das KM festlegen.
- Struktur der Daten anlegen (Planungs-, Doku- und Sourceverzeichnisse)
- Die bislang angefallenen Daten im KM System einchecken.
- Festlegen, daß wirklich ALLE anfallenden Daten eingecheckt werden.
- Dafür sorgen, daß alle Teammitglieder einwandfreien Zugriff auf das System haben.
- Eine "offene Punkte" Liste (z.B. mittels Excel-Sheet) führen.
- Festlegen, wer was macht. Abschätzen, wann wer mit was fertig sein wird.
- Integrationsschritte für die Zuarbeiten der Teammitglieder planen.
- Im weiteren Verlauf Integrationsschritte durchführen und das vorangeschrittene Programm
testen, grobe Fehler sofort beheben. Lauffähige Stände versionieren bzw. Labeln, d.h. dafür sorgen, daß sie jederzeit reproduzierbar sind.
- Wenn alles integriert ist, ihr sozusagen den Alpha-Stand erreicht habt, testen, Fehler beheben und Versionen erzeugen, testen, ...
- Fehler immer dokumentieren, nummerieren und priorisieren. Ihr solltet immer im Überblick haben, welche Fehler neu, bekannt und noch nicht behoben oder schon behoben sind. Eine Fehlerdatenbank zu nutzen wäre super, aber sowas wie ein Excel-Sheet müßte ausreichen.

Das Ganze dürfte dann iterativ so weiter gehen, bis ihr zu eurem final Release kommt.


Viel Spaß!

i_hasser
09.10.2004, 14:23
Wenn möglich könnt ihr auch die Header komplett durchplanen (also Klassen mit allen Funktionsprototypen, allgemein alle Funktionsprototypen) und dann arbeitet jeder zB. an der Realisierung von einer Klasse (ideal wenn ihr es schafft das Projekt in ungefähr 6 gleichgroßen Klassen zu realisieren ;)).

Das kann man auch mit zB. einem Interface gut machen, das wird in eine Klasse gepackt, vorher wird entschieden was alles angezeigt werden muss und der Klassenheader ist fertig. Dann wird einer abgestellt der die GUI dazu proggt.

PuckPoltergeist
09.10.2004, 15:04
Original geschrieben von intel_hasser
Wenn möglich könnt ihr auch die Header komplett durchplanen (also Klassen mit allen Funktionsprototypen, allgemein alle Funktionsprototypen) und dann arbeitet jeder zB. an der Realisierung von einer Klasse (ideal wenn ihr es schafft das Projekt in ungefähr 6 gleichgroßen Klassen zu realisieren ;)).

Dafür ist UML da. Damit läßt sich das wesentlich besser und komfortabler erledigen. Einigermaßen gute Modellierungstools können dann daraus auch gleich die passenden header erstellen.

i_hasser
09.10.2004, 15:16
Hab ja nicht gesagt, wie man die Header erstellen soll ;).

Wenn du die aber hast (meinentwegen eben durch irgend einen UML Modeler erzeugt, wobei ich persönlich UML nicht so mag) kannst du schon auf eine Klasse aufbauend programmieren, ohne dass diese Klasse überhaupt schon implementiert wurde. Und dadurch lässt sich die Arbeit an so einem Projekt überhaupt erst gut parallelisieren.

Crashman
09.10.2004, 23:24
Also mir geht es nicht um die Methodik. Wie die Phasen ablaufen sollen ist mir klar :-)

Wichtig ist mir die technische Organisation. CVS etc. sagen mir nicht wirklich viel und scheinen auch einigermassen komplex zu sein. Ich will auch nicht mehr Zeit mit der Konfiguration als mit dem eigentlichen Projekt verbringen :-)

MfG

PuckPoltergeist
09.10.2004, 23:46
Wenn du nicht eine gewisses Vorgehensmodell zu Hilfe nimmst (wie von Ray dargelegt), wirst du mehr Zeit mit dem Team-Management verbringen, als mit allem anderen. Ein Versions-System (cvs, subversion) ist bei 6 Leuten schon recht sinnvoll. Auf cvs kann man auch aus Eclipse zugreifen, es muß nur erst mal aufgesetzt sein.

Crashman
10.10.2004, 00:05
Ja schon klar...aber ich bin auch nicht blöd. Unser Team ist intern organisiert, Aufgaben sind vergeben. Wir studieren allesamt Wirtschaftsinformatik und Analyse/Design von Software ist eines unserer Kerngebiete :-) Soll jetzt nicht überheblich klingen, aber mir geht es wirklich nur um die technische Seite.

CVS bzw. Subversion scheinen Sinn zu machen. In Zusammenarbeit mit WebDav ist es dem Anschein nach auch gar nicht mehr so komplex. Ich glaube, ich werde das morgen mal in Angriff nehmen.
Ist Subversion auch von Eclipse aus verwendbar? Ansonsten kann man ja auch manuell den Projektordner synchronisieren.

Natürlich bin ich für andere Tipps auch dankbar, aber eine gewisse Grundorganisation steht jedenfalls schon.

MfG

PeterBond
10.10.2004, 11:52
Eclipse kann standardmäßig nur CVS (über Plugins kann es aber mehr).

Aber selbst wenn man CVS benutzt stößt man mit Eclipse ab und zu an die Grenzen (würde deswegen WinCVS noch zusätzlich nutzen - für alles was mit Eclipse nicht geht).

Einen CVS Server aufsetzen ist keine große Kunst. Für Windows gibts z.B. hier (http://www.cvsnt.com) einen recht einfachen.
Für Linux haben die meisten Distributionen schon einen Server dabei.

Für gemeinsame Pojektdaten kann man z.B. sowas wie Microsoft Sharepoint nutzen (wobei das nicht mein Fall ist - gibt aber auch OpenSource Projekte in der Art).
Das beinhaltet ein Board für Diskussionen, einen Teil Projektnachrichten und für Dokumente, wobei du dann Web Viewer für die meisten Dokumente bekommst und jeder im Web eine MS Project Datei anschaun kann auch wenn er keinen Viewer installiert hat.
Eine Open-Source Alternative zu Sharepoint: opengroupware (http://www.opengroupware.org).

Hast Du auch sowas wie MS Project für den Projektplan? Schöne Projektpläne kommen bei Profs. immer gut an :).

Crashman
10.10.2004, 12:01
Ich hab MS Project am laufen, aber ehrlich gesagt gefällt es mir nicht sonderlich.
Ich muss dem Prof auch keinen Projektplan vorzeigen.
Der Projektleiter erscheint bei uns als Auftraggeber und er will jede Woche Ergebnisse sehen. Wie das intern läuft ist reichlich egal :-)

MfG

Crashman
11.10.2004, 21:53
So, ich habe ein kleines Problem!

WIr haben einen Subversionserver aufgesetzt, auf den wir auch über das Internet zugreifen können.
In unserem Projekt sind jedoch externe JAR Files verlinkt. Diese können anscheinend nicht hochgeladen werden. Wie kann dieser einschränkende Zustand geändert werden ? :D

MfG

PeterBond
11.10.2004, 21:54
Hmm sorry ka. Mit cvs geht das, subversion weiß ich nicht...