Was sollen wir für User Stories für technische Schulden in Pivotal Tracker tun? Sollten wir diese als Merkmale (Punkte geben) oder als Aufgaben (keine Punkte geben, wodurch die Geschwindigkeit verringert wird) betrachten?
Ich bin verwirrt, was als lästige Pflicht anzusehen ist:
Vervielfältigung von Code - Es ist klar, dass, wenn wir denselben Code an mehreren Stellen platziert haben, dies eine wirklich schlechte Code-Praxis ist und Entwickler im Team mehr darüber nachdenken sollten, Software wartbar zu machen, Refactoring durchzuführen und das Team Zeit für Codeüberprüfungen aufwenden sollte. Da dies alles Reife, Zeit und Erfahrung auf Codeebene erfordert, ist es besser, weniger Punkte zu liefern, damit die Codequalität nicht beeinträchtigt wird. Daher sollten solche Fehler bestraft und die Geschwindigkeit verringert werden, indem keine Punkte für die Arbeit vergeben werden.
Technologie-Upgrade - Wie bei der Modularisierung von JS, HTTP2, React, MVC oder einer anderen neuen / besseren Technologie. Diese Schritte verbessern die Leistung und Wartung des Codes. Aber sollte dies eine Aufgabe oder ein Feature sein? Ich glaube, so ist die Technologiewelt, hin und wieder kommen neue Technologien und man muss darauf migrieren. Daher sehe ich keinen Grund darin, die Geschwindigkeit des Teams für solche Arbeiten zu bestrafen. Vorschläge?
Duplizierung / Substandard-Code in Legacy-Code - Nur wenige Codes sind seit langer Zeit unberührt. ODER wenn ein neues Team gebildet wird, die Codebasis jedoch etwas alt ist, stehen wir vor dieser Herausforderung. Das Team sagt, dass sie diesen Abschnitt nicht codiert haben. Warum sollte ihre Geschwindigkeit dadurch bestraft werden, dass solche technischen Schulden ausgewählt werden, die sie nie geschaffen haben?
Aufgrund der Dringlichkeit des Geschäfts unterdurchschnittlicher Code - Manchmal sind Entwickler aufgrund des Drucks von Wettbewerbern / Zielen / Unternehmen / Benutzern gezwungen, Funktionen so schnell wie möglich live zu übertragen. Sollte das Bereinigen eines solchen schlechten Codes auch als lästige Pflicht angesehen werden (ohne Punkte zu geben)? Dieses Mal ist das Entwicklungsteam nicht schuld. Warum sollte also die Geschwindigkeit gesenkt werden, obwohl sie in solchen Fällen meistens zusätzliche Stunden investieren?
Ich glaube, dass alle oben genannten Arten von Aufgaben, wenn sie mit Bedacht ausgeführt werden, die Geschwindigkeit des Teams in Zukunft verbessern sollten. Aber wie sollten wir das Gleichgewicht halten, um die Geschwindigkeit des Teams aufrechtzuerhalten und die technischen Fehler zu bestrafen, die das Team macht, indem wir schlechte Entscheidungen treffen?
Die Frage ist ähnlich wie: Sollten technische Schulden als Feature oder als Aufgabe (oder als Fehler) geplant werden? , aber ich habe keine überzeugenden Antworten gefunden, die alle 4 Punkte abdecken, also poste ich es auf eine andere Art und Weise neu.
quelle
Antworten:
Kurze Antwort: Die Tilgung technischer Schulden ist eine lästige Pflicht. Sie bieten keine neuen Funktionen für Endbenutzer, sodass nicht darauf hingewiesen wird.
Offizielle Antwort:
Aus diesem Grund können Geschichten, die als Fehler und Aufgaben eingestuft sind, keine Schätzungen mit den Standardeinstellungen von PT zugewiesen werden. Ich denke jedoch auch, warum Sie diese Aufgaben nicht als Funktionen zählen sollten, nur um Punkte für sie zu erhalten.
Erstens denke ich nicht, dass Sie einen Geschwindigkeitsabfall als Strafe betrachten sollten: Es sind nur Informationen. Vielleicht war es etwas Natürliches, wie eine neue Person, der man beitreten musste, um zusätzliche Zeit mit dem Training zu verbringen. Vielleicht war es etwas Unerwartetes, das Ihre Kapazität reduzierte (z. B. Krankheit) oder zusätzlich konsumierte (z. B. "Stop the World" -Fehler). Vielleicht haben Sie die Funktionen aus irgendeinem Grund einfach nicht gut eingeschätzt. Daraus können Sie lernen. Oder vielleicht lag es daran, dass Sie sich als Team entschieden haben, die Tilgung einiger technischer Schulden vor der Bereitstellung neuer Funktionen zu priorisieren (und möglicherweise mehr Schulden zu machen).
Zweitens ist es nicht unbedingt ein Fehler, technische Schulden zu machen. Es ist nicht ideal, es versehentlich zu verursachen , aber wenn Sie sich entscheiden, z. B. das "schnelle und schmutzige" Ding jetzt in dem Wissen aufzubauen, dass Sie es später aufräumen müssen, zum Beispiel, damit Sie mehr Benutzerfeedback erhalten oder sich schwer tun können Frist, das ist eine bewusste Entscheidung, die Sie als Team getroffen haben und die in Ordnung ist.
Eine einfache Faustregel für die Frage, ob etwas eine Funktion sein soll, lautet: Interessiert es die Endbenutzer? Sie erwähnen die Verbesserung der Suchmaschinenoptimierung: Interessieren sie sich überhaupt dafür? Leistung, die ihnen vielleicht wichtig ist, aber andererseits möchten sie vielleicht lieber eine neue Funktion als das gleiche Material mit ein paar hundert Millisekunden weniger Ladezeit. Recherchiere: Frag sie, was sie wollen. Lassen Sie sich von ihnen helfen, Prioritäten zu setzen, für die Sie die Zeit des Teams am besten aufwenden können.
Möglicherweise entscheiden Sie, dass Ihre aktuellen Technologieentscheidungen Sie daran hindern, bestimmte Funktionen so effizient bereitzustellen, wie Sie möchten. In diesem Fall ist es durchaus sinnvoll, (erneut, absichtlich) Zeit damit zu verbringen, die gesamte oder einen Teil der Anwendung auf etwas Neues zu migrieren.
Hier stimme ich Ihnen absolut zu, aber bekommen Sie dann keine Punkte für diese Aufgaben, die doppelt gezählt werden? Wenn Sie die Arbeit erledigen , damit Sie später mehr Funktionen bereitstellen können, sollten Sie die höhere Geschwindigkeit sehen, nachdem Sie sie ausgeführt haben, und nicht, während Sie sie ausführen.
Außerdem sollten Dinge wie Codeüberprüfungen und grundlegendes Refactoring im Lieferprozess (z. B. der "Refactor" -Teil des TDD-Zyklus) bereits Teil Ihrer laufenden Arbeit sein und daher bereits Teil der Gesamtgeschwindigkeit des Teams sein.
Offenlegung : Ich bin ein Pivot und arbeite für Pivotal Labs in London, aber nicht im Tracker-Team.
quelle
Um konträr zu sein, behandeln wir Fehler und technische Schulden wie jedes andere PBI. Tatsächlich haben wir nicht einmal einen "Bug" -Typ. Alles ist ein PBI. Unser Auftragsbestand ist nach dem dem PBI zugewiesenen Geschäftswert geordnet. Infolgedessen wird einem bekannten Fehler mit Benutzerkontakt, der Probleme verursacht, ein hoher Geschäftswert zugewiesen, da Sie das Risiko eingehen, mit so etwas Geld zu verlieren, und dies wird wahrscheinlich eines der ersten Dinge sein, die getan werden. Auf der anderen Seite hat ein Fehler, der nicht wirklich große Auswirkungen hat und sich nicht auf das Endergebnis auswirkt, einen relativ niedrigen Geschäftswert und wird möglicherweise für eine Weile nicht behoben. Das ist eine wichtige mentale Mauer, die abgerissen werden sollte: Nicht jeder Fehler sollte behoben werden. Klingt nach Sakrileg, ich weiß, aber wenn der Aufwand für die Behebung des Fehlers größer ist als der geschäftliche Wert, den er behebt, dann ist der ROI negativ. Wenn Sie alles als PBI behandeln, haben Sie die Freiheit, diese Art von empirischen Entscheidungen zu treffen, ohne abgelenkt zu werden, nur weil es ein "Fehler" ist.
Ebenso spielt bei technischen Schulden immer noch ein geschäftlicher Wert eine Rolle. Einige technische Schulden können mit sehr geringen Kosten entstehen und langfristig bleiben, aber einige technische Schulden werden Ihr Geschäft im Laufe der Zeit töten und haben daher einen sehr hohen Geschäftswert. Der Schlüssel ist wieder zu erkennen, dass alles nur ein PBI ist. Alles geht in das Backlog und Sie arbeiten an Elementen in diesem Backlog basierend auf dem Wert, den sie dem Geschäft hinzufügen. Ob es sich um eine Funktion, einen Fehler oder eine technische Verschuldung handelt, spielt keine Rolle.
Dies hat auch den Vorteil, dass Sie Ihre Frage vollständig umgehen können. Da alles ein PBI ist, trägt alles zur Geschwindigkeit bei. Die Idee, Arbeiten zu machen, die nicht wirklich dimensioniert und in Ihrer Geschwindigkeit gezählt sind, ist für mich irgendwie verrückt. Sie erstellen im Grunde genommen ein riesiges Schwarzes Loch in Ihren empirischen Daten. Die Geschwindigkeit ist bereits eine ziemlich grobe Metrik. Sie basiert auf einer Schätzung, die auf noch mehr Schätzungen basiert. Fügen Sie eine Reihe variabler Arbeitsmengen hinzu, die nicht erfasst werden, und jetzt ist die Anzahl so gut wie bedeutungslos. Alles, was Ihr Team im Sprint macht, ist Teil Ihrer Geschwindigkeit.
quelle