So verwalten Sie den Rückstand eines Issue-Trackers

10

Wir verwenden Trac seit einigen Jahren pflichtbewusst und unsere Liste der "aktiven Tickets" ist auf fast 200 Artikel angewachsen. Dazu gehören Fehler, die zu niedrig priorisiert und zu kompliziert sind, um sie vorerst zu beheben, zurückgestellte Feature-Anfragen, Probleme, die nie wirklich zu Beschwerden geführt haben, aber alle sind sich einig, dass sie eines Tages behoben werden sollten, geplante Code-Refactorings und andere Design-Unzulänglichkeiten, die wir nicht haben. Ich möchte nicht den Überblick verlieren usw.

Infolgedessen ist die Liste mit fast 200 dieser Probleme fast überwältigend. Es ist nicht mehr nützlich als Quelle für das, woran gerade gearbeitet werden muss.

Was ist der beste Weg, um Probleme dieser Art im Auge zu behalten?

Ein Teil des Problems besteht darin, dass einige dieser Probleme eine so niedrige Priorität haben, dass sie möglicherweise nie behoben werden. Ich hasse es, den Überblick über diese Gegenstände zu verlieren (ähnlich wie wenn ich nicht etwas aus meinem Haus werfen möchte, falls ich es eines Tages brauchen könnte); Muss ich sie trotzdem wegwerfen (indem ich sie als wontfix markiere) und davon ausgehen, dass ich sie in Zukunft finden kann, wenn ich sie jemals brauche?

Josh Kelley
quelle
200 für ein ganzes Team brachte mich zum Lachen. :-) Ich allein habe 120 offene Probleme, von denen ich die meisten nie zur Behebung kommen werde! - Also zusammenfassend: tolle Frage! Ich wollte gerade das Gleiche fragen.
Martin Ba

Antworten:

6

Lassen Sie zunächst jeden Entwickler die einzelnen Elemente überprüfen und jedes Element überprüfen / testen, um festzustellen, ob es sich immer noch um ein Problem handelt (es kann am besten sein, diese unter Personen aufzuteilen). Schließen Sie dann alle, die kein Problem mehr darstellen oder bereits mit anderen Entwicklungsbemühungen behoben wurden.

Stellen Sie nun sicher, dass jeder als großer, mittlerer oder kleiner Entwicklungsaufwand gekennzeichnet ist. Dies ist eine sehr grobe Schätzung, die nur verwendet wird, um die Projekte einfacher zu kategorisieren und um die Dinge zusammenzuführen. Wenn alles bereits geschätzt ist, hilft es, aber lassen Sie sich nicht auf die Stunden ein. Gehen Sie einfach mit einem schnellen Darmcheck. Es funktioniert oft, um die Entwickler in einen Raum zu bringen und einfach jedes Element durchzugehen und die Anstrengungen zu nutzen, die die Mehrheit der Leute für angemessen hält.

Überprüfen Sie jede der drei Aufwandsgruppen und markieren Sie jedes Element in der Gruppe mit den Prioritäten Kritisch, Hoher Geschäftswert, Hoher Technischer Wert, Mittlerer Wert, Niedriger Wert und Nie behoben.

Zu diesem Zeitpunkt kennen Sie die Liste wirklich genau und verstehen die Arbeit, die mit Ihrem Rückstand verbunden ist, wirklich und können anfangen, wirklich eine Entscheidung darüber zu treffen, was mit den Elementen geschehen soll. Nehmen Sie alle Elemente, die als nie repariert markiert sind, und archivieren Sie sie aus Ihrem Rückstand.

Wenn Sie jetzt festlegen, dass die Elemente in Ihre nächste Version aufgenommen werden sollen, können Sie die kritischen und wichtigen Elemente als Kern Ihrer Version verwenden. Überprüfen Sie die Liste der Elemente mit mittlerer und niedriger Priorität und fügen Sie alle Elemente hinzu, an denen gleichzeitig mit den anderen Elementen in Ihrer Liste gearbeitet werden kann, da die Entwickler bereits in diesem Teil des Systems arbeiten.

Die Liste der mit mittlerer oder niedriger Priorität gekennzeichneten Elemente kann als Liste von Dingen verwendet werden, an denen Personen arbeiten können, wenn sie etwas Freizeit haben, oder als Schulung für neue Mitarbeiter. Ich finde es immer schön, dass bei jeder Iteration eine Person im Team ist, die an diesen Elementen arbeitet und dem Rest des Teams bei Bedarf hilft. Auf diese Weise schließen Sie die Arbeit an der aktuellen Iteration noch ab, haben jedoch jemanden, der flexibel ist und bei Bedarf Brände löschen kann, aber die Probleme behandelt, die normalerweise nicht beachtet werden.

Eine Sache, die wir als schön empfanden, war, dass wir zwischen jeder Iteration einen kurzen Zeitraum von zwei Wochen hatten, in dem das gesamte Team nur an Elementen arbeitete, die mit geringem Entwicklungsaufwand gekennzeichnet waren. Wir würden uns darauf konzentrieren, eine große Anzahl von Tickets in kurzer Zeit zu schließen.

Amy Patterson
quelle
3

Hat Trac eine Prioritätseinstellung? So etwas wie 1 für große Show-Stopper und 5 oder so für Dinge, die irgendwann schön gewesen wären?

