Jak zarządzać zaległościami modułu do śledzenia problemów

10

Używamy Traca od kilku lat, a nasza lista „aktywnych biletów” wzrosła do prawie 200 pozycji. Należą do nich błędy, które mają zbyt niski priorytet i są zbyt skomplikowane, aby je teraz naprawić, żądania funkcji, które zostały odroczone, problemy, które nigdy tak naprawdę nie generowały skarg, ale wszyscy zgadzają się, że któregoś dnia należy je naprawić, planowane refaktoryzacje kodu i inne nieścisłości projektowe chcę stracić poczucie itp.

W rezultacie, przy prawie 200 z tych problemów, lista jest prawie przytłaczająca; nie jest już przydatny jako źródło tego, nad czym należy teraz pracować.

Jaki jest najlepszy sposób śledzenia tego rodzaju problemów?

Częścią problemu jest to, że niektóre z tych problemów mają tak niski priorytet, że mogą nigdy nie zostać rozwiązane. Nienawidzę tracić kontaktu z tymi przedmiotami (podobnie jak nie chcę wyrzucać czegoś z domu, na wypadek, gdybym kiedyś tego potrzebował); czy muszę je wyrzucić niezależnie (oznaczając je jako wontfix) i zakładam, że mogę je znaleźć w przyszłości, jeśli będę ich potrzebować?

Josh Kelley
źródło
200 za cały zespół rozśmieszyło mnie. :-) Mam tylko 120 otwartych problemów, z których większość nigdy nie przyjdę do naprawy! - Podsumowując: świetne pytanie! Już miałem zapytać o to samo.
Martin Ba

Odpowiedzi:

6

Najpierw poproś każdego programistę, aby spojrzał na każdy z elementów i przejrzał / przetestował każdy element, aby sprawdzić, czy nadal występuje problem (najlepiej jest podzielić je między osoby). Następnie zamknij te, które nie są już problemem lub zostały już zajęte innymi działaniami na rzecz rozwoju.

Teraz upewnij się, że każdy z nich jest oznaczony jako duży, średni lub mały wysiłek rozwojowy. Jest to bardzo przybliżony szacunek, który został użyty w celu łatwiejszej kategoryzacji projektów i pomocy w zebraniu różnych rzeczy. Jeśli wszystko jest już oszacowane, to pomoże, ale nie rozłączaj się w godzinach. Po prostu idź z szybką kontrolą jelit. Często działa to tak, aby programiści znaleźli się w pokoju i po prostu przejrzał każdy element i wykorzystał wysiłek, który większość ludzi uważa za odpowiedni.

Przejrzyj każdą z trzech grup wysiłku i oznacz każdy element w grupie z priorytetem Krytyczna, Wysoka wartość biznesowa, Wysoka wartość techniczna, Średnia wartość, Niska wartość i Nigdy nie naprawi.

W tym momencie naprawdę znasz listę na wylot i naprawdę rozumiesz pracę związaną z twoimi zaległościami i możesz naprawdę zacząć podejmować decyzję, co zrobić z przedmiotami. Wyjmij wszystkie elementy oznaczone jako nigdy nie naprawiające i zarchiwizuj je z zaległości.

Teraz, gdy planujesz przejść do następnej wersji, możesz wykorzystać elementy o kluczowym znaczeniu i najważniejsze jako rdzeń swojej wersji. Przejrzyj listę elementów o średnim i niskim priorytecie i dodaj wszystkie, nad którymi można pracować w tym samym czasie, co inne elementy na liście, ponieważ programiści będą już pracować w tej części systemu.

Lista elementów oznaczonych jako średni lub niski priorytet może być wykorzystana jako lista rzeczy, nad którymi ludzie powinni pracować, gdy mają trochę wolnego czasu lub jako szkolenie dla nowych pracowników. Zawsze uważam, że miło jest mieć jedną osobę w zespole podczas każdej iteracji, która pracuje nad tymi elementami i pomaga reszcie zespołu w razie potrzeby. W ten sposób nadal kończysz prace nad bieżącą iteracją, ale masz osobę elastyczną i która może pomóc gasić pożary, gdy zajdzie taka potrzeba, ale zajmuje się problemami, na które normalnie nie zwraca się uwagi.

Jedną z rzeczy, które uznaliśmy za fajne, było to, że między każdą iteracją mieliśmy krótki 2-tygodniowy okres, w którym cały zespół pracował tylko nad przedmiotami, które zostały oznaczone niewielkim wysiłkiem rozwojowym. Skoncentrujemy się na zamknięciu dużej liczby biletów w krótkim czasie.

Amy Patterson
źródło
3

Czy Trac ma ustawienie priorytetu? Coś jak 1 dla głównych osób zatrzymujących show i 5 lub więcej dla rzeczy, które byłyby przyjemne kiedyś zrobić?

