Sono uno stagista di software e mi vengono assegnati bug da correggere oltre a funzioni da aggiungere al software. Quando aggiungo funzionalità, tutto funziona bene. Il mio problema è più con la risoluzione dei bug. Sto lavorando su un codebase estremamente ampio (con milioni di righe) con una documentazione scarsa (non ci sono commenti, tonnellate di numeri magici, accoppiamento stretto tra classi diverse, ecc.). L'unica documentazione fornita è un documento Word di 8 o più pagine. Ma mi sento ancora come se potessi fare un lavoro migliore con il bug fixing.
Darò un esempio di una situazione che ho riscontrato, che mi sento come se avessi potuto fare meglio in:
- Mi è stato assegnato un bug per correggere i calcoli di estensioni per un tipo specifico di oggetto (grafica computerizzata)
- Ho trovato il problema con il bug e il motivo per cui è stato causato. Poiché il programma popolava una struttura dati (array contiguo) con memoria che rappresentava un punto cartesiano 3D che apparentemente non avrebbe dovuto avere (pertanto questo punto verrebbe utilizzato nei calcoli di estensione).
- Il bug è stato effettivamente causato da questo. TUTTAVIA, un altro pezzo di codice (in una classe diversa) ha usato l'aritmetica del puntatore per ottenere questo punto e usarlo per un'altra funzione, per fare in modo che il mouse si agganci vicino a questo punto quando è stata abilitata una determinata funzione nel software. Tuttavia, da quando ho rimosso il punto, ho risolto il bug che mi era stato assegnato ma ha causato un altro bug nel software.
Che cosa posso fare per evitare che accadano cose del genere? Come posso migliorare? C'è qualche processo che mi manca?