Dlaczego potrzebujemy zarówno Priorytetu, jak i ważności?

11

Rozumiem, co określają, ale czy naprawdę warto przypisać je do znalezionych problemów? To znaczy albo trzeba to naprawić szybko, albo nie.

Wiem, jak je ustawiać, kategoryzować itp. Wiem, że IEEE / ISO tego wymaga. Po prostu nie rozumiem dlaczego.

Pietross
źródło
Hmm, myślę, że błąd, który mógłby uszkodzić dane, jest poważniejszy niż coś, co jest po prostu denerwujące, jak powiedzmy, że ładowanie trwa zbyt długo. Oba powinny zostać naprawione, ale te o większym negatywnym wpływie powinny zostać naprawione w pierwszej kolejności.
thorsten müller,
Nie, jak napisałem, wiem, czym one są i jak je ustawić. Po prostu nie widzę korzyści.
Pietross,
W większości przypadków nie. Ale zawsze są skrajne przypadki, w których sensowne jest rozdzielenie tych dwóch. To, czy warto zachować separację dla każdego problemu, aby zaspokoić te rzadkie okazje, to inna sprawa.
biziclop,
1
Możesz mieć błąd interfejsu użytkownika, który tak naprawdę nie wpływa na użyteczność aplikacji ( niski poziom ważności ), ale ma wysoki priorytet, ponieważ jest brzydki. Możesz mieć błąd, który całkowicie powoduje awarię aplikacji ( wysoki stopień ważności ), ale ma niski priorytet, ponieważ warunki do jej uruchomienia są równe 1 na milion i praktycznie pod względem praktycznym nigdy się nie zdarzy (ignoruje to fakt, że jeden-w milion szans pojawia się dziewięć razy na dziesięć ).
Binary Worrier,

Odpowiedzi:

24

Jest absolutnie możliwe, aby te wartości się różniły. Jeśli masz do sprzedania ważną agencję rządową, która wymaga wysokiej wydajności, ale nigdy nie użyje modułu X, to rozsądne jest naprawienie drobnego błędu dostępności bazy danych wcześniej niż poważnego błędu w module X. Zasadniczo przyczyny techniczne nie są jedynym czynnikiem prowadzącym działalność związaną z oprogramowaniem .

Kilian Foth
źródło
Dokładnie: Priorytet wskazuje wartość biznesową i jest wynikiem zarządzania projektem. Ważność wskazuje na wpływ i jest wynikiem błędów. Każde zadanie może mieć priorytet, ale np. Nowe funkcje nie mają istotności. Poza krytycznymi dla bezpieczeństwa błędami o wysokim poziomie istotności, głupotą byłoby pozwolić, aby sama dotkliwość decydowała o priorytetach, lub ludzie byliby niewłaściwie zachęcani do zawyżania wagi problemu.
amon
5
Myślę, że ważne jest to, że tylko jeden środek (priorytet) bezpośrednio kontroluje porządek rozwoju. Jak przydatna jest dla zespołu dodatkowa „dotkliwość” jako część opisu defektu, jest wyjątkowo opioniczna: niektórzy mogą uznać ją za pomocną, inni jak @arnaud uważają, że jest to „biurokracja” - oba punkty widzenia mogą być uzasadnione.
Doc Brown,
4
Wysoki priorytet, niski priorytet: strona docelowa Twojej aplikacji, widziana przez miliony użytkowników miesięcznie, ma literówkę w nazwie Twojej firmy. Niski priorytet, wysoki wskaźnik ważności: System powoduje awarię 25% czasu podczas uruchamiania aplikacji wycofanej w przyszłym tygodniu.
Gort the Robot
2
Istotność można na ogół ustalić na podstawie reguł przeprowadzanych przez testerów automatycznych i testujących na żywo. Priorytet może być oceniany tylko subiektywnie przez firmę.
Gort the Robot
3

Błędy daty i godziny

Błąd: przetwarzanie na koniec roku całkowicie uszkodzi bazę danych. To wyraźnie poważny błąd.

