C'è un eccellente libro che ho letto su questo argomento chiamato Perché i programmi falliscono , che delinea varie strategie per trovare bug che vanno dall'applicazione del metodo scientifico per isolare e risolvere un bug, fino al delta del debugging. L'altra parte interessante di questo libro è che elimina il termine "bug". L'approccio di Zeller è:
(1) Un programmatore crea un difetto nel codice.
(2) Il difetto causa un'infezione
(3) L'infezione si propaga
(4) L'infezione causa un errore.
Se vuoi migliorare le tue capacità di debug, consiglio vivamente questo libro.
Nella mia esperienza personale, ho trovato molti bug nella nostra applicazione, ma la gestione semplicemente ci spinge in avanti per ottenere nuove funzionalità. Ho sentito spesso "Abbiamo trovato questo bug da soli e il cliente non l'ha ancora notato, quindi lasciatelo fino a quando non lo fanno". Penso che essere reattivo contrario a proattivo nel correggere i bug sia una pessima idea come quando arriva il momento di mettere effettivamente una correzione, hai altri problemi che devono essere risolti e più funzioni che la gestione vuole fuori dalla porta al più presto, così sarai catturato in un circolo vizioso che può portare a una grande quantità di stress e bruciare e, infine, un sistema di difetti di guida.
Anche la comunicazione è un altro fattore quando vengono rilevati errori. Inviare un'e-mail o documentarla sul bug tracker va bene e bene, ma nella mia esperienza personale, altri sviluppatori trovano un bug simile e piuttosto che riutilizzare la soluzione che hai messo per sistemare il codice (come hanno dimenticato tutto su di esso ), aggiungono le loro versioni, quindi hai 5 diverse soluzioni nel tuo codice e sembra più gonfio e confuso come risultato. Quindi, quando correggi un bug, assicurati che alcune persone esaminino la correzione e ti forniscano un feedback nel caso in cui abbiano risolto qualcosa di simile e trovato una buona strategia per affrontarlo.
limist ha menzionato il libro The Pragmatic Programmer che contiene materiale interessante sulla correzione dei bug. Usando l'esempio che ho fornito nel paragrafo precedente, darei un'occhiata a questo: Software Entrophy , dove si usa l'analogia di una vedova spezzata. Se compaiono due finestre rotte, la tua squadra potrebbe diventare apatica nei confronti di risolverla, a meno che tu non prenda una posizione proattiva.