Ich versuche Trac + SVN zu implementieren. Aber ich stoße auf ein Projektmanagementproblem. Um Ihnen einen Hintergrund zu geben, sind die meisten meiner Projekte mit der Webentwicklung verbunden (sie gehen durch Phasen wie Design, Programmierung, Testen usw.).
Jetzt implementiere ich Trac für meine Projekte. Jetzt ist das Problem, was ich als Meilensteine und Tickets platzieren sollte. Für Tickets wie granular soll ich bekommen? z.B. sollte ich sagen Make X Teil der Y-Funktion oder nur Y-Funktion. Je mehr Tickets ich mache, desto mehr Zeit verbringe ich damit, diese Tickets zu machen.
Auch für Meilensteine habe ich Projekte wie CakePHP usw. gesehen. Wenn sie Trac benutzen, setzen sie ihre Meilensteine als Versionsnummern (entsprechend den Tags im SVN). Ist das der beste Weg?
Sagen Sie also, ich habe einen Kunden, dessen letzter Termin das X-Datum ist. Dann setze ich meinen Meilenstein als 1.0 mit Deadline als X. Aber wie kann ich das Projekt dann wöchentlich verfolgen? Denn ich möchte nicht einen Tag vor dem Veröffentlichungsdatum feststellen, dass zu viel übrig ist. Ich möchte irgendwie wöchentliche Schecks haben.
Ich möchte auch Verbesserungen / Bugs auch als Tickets berücksichtigen und sie als Meilensteine zusammenlegen.
Ich habe mir etwas wie 1.x.x vorgestellt, wobei erstes x einer Gruppe von Feature-Erweiterungen entspricht, während zweites x Bug-Fixes entspricht. Gibt es einen besseren Weg? Wie verwalte ich den wöchentlichen Status in einem solchen System?
Gibt es einen Standardweg? Wie gehe ich vor? Bin total verwirrt.
Danke.
Nun, es kommt darauf an. Sie haben nicht angegeben, wie groß das Projekt sein soll, wie viele Programmierer arbeiten werden und wie oft Sie planen, zu liefern.
Das heißt, wir verwenden Trac in einem großen Projekt, das mehrere Jahre umfasst und aus einer Anzahl kleinerer Teilprojekte besteht.
Meilensteine sind als Punkte definiert, an denen wir einige Funktionen im Teilprojekt zur Auslieferung bereithalten. Der erste Meilenstein in jedem Teilprojekt ist normalerweise der längste. In der Regel benennen wir Meilensteine als "Teilprojektname v0.01". Versionen sind nur in Schritten von 0,01, 0,02, ... Wenn wir alles, was für das Teilprojekt erwartet wird, implementieren, markieren wir den letzten Meilenstein als v1.00. Nachfolgende Fehlerbehebungen gehen zu einem Meilenstein, den wir als "Teilprojektname - v1.00 - bugfix"
Milestone-Beschreibung enthält nur eine Liste neuer Funktionen oder Fehlerbehebungen. Dokumentation ist in Wiki und in Tickets geschrieben.
Trac Wiki hat normalerweise mindestens eine Seite über neue Funktionen, die in einem bestimmten Meilenstein implementiert werden. Es ist normalerweise eine höhere Beschreibung des erwarteten Verhaltens der Anwendung. Oft gibt es Beispiele für erwartete Ergebnisse, die die Anwendung erzeugen sollte.
Tickets enthält eine detaillierte Beschreibung der Funktion oder des Fehlers, die implementiert werden müssen.
Es gibt wenige Trac-Plugins zur Schätzung und Zeiterfassung. Überprüfen Sie diese Seite: Ссылка . Wir verwenden Timing And Estimation Plugin . Sie können die geschätzte Zeit für das Ticket und die Zeit, die für die Bearbeitung des Tickets aufgewendet wird, eingeben. Dann können Sie Berichte darüber erhalten, wie viel Zeit Sie für Tickets / Meilensteine aufgewendet haben und wie viel Zeit Sie dafür benötigen.
Nach zwei Jahren können wir ziemlich genau abschätzen, wie viel Zeit für die Arbeit benötigt wird. Wenn wir die Bedürfnisse und Anforderungen der Benutzer richtig verstehen, können wir in der Regel den versprochenen Zeitrahmen einhalten. Derzeit zeigen unsere Statistiken, dass wir die benötigte Zeit für Tickets um 10% überschätzen.
Ein kleiner Vorbehalt: Ich habe keine Ahnung von Trac ... oder SVN. Ich denke, deine Meilensteine sollten nicht vom Versionskontroll- / Fehlerverfolgungssystem gesetzt werden.
Typische Meilensteine sind nur wichtige Ereignisse in Ihrem Projekt. Sie sollten für alle Interessengruppen von Bedeutung sein. Die Fertigstellung eines wichtigen Ergebnisses ist ein Meilenstein. Die Fertigstellung einiger Features ist nicht möglich. Abmelden bei allen Plänen und Verträgen ist ein wichtiges Ereignis, aber die Fertigstellung von 10 Modellen ist nicht möglich.
Ich neige dazu, den Zeitplan und die Aufgaben für die Arbeit mit dem Team zu verwenden. Aktivieren Sie Aufgaben, wenn sie erledigt sind. Für alle anderen berichte ich nur über Meilensteine. Werden wir bis zum 15. Mai UAT machen? Ja, das sind wir.
Da Meilensteine Werkzeuge für die Berichterstattung an Sponsoren und andere Stakeholder sind, sollten Sie sie als das festlegen, was sie für wichtig halten. Meine Sponsoren werden wissen wollen, wann ein bestimmter Kernsatz von Features fertiggestellt ist. Das ist ein Meilenstein. Sie werden wissen wollen, wann UAT abgemeldet wird, das ist ein Meilenstein.
Stellen Sie zu wenige Meilensteine ein und niemand wird wissen, wie Sie bis zum Ende voranschreiten. Stellen Sie zu viele ein und der Wert wird verloren gehen.
Es gibt keine Zauberformel, aber Projekte mit Hunderten von Aufgaben und Tausenden von Arbeitsstunden können nur vier Meilensteine haben.
alt text http://officeadd.in/ Bilder / Artikel / ProjectMilestones-scribblea.png
Entschuldigung, das bezieht sich nicht direkt auf Trac und SVN, aber hoffentlich gibt Ihnen das eine ungefähre Vorstellung davon, wie Meilensteine allgemein verwendet werden. Oh und Entschuldigung im Voraus für die Übernutzung von Comic Sans ... yuck.
Wenn Sie Ihren Meilenstein auf 1,0 setzen, ist das in Ordnung, aber Sie sollten frühere Meilensteine definieren - machen Sie sie wöchentlich, wenn es ein gutes Intervall für Sie ist, und nummerieren Sie sie entsprechend. Für ein 4-wöchiges Projekt würden vielleicht 0,2, 0,5, 0,7 und 1,0 funktionieren. Listen Sie die relevanten Bits für jeden Meilenstein auf: "Design complete", "Coding complete", "Testing complete" usw. Wenn Sie nicht zielgerichtet sind, beginnt die eigentliche Projektverwaltung!
Ich sehe, Sie haben mehrere Möglichkeiten und ein paar Entscheidungen zu treffen.
Sie könnten über Feature Driven Development nachdenken. Sie könnten trac verwenden, um die Kommunikation zu unterstützen, anstatt diese Kontrolle. Grobkörnige Aufgaben, feinkörnige Tickets und frühe Versionen.
Machen Sie eine Liste der zu entwickelnden Features und geben Sie an, dass die Veröffentlichung, sagen wir ... Version 1.0, stattfindet, wenn alle Features entwickelt und getestet werden. Machen Sie Regenschirm-Karten für alle Eigenschaften. Es sind grobkörnig und werden Entwicklungsrhythmus definieren.
Definieren Sie nun basierend auf der Anzahl der geplanten und geplanten Funktionen einige Meilensteine. Der erste Meilenstein sollte mindestens ein Feature enthalten, da das Ziel eines Meilensteins darin besteht, das Projekt zum Testen und Feedback zu erstellen. Definieren Sie einen oder mehrere Meilensteine, um zu markieren, wann alle Funktionen abgeschlossen sind, nennen Sie sie "Beta", "Release Candidate" oder was auch immer.
Wenn während der Entwicklung feinkörnigere Aufgaben erforderlich sind, scheuen Sie sich nicht, sie zu erstellen. Und machen Sie die Regenschirm-Aufgaben von diesen neueren Tickets abhängig.
Ein Fehlerbericht muss nicht unter diesen sein und kann so viele Details enthalten wie nötig. Diese sind feinkörnig. Diese werden nicht Entwicklungsrhythmus definieren. Eine Ausnahme ist ein Bug Squashing Sprint, um Showstopper zu eliminieren. Veröffentlichen Sie die Namen der Entwickler mit mehr zugewiesenen und nicht behobenen Fehlern, um sie zur Lösung der Probleme zu zwingen.
Ein Teil des Prozesses zum Erstellen eines Meilensteins, einer Betaversion oder eines Veröffentlichungskandidaten markiert die Quelle, um den Prozess wiederholbar zu machen und Fehler zu erkennen, selbst wenn sich die Stammquelle bereits geändert hat. Bei SVN besteht der übliche Weg zum Tag darin, die Stammquelle in ein Verzeichnis auf "Tags" zu kopieren und sicherzustellen, dass niemand in diesen Zweig einsteigt.
Ich glaube, dass eine Versionsnummer mit zwei Nummern für die meisten Fälle ausreicht. Die erste Nummer steht für Kompatibilität und die zweite für die Freigabe. Aber es gibt mehrere Variablen innerhalb einer Versionsnummer: Quellkompatibilität, Binärkompatibilität, Bugfix-Level, Release, Companion-Produktversion (ala oracle), Protokollkompatibilität, etc.
Ich benutze Trac / SVN jetzt seit zweieinhalb Jahren.
Hier ist was ich vorschlage:
Der Trac ist ein sehr nettes Werkzeug. Die beste Eigenschaft oder Trac ist die Fähigkeit, WikiLinks überall zu platzieren, einschließlich Changeset-Kommentaren. Wenn Sie das Ticket # im Changeset-Kommentar eingeben und dann die Changeset-Nummer in den Ticketkommentar eingeben, werden die Aufgaben und Änderungen mit dem Code verknüpft. Später erleichtern diese Links die Entwicklung der Software. Es ist ein Lebensretter, besonders wenn das Projekt länger als ein paar Monate dauert.
Tags und Links project-management trac