Myślę, że najlepszym sposobem podejścia do tego jest ustalenie, co naprawdę chcesz rozważyć błąd.
Wielu programistów nie uważa, że coś, co nie działa zgodnie z przeznaczeniem, nad którym obecnie pracują, nie jest błędem, ponieważ szczerze mówiąc, nie jest to błąd. Jeśli obecnie pracujesz nad czymś, a nadal ma wady, to konkretny błąd nie jest w rzeczywistości kompletny, więc nie ma żadnej wady. Odwrotna sytuacja dotyczy ukończonych prac, jeśli stwierdzisz, że coś jest kompletne i gotowe do testowania / wydania / produkcji, a później znajdziesz defekt w kodzie lub użyciu, to na pewno masz błąd.
Moja firma stosuje następującą metodologię, aby ustalić, kiedy błąd powinien zostać naprawiony:
Jeśli błąd jest krytyczny, jest dodawany do bieżącego sprintu związanego z tym produktem, z odpowiednim priorytetem. Zazwyczaj planujemy w około 10% dodatkowy czas, aby pozwolić na to w sprincie, a także mając dodatkowe rzeczy, których tak naprawdę nie planujemy ukończyć, ale jeśli nie mamy błędów lub coś zostało ukończone szybciej, niż się spodziewaliśmy, możemy wtedy kompletny.
Jeśli błąd nie jest krytyczny, po prostu dodajemy go do zaległości i zwykle uzupełniamy w następnym sprincie.
dlaczego jest to idealny przepływ, jest w nim oczywisty wyciek, a czasem rzeczy, które nie są „krytyczne” z punktu widzenia programowania, mogą wymagać natychmiastowego ukończenia, jeśli kierownictwo zdecyduje, że należy to zrobić wcześniej, niż nam się wydaje zakończony.
Na marginesie uważam, że najlepiej jest wybrać strukturę, a następnie trzymać się jej. Niektóre z największych strat w wydajności zaczynają się pojawiać, gdy zaczynasz robić rzeczy bez struktury. Gdy zaczniesz degradować swoją strukturę, bardzo łatwo będzie zjechać z góry.
To mogło przesadnie odpowiedzieć na twoje pytanie, ale to tylko moje przemyślenia na temat tego, jak należy sobie z tym poradzić.