Jeśli możesz sortować według priorytetu, na razie możesz zignorować rzeczy o niższym priorytecie.

David Thornley
źródło
1
Wszystko, co jest na poziomie „miło kiedyś to zrobić” nigdy nie zostanie zrobione. Wyciągnij to.
Aaron McIver
1
@Aaron: Wolę to zachować na wypadek, gdybyśmy chcieli kiedyś podnieść priorytet. Najwyraźniej nigdy nie zostanie to zrobione z takim priorytetem, chyba że programiści będą mieli za dużo czasu (i już stworzyli klienta Gopher dla oprogramowania i dostosowali go do haiku).
David Thornley,
Trac ma ustawienie priorytetu, chociaż zgromadziliśmy wystarczającą ilość zaległości, o których właśnie zdecydowałem, że nadal potrzebujemy podejścia „wyciągnij to”.
Josh Kelley,
3

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

Połóż je na poddaszu, poczekaj rok, a następnie przenieś dom. Tak robię.

Poważnie, jeśli nie zamierzasz tego naprawić, zapomnij o tym. Zobacz Extreme Programming.

Ale dla przedmiotów o kodzie. Możesz umieścić je w systemie przeglądu kodu, jako drobne spostrzeżenia. Ten system można skonfigurować w celu oznaczania problemów podczas edytowania tej części systemu. Odkryłem, że to nie działa jako współpracownicy, myślałem, że tego się spodziewam i nie odnosiłem się do uwag przeglądowych.

Jedynym sposobem na to jest bezwzględne ustalanie priorytetów. Zrób to teraz lub nie przejmuj się.

ctrl-alt-delor
źródło
czy możesz wyjaśnić, w jaki sposób 5s odnosi się do śledzenia błędów sw, artykuł w Wikipedii wydaje się koncentrować na produkcji
jk.
@jk wszystko jest połączone. Możemy uczyć się od wszystkiego. Lean Manufacturing i zwinne tworzenie oprogramowania to prawie to samo. Z jednym ważnym wyjątkiem. W produkcji brak powtarzalności jest wadą, w projekcie powtarzanie jest wadą (przestań zapisywać ten sam kod w kółko). Chociaż istnieją części procesu, które należy powtórzyć (proces).
ctrl-alt-delor
2

To nie jest tak naprawdę pytanie kontroli wersji, ale kwestia przepływu pracy i priorytetu biznesowego. Śledzenie rzeczy, o których wiadomo, że są błędne, jest dobrym pomysłem, nawet jeśli jest mało prawdopodobne, że „kiedykolwiek” zostaną naprawione, ma kilka zalet. Po pierwsze, oznacza to, że QA (jeśli masz osobny zespół QA) wie, że nie powinien rejestrować nowego błędu. Kolejną korzyścią jest to, że jeśli pojawi się nowy problem, ale jego podstawowa przyczyna wynika z jednego z tych problemów „wiemy o tym, ale ma niski priorytet”, każda analiza poprawki jest już śledzona - co może sprawić, że nowsza, wyższa - priorytetowa wersja błędu znacznie łatwiej naprawić.

Innym aspektem tego jest to, że może istnieć pewna swoboda, aby poradzić sobie z niektórymi z tych prac, teraz lub w przyszłości. Może któregoś dnia dostaniesz stażystę i możesz przypisać im kilka prostszych jako wprowadzenie, aby zmoczyć stopy w bazie kodu.

Jeśli programiści uważają, że dobrze byłoby naprawić te problemy - na przykład, jeśli reprezentują dług techniczny, i ułatwiłoby współpracę z bazą kodów, aby je naprawić, ale nie mają one wartości biznesowej - warto o tym porozmawiać z interesariuszami biznesowymi i sprawdzanie, czy można osiągnąć porozumienie w sprawie sporadycznego pozyskiwania tych elementów zaległości. Widziałem zespoły scrumowe, takie jak blokowanie 3-5 punktów prędkości na sprint dla „technicznych zaległości” - może to wymagać pewnego politycznego rozdrażnienia w zależności od relacji zespołu programistów do interesariuszy biznesowych, ale widziałem działa bardzo dobrze.

autofag
źródło
1

To naprawdę zależy od kilku rzeczy.

  1. Jak duży jest zespół: Jeśli zespół jest wystarczająco duży, możesz przypisać bilety w sposób, który pozwoli na ukończenie przedmiotów o niższym priorytecie.
  2. Jak często robisz wydania: Jeśli cykl wydawania jest wystarczająco długi, możesz uciec od dodawania kolejnych rzeczy lub wstrzymywania się z wydaniem, dopóki wszystkie bilety nie zostaną rozwiązane.
Woot4Moo
źródło