Data: 15 grudnia. Błąd ma bardzo wysoki priorytet.

Data: 1 lutego. Błąd ma niski priorytet.


Przypadkowe uruchomienie błędu rakietowego

Błąd: oprogramowanie sterujące ICBM dziwi, gdy od 28 lutego do 1 marca w latach dzieli się przez 4. Rezultatem jest niezbyt zalecane uruchomienie.

To prawie tak poważny błąd, jaki może istnieć. Priorytet jest jednak bardzo niski - czy istnieje jakakolwiek realna szansa, że ​​oprogramowanie będzie używane po uruchomieniu warunku?


Mimowolne „złe” słowa na ekranie

Błąd: wiadomości przepełniające swoją przestrzeń na ekranie powodują niezamierzone wulgarne odniesienie do pojawienia się Boba. (Świat rzeczywisty: mieliśmy ludzi pracujących w dziale „Final Ass”. „Ass” = „Assembly”.)

Niestety, jutro robisz prezentację, w której uzyskanie sprzedaży jest dla firmy make-or-break. Robisz prezentację komuś o imieniu „Bob”. Ciężkość: bardzo niska. Priorytet: bardzo wysoki.

Loren Pechtel
źródło
Powiązane z błędami „przepełnienia” i „daty i czasu”, o których wspominasz - możesz cieszyć się fazą błędu księżyca
0

Napisałeś:

To znaczy albo trzeba to naprawić szybko, albo nie.

To jest poprawne. Jeśli jednak jesteś podobny do większości firm, twoje zasoby są ograniczone. Albo masz za mało ludzi, aby naprawić wszystkie problemy, albo nie masz wystarczająco dużo czasu.

Biorąc pod uwagę fakt, że błąd wymaga albo szybkiego naprawienia, albo nie, a ty masz wiele błędów, które wymagają naprawy, „priorytet” odpowiada na pytanie „które z nich naprawić jako pierwsze”?

Z drugiej strony istotność jest wskaźnikiem używanym przez osobę ustalającą priorytet. Z punktu widzenia dewelopera dotkliwość jest kwestią sporną. Z punktu widzenia osoby przypisującej pracę dotkliwość jest ważną informacją, która pomaga w podejmowaniu decyzji.

Oczywiście wszystko to jest bardzo ogólną informacją. Jeśli jesteś zespołem z niemożliwie długimi zaległościami w zakresie błędów, priorytet i dotkliwość oznaczają coś zupełnie innego niż w przypadku zespołu, który ma prawie pustą bazę błędów.

Jeśli pracujesz w zespole, w którym „wysoki poziom ważności == wysoki priorytet”, to nie ma znaczenia i nie potrzebujesz obu wskaźników. Na koniec są to tylko narzędzia. Twój zespół musi zdecydować, jak z nich korzystać. Dla twojego zespołu użycie obu może nie mieć sensu.

Bryan Oakley
źródło
0

IMHO, nadanie priorytetu i dotkliwości jest po prostu biurokracją.

W praktyce potrzebujesz tylko jednej miary „ważności”. Często stosuje się w tym celu priorytet, a dotkliwość jest następnie stosowana jako termin techniczny, taki jak „high = awaria systemu lub czyni go bezużytecznym”, „medium = zachowanie błędne, potencjalnie szkodliwe”, „low = uciążliwość, irytujące, ale nieszkodliwe”

Zwykle priorytet idzie w parze z surowością. Kilka przeciwnych przykładów to „uciążliwość, w której wszyscy zawsze narzekają” lub „awaria, która miała miejsce raz w egzotycznym otoczeniu”.

... ale ostatecznie, jako programista (lub menedżer itp.), musisz tylko wiedzieć, w jakiej kolejności powinieneś naprawiać / ulepszać rzeczy, to wszystko. Więc wystarczy jeden środek.