Wenn Sie nach Priorität sortieren können, können Sie das Zeug mit der niedrigeren Priorität vorerst ignorieren.

David Thornley
quelle
1
Alles, was auf der Ebene von "schön, irgendwann getan zu haben" liegt, wird niemals erledigt werden. Zieh es raus.
Aaron McIver
1
@ Aaron: Ich würde es lieber behalten, falls wir die Priorität irgendwann erhöhen wollen. Es ist klar, dass dies niemals mit dieser Priorität geschehen wird, es sei denn, die Entwickler haben viel zu viel Zeit zur Verfügung (und haben bereits einen Gopher-Client für die Software erstellt und sie haiku-konform gemacht).
David Thornley
Trac hat eine Prioritätseinstellung, obwohl wir genug Rückstand angehäuft haben, so dass ich gerade entschieden habe, dass wir immer noch einen "Riss es raus" -Ansatz brauchen.
Josh Kelley
3

Lesen Sie: http://en.wikipedia.org/wiki/5S_%28methodology%29

Legen Sie sie auf den Dachboden, warten Sie ein Jahr und ziehen Sie dann um. Das ist was ich mache.

Im Ernst, wenn Sie es nicht reparieren wollen, dann vergessen Sie es. Siehe Extreme Programmierung.

Aber für Artikel über Code. Sie können sie als geringfügige Beobachtungen in ein Codeüberprüfungssystem einfügen. Dieses System kann so eingerichtet werden, dass Probleme angezeigt werden, wenn dieser Teil des Systems bearbeitet wird. Ich stellte fest, dass dies nicht als Mitarbeiter funktionierte, dachte, dass dies erwartet wurde, und ging nicht auf Überprüfungsbeobachtungen ein.

Der einzige Weg, dies zu tun, ist eine rücksichtslose Priorisierung. Mach es jetzt oder kümmere dich nicht darum.

Strg-Alt-Delor
quelle
Kannst du näher erläutern, wie 5s mit der Verfolgung von SW-Fehlern zusammenhängt? Der Wikipedia-Artikel scheint sich auf die Herstellung zu konzentrieren
jk.
@jk alles ist verbunden. Wir können aus allem lernen. Lean Manufacturing und agile Softwareentwicklung sind fast dasselbe. Mit einer großen Ausnahme. Bei der Herstellung ist es ein Fehler, nicht wiederholbar zu sein, bei der Konstruktion ist das Wiederholen ein Fehler (hören Sie auf, immer wieder denselben Code zu schreiben). Es gibt jedoch Teile des Prozesses, die wiederholt werden sollten (der Prozess).
Strg-Alt-Delor
2

Dies ist weniger eine Frage der Versionskontrolle als vielmehr eine Frage des Workflows und der Geschäftspriorität. Das Verfolgen von Dingen, von denen bekannt ist, dass sie falsch sind, ist eine gute Idee, auch wenn es unwahrscheinlich ist, dass sie "jemals" behoben werden. Dies hat einige Vorteile. Zum einen bedeutet dies, dass die Qualitätssicherung (wenn Sie ein separates Qualitätssicherungsteam haben) weiß, dass sie keinen neuen Fehler dafür protokollieren muss. Ein weiterer Vorteil ist, dass, wenn ein neues Problem auftritt, dessen Hauptursache jedoch eines dieser Probleme ist: "Wir wissen davon, aber es hat niedrige Priorität", jede Analyse des Fixes bereits nachverfolgt wird - was das neuere, höhere Problem machen kann. Prioritätsversion des Fehlers viel einfacher zu beheben.

Ein weiterer Aspekt davon ist, dass es möglicherweise einen gewissen Spielraum gibt, um einige dieser Arbeiten jetzt oder in Zukunft in Angriff zu nehmen. Vielleicht bekommen Sie eines Tages einen Praktikanten und können ihnen einige der einfacheren als Einführung zuweisen, um ihre Füße in der Codebasis nass zu machen.

Wenn die Entwickler der Meinung sind, dass diese Probleme gut zu beheben sind - zum Beispiel, wenn sie technische Schulden darstellen und es einfacher wäre, mit der Codebasis zu arbeiten, um sie zu beheben, aber keinen geschäftlichen Wert haben -, könnte es sich lohnen, darüber zu diskutieren mit Geschäftsinteressenten und prüfen, ob eine Einigung erzielt werden kann, bei der diese Rückstandsposten gelegentlich abgeholt werden. Ich habe gesehen, dass Scrum-Teams beispielsweise 3-5 Geschwindigkeitspunkte pro Sprint für "technische Rückstände" blockiert haben - dies kann je nach Beziehung des Entwicklungsteams zu den Geschäftsinteressenten einige politische Feinheiten erfordern, aber ich habe gesehen es funktioniert sehr gut.

Autophage
quelle
1

Das hängt wirklich von ein paar Dingen ab.

  1. Wie groß ist das Team? Wenn das Team groß genug ist, können Sie Tickets so zuweisen, dass die Elemente mit niedrigerer Priorität abgeschlossen werden.
  2. Wie oft machen Sie Veröffentlichungen? Wenn der Veröffentlichungszyklus lang genug ist, können Sie weitere Dinge hinzufügen oder eine Veröffentlichung zurückhalten, bis Sie alle Tickets aufgelöst haben.
Woot4Moo
quelle