Penso che il modo migliore per affrontarlo sia quello di determinare prima cosa vuoi veramente considerare un Bug.
Molti sviluppatori non considereranno qualcosa che non funziona come previsto su cui stanno attualmente lavorando come un bug, perché onestamente non è un bug. Se al momento stai lavorando a qualcosa e presenta ancora dei difetti, il bug specifico non è effettivamente completo, quindi non esiste un difetto reale. L'inverso si applica al lavoro completato, se hai stabilito che qualcosa è completo e pronto per il test / rilascio / produzione e in seguito trovi un difetto nel codice o nell'uso, allora hai sicuramente un bug.
La mia azienda utilizza la seguente metodologia per determinare quando un bug deve essere corretto:
Se il bug è critico, viene aggiunto allo sprint corrente relativo a quel prodotto, con la priorità appropriata. In genere prevediamo circa il 10% di tempo in più per consentire questo in uno sprint, oltre ad avere le cose extra che in realtà non prevediamo di completare, ma se non abbiamo bug o qualcosa è stato completato più velocemente di quanto ci aspettassimo, allora completare.
Se un bug non è critico, semplicemente lo aggiungiamo al backlog e normalmente lo completiamo nel prossimo sprint.
perché questo è il flusso ideale, c'è qualche ovvia perdita in esso, e talvolta le cose che non sono "critiche" dal punto di vista della programmazione potrebbero dover essere completate immediatamente se la direzione decide che deve essere completato prima di quanto pensiamo dovrebbe essere completato.
A parte questo, penso che la cosa migliore da fare sia scegliere una struttura e poi attenersi ad essa. Alcune delle maggiori perdite per la produttività iniziano a verificarsi quando inizi a fare cose senza struttura. Una volta che inizi a degradare la tua struttura, è molto facile andare in discesa.
Ciò potrebbe aver risposto eccessivamente alla tua domanda, ma quelli sono solo i miei pensieri su come queste cose dovrebbero essere gestite.