Potrzeba priorytetu jest oczywista: wiedzieć, w jakiej kolejności należy zgłaszać błędy. Drugim, jak zwykle IMHO, jest biurokracja. Dlaczego tego potrzebujesz? Najwyraźniej jest to bezużyteczne do sortowania, ponieważ robi to priorytet. A konsekwencje (opis dotkliwości) zostały opisane w raporcie o błędzie.

Uważam nawet, że jest szkodliwy, ponieważ sprawia, że ​​mniej jasne jest, który błąd jest ważniejszy:

  • Niektórzy mogą myśleć, że błąd „krytyczny” ma wyższy priorytet niż błąd „wysoki priorytet”.
  • Niektórzy użytkownicy zgłaszający błąd mogą mylić wagę i priorytet
  • ... w sumie raczej wprowadza zamieszanie co do kolejności, w jakiej błędy powinny być rozwiązywane
Dagnele
źródło
1
A czy programiści to jedyni ludzie, którzy się liczą?
biziclop,
2
@biziclop Nie, masz rację, to było moje złe sformułowanie. Dotyczy to wszystkich: to, co się liczy, dla menedżerów itp., To, co należy naprawić w pierwszej kolejności, a co mniej ważne. Do tego wystarczy jeden środek.
Dagnelies
1
Cóż, jest to złe z punktu widzenia zarządzania ryzykiem - priorytet = dotkliwość * wskaźnik występowania. Czy literówka w pierwszym wieku ma niższy priorytet niż fatalna awaria serwera, która zdarza się, gdy nazwisko użytkownika przekracza 46 znaków?
Pietross,
1
@Pietross: cóż, przypiąłeś to: który z nich powinien zostać rozwiązany jako pierwszy? Awaria serwera o niskim priorytecie czy uciążliwość o wysokim priorytecie? Jak ustalasz priorytety? Kto wzywa ten wyrok? Wszyscy patrzą na listę? Gdy używasz tylko jednego działania priorytetowego, priorytetem jest jeden raz, a następnie gotowe. Wpływ i dotkliwość zostały opisane w raporcie o błędzie.
Dagnelies
Rzecz „dotkliwości” polega na tym, że można dość łatwo powiedzieć „crash = high, literówka = low”. Trzeba pamiętać, że literówka, która pozostawia „o” poza słowem „liczyć” na stronie głównej, ma wyższy priorytet do naprawienia niż strona, która w ogóle nie chce się załadować.
Gort the Robot
0

Oprócz innych odpowiedzi, rozważ ten scenariusz: błąd A zajmie 30 minut, aby naprawić i ma „niski” poziom ważności; błąd B może potrwać ponad 2 tygodnie i mieć „wysoki” poziom ważności. Ponadto błąd B może wymagać wielu dyskusji i koordynacji w zespole twórców i być może poza zespołem; błąd A może zostać natychmiast naprawiony przez pojedynczego programistę. Można ustawić wyższy priorytet dla błędu A.

Oczywiście „dotkliwość” i „priorytet” można interpretować na różne sposoby.

W małym narzędziu do śledzenia błędów, które stworzyłem na własny użytek, zamiast tego wolałem „trudność” i „priorytet”, gdzie problemy o wysokim poziomie ważności zawsze miałyby najwyższy priorytet, i mogłem zdecydować się na opóźnienie pracy nad nimi w zależności od trudności.

Jedną rzeczą, która mi się nie podoba w „dotkliwości” jest to, że dotyczy ona tylko błędów, a nie funkcji. Lepiej mieć jedną listę wszystkich problemów uporządkowanych według priorytetów i trudności, ponieważ bardziej bezpośrednio pomaga decyzja „nad czym będę dalej pracować?”.

Deszczowy
źródło
0

Zaprojektowałem i wdrożyłem procesy w firmie produkującej oprogramowanie, które uzyskały certyfikat ISO9001: 2007. Od 2007 roku wprowadzono aktualizacje tego standardu, więc mogą istnieć dodatkowe wymagania, których nie jestem świadomy ... jednak:

