Zakładając, że jego już przetestowany (a zwłaszcza jeśli wydany) kod jest absolutnie.
Istnieje wiele powodów:
Pamięć - naprawdę mało prawdopodobne jest, aby system zapomniał o błędzie, jakikolwiek programista.
Metryki - Liczba znalezionych, zamkniętych błędów i poświęcony czas mogą być dobrymi, łatwymi do przechwycenia metrykami, informującymi o postępie jakości kodu
Pilność - może to wydawać się najważniejszą rzeczą na świecie dla programisty, jednak czas poświęcony na naprawienie tego problemu można lepiej poświęcić na coś, czego użytkownicy końcowi chcą najpierw (patrz także pamięć).
Duplikacja - być może została już zauważona i jest sprawdzana / naprawiana przez kogoś innego. Ewentualnie być może naruszył zasadę pilności i został odłożony. Oczywiście fakt, że znalazłeś go ponownie, nie tylko oznacza, że nie należy tego robić, może również oznaczać, że (w miarę pojawiania się) jest teraz bardziej pilne do naprawienia.
Analiza przyczyn źródłowych - najłatwiejszym do naprawienia błędem jest ten, którego nigdy nie było. Być może zespół powinien przyjrzeć się temu błędowi, aby dowiedzieć się, jak to się stało. Jest to zdecydowanie nie karanie odpowiedzialnego (co nigdy nie pomaga), ale ustalenie, w jaki sposób można uniknąć tej sytuacji w przyszłości.
Szersza analiza wpływu - najtańszym znalezionym błędem jest ten, o którym wiedziałeś, zanim go znalazłeś. Patrząc na ten błąd (szczególnie po przeprowadzeniu analizy przyczyn źródłowych), można szybko stwierdzić, że problem ten może występować w innych miejscach kodu. W rezultacie zespół może zdecydować się go znaleźć, zanim podniesie brzydką głowę w bardziej zawstydzającym momencie.
Ilość czasu poświęcanego na te (jeśli w ogóle) zależy w dużej mierze od dojrzałości i poziomu jakości kodu. Analiza przyczyn źródłowych prawdopodobnie będzie przesadą dla małego zespołu pracującego nad kodem demonstracyjnym, ale duży zespół zajmujący się krytycznym rozwojem biznesu prawdopodobnie musi nauczyć się lekcji skutecznie i wydajnie.
Z doświadczenia wynika, że istnieją dwa ogólne powody, dla których programiści unikają używania tego narzędzia:
- Narzędzie do obsługi błędów i / lub proces są postrzegane jako zbyt ciężkie dla rozwoju
- Dla programistów wyzwanie naprawienia błędu jest bardziej interesujące niż rzeczy, nad którymi obecnie pracują.
Punkt 1 oznacza, że może być wymagany lepszy / prostszy system; lub alternatywnie bardziej uzasadnione może być uzasadnienie istniejącego systemu.
Punkt 2 powinien być użytecznym znakiem ostrzegawczym dla lidera ds. Rozwoju przed bieżącymi przydziałami zadań.