Ho chiesto ad alcuni colleghi cosa potrebbe accadere e hanno detto che se un bug non ha quel livello di priorità, è molto raro che il bug riceva l'attenzione degli sviluppatori, il che ha davvero senso
In realtà, se me lo chiedi, non lo è. Più livelli (usati) di priorità, più informazioni hai. Se effettivamente hai solo una priorità, è la stessa cosa di non avere alcuna priorità.
E poiché hai ancora lo stesso numero di bug da affrontare e la stessa quantità di ore di lavoro in cui farlo, ne consegue che verrà usato qualche altro euristico, possibilmente quello nullo - "primo arrivato, primo servito". E quindi ora hai una metrica di priorità dei bug, tranne che è l'ora di arrivo e non è più sotto il tuo controllo.
Può essere un sintomo di risorse insufficienti allocate alla correzione dei bug (ci sono alcune politiche come " Nessuna nuova funzionalità fino a quando i bug non vengono corretti " che possono aiutare lì. Joel approva ; la comprensione dei limiti e delle conseguenze è una decisione aziendale ).
In un progetto in cui ho lavorato, i bug in arrivo sono stati accumulati in un "buffer senza priorità" e ogni lunedì verifichiamo l'elenco dei bug, stimiamo la difficoltà (una stima molto approssimativa; il più delle volte inseriamo semplicemente "Media") e ordinali per tempo disponibile. Ciò tendeva a sfogliare l'elenco di bug noiosi, poco interessanti o pensati per essere duri; per compensare ciò, i supervisori e il marketing avevano un certo numero di crediti a settimana che potevano spendere per superare la priorità dei bug preferiti e venivano rimborsati per i bug non risolti (questo poneva un limite su quanto un bug disprezzato dallo sviluppatore poteva essere ritardato) .
È stato anche possibile unire, annullare e dividere i bug; Ricordo un modulo che era così irrimediabilmente imperfetto che abbiamo affondato una ventina o trenta segnalazioni di bug in un singolo "riscrivi questa cosa da zero", che è stato quindi suddiviso in "dichiarare chiaramente gli input e gli output della cosa miserabile", "scrivere test per garantire che gli ingressi e le uscite corrispondano alle specifiche "e così via. L'ultimo oggetto era "stampare il vecchio codice su carta riciclata, portarlo sul prato e dargli fuoco" (lo abbiamo fatto anche noi. Ricordo quanto fosse bello. Facevamo a turno l'elogio; era abbastanza esilarante ).
Dopo un po 'di contrattazioni, abbiamo avuto la lista delle cose da fare della settimana, che è stata divisa in "farà", "potrebbe fare" e "non si può fare" che è stata messa in discussione alla prossima settimana. È qui che sono arrivate alcune ulteriori contrattazioni: avevamo detto cinquanta ore da assegnare ai bug ed eravamo sicuri al 95% di sistemare i primi venti. La direzione voleva fortemente che venisse corretto un bug ventunesimo e non gli rimanessero crediti; offriremmo quindi di scambiare quel bug con uno nella lista "Lo farò", o qualcuno direbbe "Fammi uscire dalla sottostruttura di FooBazFeature per un paio di giorni e lo farò", o diremmo "Abbiamo bisogno di più manodopera".
Il sistema non soddisfaceva nessuno, davvero, ma questo era ritenuto (almeno tra gli sviluppatori) un buon segno.
Alcuni ulteriori schemi negativi che sono emersi sono stati il "Wishful Thinking" da parte dei gestori ("Hai dichiarato che il bug 57212 richiede otto ore. Questo è inaccettabile. Rendilo quattro") e il "Debug di Fiat" ("Fai quello che vuoi ma questi quaranta bug devono essere corretti prima della grande demo della prossima settimana. Non puoi avere più tempo, non puoi avere più persone "). Anche la sindrome del pugile ("Lavorerò di più"), che tendeva a funzionare molto bene per un breve periodo , ma di solito portava uno sviluppatore ad andare fuori di testa o a partire per pascoli più verdi.