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.
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.
Odpowiedzi:
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 .
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.
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?
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.
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.
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:
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ć?”.
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.
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.