Norma ISO9001 dotyczy upewnienia się, że Twoja firma projektuje i wdraża procesy z pętlami sprzężenia zwrotnego w celu usprawnienia procesu w przypadku zidentyfikowania wad produktu i procesu.

Podczas fazy projektowania wymagania koncentrują się na tym, czy proponowane rozwiązanie, jeśli zostanie prawidłowo wdrożone, faktycznie rozwiązałoby wytyczne projektowe (walidacja) i sprawdzenie, czy wdrożenie rzeczywiście zostało wdrożone bez wad (weryfikacja)

W pętli sprzężenia zwrotnego, gdy defekty zostaną zidentyfikowane, nie wystarczy, że zostaną zarejestrowane. Wadę należy również ocenić pod kątem dotkliwości, a poprawki należy traktować priorytetowo.

Kluczowe jest to, że sposób, w jaki Twoja firma decyduje się ocenić jej wagę i podejmować decyzje dotyczące priorytetu, nie jest określony przez normę ISO. Decyzje i dokumentacja są kwestią handlową i zarządczą.

Ponieważ jest to wymagane jako standard, każda certyfikowana firma będzie miała proces oceny stopnia uszkodzenia i proces określania priorytetu pracy w celu usunięcia błędu. Są to zdecydowanie dwie osobne decyzje, które należy podjąć.

Istotność błędu to tylko jeden punkt danych. Wpływ na klienta To kolejny punkt danych. Podejmowane są również działania naprawcze, wady wieku, pozostały okres użytkowania produktu oraz wszelkie inne czynniki, które firma decyduje się uwzględnić w podejmowaniu decyzji. Jednej rzeczy nie należy zapisywać jako „obecna wada kierownika produktu w celu podjęcia decyzji o pierwszeństwie”, ponieważ określa ona jedynie uprawnienia do podjęcia decyzji i nie określa procesu, jaki podejmują w celu podjęcia decyzji.

Preferuję priorytetyzację, która jest tendencyjna do zapewniania wysokiego wskaźnika małych i ważnych zmian, ponieważ wydaje się, że zapewnia to najlepszy wzrost ogólnej niezawodności produktu. Oznacza to, że poważny błąd, którego naprawienie zajmie dużo pracy, wymagałby podzielenia pracy na mniejsze części, aby uzyskać wystarczający priorytet do zaplanowania.

Michael Shaw
źródło
-3

Z powodu silnego zróżnicowania priorytetu i ważności:

Prosty przykład. Wyobraź sobie, że masz wąskie miejsce, które zapobiega skalowaniu twojego systemu - jakiś algorytm ma złożoność O (N ^ 3), gdzie N jest liczbą sklepów klienta. Klient twierdzi, że w przyszłym roku otworzy 200 nowych sklepów, a niezbędne obliczenia (dystrybucja towarów, planowanie transportu itp.) Nie zostaną ukończone na czas. Ale obecnie ten klient ma tylko 30 sklepów, a zasoby są wystarczające. Zadanie optymalizacji tego algorytmu (do O (N ^ 2) lub lepszej) jest zdecydowanie ważne (stracisz klienta, jeśli nie zostanie zaimplementowany), ale prawdopodobnie nie jest pilne: masz kilka miesięcy na wdrożenie nowego algorytmu.

Przykład 2: aplikacja ulega systematycznemu zawieszaniu, ale ta wersja przestaje być używana w ciągu kilku dni z powodu aktualizacji lub migracji. Naprawa jest pilna, ponieważ awarie naprawdę wpływają na komfort użytkownika, ale mają niewielkie znaczenie.

Oczywiście oba parametry są ujednolicone przy użyciu niektórych wskaźników (formalnych lub nieformalnych) w celu stworzenia krótkoterminowego planu pracy, ponieważ ten ostatni jest jednowymiarowy (sekwencja zadań). Ale w perspektywie długoterminowej nie zostaną one zjednoczone.

Netch
źródło