Perché abbiamo bisogno sia della priorità che della gravità?


11

Capisco cosa determinano, ma è davvero utile assegnarli a problemi rilevati? Voglio dire, è necessario ripararlo rapidamente o no.

So come impostarli, classificarli, ecc. So che IEEE / ISO richiedono di farlo. Non vedo proprio il perché.


Hmm, penso che un bug che danneggi i dati sia più grave di qualcosa che è solo fastidioso come dire che alcune funzionalità impiegano troppo tempo a caricarsi. Entrambi dovrebbero essere corretti, ma quelli con un impatto negativo maggiore dovrebbero essere corretti per primi.
Thorsten Müller,

No, come ho scritto, so cosa sono o come impostarli. Semplicemente non vedo il beneficio.
Pietross,


Nella maggior parte dei casi, no. Ma ci sono sempre casi limite in cui ha senso separare i due. Se vale la pena mantenere la separazione per ogni problema solo per soddisfare quelle rare occasioni è un'altra questione.
biziclop,

1
Puoi avere un bug dell'interfaccia utente che non influisce davvero sull'usabilità delle app ( bassa gravità ), ma è una priorità perché è brutta. Puoi avere un bug che blocca completamente l'app ( severità elevata ) ma ha una bassa priorità perché le condizioni per realizzarlo sono una su un milione e in tutti i termini pratici non accadranno mai (questo ignora il fatto che one-in un milione di possibilità aumentano nove volte su dieci ).
Binary Worrier,

Risposte:


24

È assolutamente possibile che questi valori differiscano. Se hai una vendita da fare a un'importante agenzia governativa che richiede alte prestazioni ma non utilizzerà mai il modulo X, allora ha molto senso commerciale correggere un errore minore di disponibilità del database prima di un grave errore nel modulo X. In sostanza, tecnici ragioni non sono l'unico fattore quando si esegue un software di business .


Esatto: la priorità indica il valore aziendale ed è il risultato della gestione del progetto. La gravità indica l'impatto ed è il risultato di bug. Ogni attività può avere una priorità, ma ad esempio le nuove funzionalità non hanno una gravità. A parte i bug critici per la sicurezza ad alta severità, sarebbe sciocco lasciare che la severità dettasse da sola le priorità, o le persone sarebbero incentivate erroneamente a sopravvalutare la gravità del loro problema.
amon,

5
Penso che l'importante sia che solo una misura (la priorità) controlli direttamente l'ordine di sviluppo. L'utilità di una squadra di trovare un'ulteriore "severità" come parte della descrizione di un difetto è estremamente opionata: alcuni potrebbero trovarlo utile, altri come @arnaud pensano che sia "burocrazia" - entrambi i punti di vista potrebbero essere ragionevoli.
Doc Brown,

4
Alta priorità, bassa gravità: la pagina di destinazione della tua applicazione, vista da milioni di utenti al mese, ha un refuso nel nome della tua azienda. Bassa priorità, Alta gravità: il sistema si arresta in modo anomalo il 25% delle volte all'avvio per un'applicazione che verrà ritirata la prossima settimana.
Gort the Robot il

2
La gravità può essere generalmente determinata da regole da tester automatici e dal vivo. La priorità può essere valutata soggettivamente dall'azienda.
Gort il robot il

3

Bug di data e ora

Bug: l'elaborazione di fine anno corromperà totalmente il tuo database. Questo è chiaramente un bug grave.

Data: 15 dicembre. Il bug ha una priorità molto alta.

Data: 1 febbraio. Il bug ha una priorità bassa.


Lancio accidentale del bug missilistico

Bug: il software di controllo ICBM si attiva quando va dal 28 febbraio al 1 marzo in anni divisibili per 4. Il risultato è un lancio senza comandi.

È un bug tanto grave quanto può esistere. Priorità molto bassa, però - c'è qualche possibilità realistica che il software sarà utilizzato quando la condizione viene attivata?


Invertite "cattive" parole sullo schermo

Bug: i messaggi che traboccavano del loro spazio sullo schermo provocano un riferimento profano involontario alla comparsa di Bob. (Mondo reale: avevamo persone che lavoravano nel dipartimento "Final Ass". "Ass" = "Assembly".)

Sfortunatamente, domani farai una presentazione in cui ottenere la vendita è una svolta per l'azienda. Stai presentando la presentazione a qualcuno chiamato "Bob". Gravità: molto bassa. Priorità: molto alta.


In relazione ai bug di "overflow" e "data e ora" che menzioni, potresti apprezzare la fase del bug lunare

0

Hai scritto:

Voglio dire, è necessario ripararlo rapidamente o no.

È corretto. Se sei come la maggior parte delle aziende, tuttavia, le tue risorse sono limitate. O non hai abbastanza persone per risolvere tutti i problemi o non hai abbastanza tempo.

Dato che un bug deve essere riparato rapidamente o no e che hai molti bug che devono essere corretti, "priorità" risponde alla domanda "quale devo risolvere per primo"?

La gravità, d'altra parte, è un indicatore utilizzato dalla persona che imposta la priorità. Dal punto di vista di uno sviluppatore la gravità è un punto controverso. Dal punto di vista di quello che assegna il lavoro, la gravità è un'importante informazione che aiuta nel processo decisionale.

Naturalmente, tutto ciò è un'informazione molto generale. Se sei un team con un arretrato di bug incredibilmente lungo, priorità e gravità significano qualcosa di completamente diverso rispetto a un team che ha un database di bug quasi vuoto.

Se fai parte di un team in cui "alta severità == alta priorità" nulla di tutto ciò è importante e non hai bisogno di entrambe le metriche. Alla fine, questi sono solo strumenti. Il tuo team deve decidere come usarli. Per la tua squadra potrebbe non avere senso usare entrambi.


0

IMHO, mettere sia la priorità che la gravità è solo burocrazia.

In pratica, hai solo bisogno di una misura di "importanza". Spesso, viene usata la priorità per questo, e la gravità viene quindi usata come termine tecnico come "alto = crash del sistema o lo rende inutilizzabile", "medio = comportamento errato, potenzialmente dannoso", "basso = fastidio, fastidioso ma innocuo"

Di solito, la priorità va di pari passo con la gravità. Alcuni esempi contrari sono un "fastidio in cui tutti si lamentano sempre" o un "incidente che si è verificato una volta in un ambiente esotico".

... ma, alla fine, come sviluppatore (o gestore, ecc.) devi solo sapere in quale ordine dovresti sistemare / migliorare le cose, tutto qui. Quindi è sufficiente una misura.

La necessità di priorità è chiara: è sapere in quale ordine devono essere affrontate le segnalazioni di bug. L'altro, IMHO come al solito, è la burocrazia. Perché ne hai bisogno? È apparentemente inutile per l'ordinamento perché la priorità lo fa. E le conseguenze (descrizione della gravità) sono comunque descritte nella segnalazione di bug.

Penso anche che sia dannoso perché rende meno chiaro quale bug è più importante:

  • Alcuni potrebbero pensare che un bug "critico" abbia una priorità maggiore rispetto a un bug "ad alta priorità".
  • Alcuni utenti che segnalano un bug possono confondere la gravità e la priorità
  • ... nel complesso, aggiunge piuttosto confusione sull'ordine in cui gli insetti dovrebbero essere affrontati

1
E gli sviluppatori sono le uniche persone che contano?
biziclop

2
@biziclop No, hai ragione, era una mia scarsa formulazione. Vale per tutti: ciò che conta, anche per i manager, ecc., È ciò che dovrebbe essere risolto per primo e ciò che è meno importante. Per questo, una misura è sufficiente.
Dagnelies

1
Bene, è sbagliato dal punto di vista della gestione del rischio - priorità = gravità * tasso di occorrenza. Un errore di battitura sull'età di frontp ha una priorità inferiore rispetto a un arresto anomalo del server che si verifica se il cognome dell'utente supera 46 caratteri?
Pietross,

1
@Pietross: bene, l'hai appuntato: quale dovrebbe essere affrontato per primo? L'arresto anomalo con priorità bassa o il disturbo con priorità alta? Come si dà la priorità? Chi fa appello a quel giudizio? Tutti stanno guardando l'elenco? Quando si utilizza solo una misura di priorità, ha dato la priorità una volta, quindi è fatta. L'impatto e la gravità sono comunque descritti nella segnalazione di bug.
Dagnelies,

La cosa su "severità" è che puoi facilmente dire "crash = high, typo = low". Si pensa che un errore di battitura che lascia "o" fuori dalla parola "count" sulla homepage abbia una priorità maggiore da correggere rispetto alla pagina che si rifiuta di caricare affatto.
Gort il robot il

0

Oltre ad altre risposte, considera questo scenario: il bug A richiederà 30 minuti per essere risolto e ha una gravità "bassa"; il bug B può richiedere più di 2 settimane per essere risolto e avere una gravità "elevata". Inoltre, il bug B può richiedere molte discussioni e coordinazioni nel team di sviluppo e forse al di fuori del team; il bug A può essere risolto immediatamente da un singolo sviluppatore. Va perfettamente bene impostare una priorità più alta sul bug A.

Naturalmente "severità" e "priorità" possono essere interpretate in diversi modi.

In un piccolo inseguitore di bug che ho realizzato per uso personale ho preferito invece "difficoltà" e "priorità" in cui i problemi di alta gravità avrebbero sempre avuto la massima priorità e potrei decidere di ritardare a lavorarci in base alla difficoltà.

Una cosa che non mi piace della "gravità" è che si applica solo ai bug e non alle funzionalità. Potrebbe essere meglio avere un unico elenco di tutti i problemi ordinati per priorità e difficoltà poiché è più direttamente utile decidere "su cosa lavorerò dopo?".


0

Ho progettato e implementato processi in un'azienda software certificata ISO9001: 2007. Ci sono stati aggiornamenti allo standard dal 2007, quindi potrebbero esserci requisiti aggiuntivi di cui non sono a conoscenza ... tuttavia:

Lo standard ISO9001 mira a garantire che la vostra azienda progetta e implementa processi con circuiti di feedback per migliorare il processo quando vengono identificati difetti di prodotto e di processo.

Durante la fase di progettazione i requisiti si concentrano sul fatto che la soluzione proposta, se implementata correttamente, risolva effettivamente il brief di progettazione (convalida) e controlla se l'implementazione è stata effettivamente implementata senza difetti (verifica)

Nel circuito di feedback, quando vengono identificati i difetti, non è sufficiente che vengano registrati. Un difetto deve anche essere valutato per gravità e priorità di rilavorazione.

La parte fondamentale è che il modo in cui la tua azienda decide di valutarne la gravità e di prendere decisioni sulla priorità non è definito dallo standard ISO. È un problema commerciale e di governance che l'azienda decide e documenta.

Come è scritto nello standard come requisito, ogni azienda certificata avrà un processo per valutare la gravità di un difetto e un processo per determinare la priorità del lavoro per correggere il bug. Sono sicuramente due decisioni separate che devono essere prese.

La gravità del bug è solo un punto dati. Impatto sul cliente È un altro punto dati. C'è anche uno sforzo per correggere, l'età del difetto, la vita commerciale rimanente nel prodotto e qualsiasi altro fattore che l'azienda decide di includere nel suo processo decisionale. L'unica cosa che non dovrebbe essere scritta come "difetto attuale al product manager per decidere la priorità" in quanto ciò definisce solo l'autorità per prendere la decisione e non definisce il processo che seguono per prendere la decisione.

Ho una preferenza per la definizione delle priorità che è orientata a fornire un alto tasso di piccoli e importanti cambiamenti, poiché questo sembra fornire il miglior impulso all'affidabilità complessiva del prodotto. Ciò significa che un grave bug che richiederà molto lavoro per essere risolto avrebbe bisogno di essere suddiviso in blocchi più piccoli per avere priorità sufficiente per essere programmato.


-3

Per motivi di forte differenza tra priorità e gravità:

Un semplice esempio Immagina di avere un posto ristretto che impedisce il ridimensionamento del tuo sistema: alcuni algoritmi hanno una complessità O (N ^ 3), dove N è il conteggio dei negozi del cliente. Il cliente afferma che aprirà 200 nuovi negozi l'anno successivo e che i calcoli necessari (distribuzione delle merci, pianificazione dei trasporti, ecc.) Non saranno completati in tempo. Ma attualmente questo cliente ha solo 30 negozi e le risorse sono sufficienti. Il compito di ottimizzare questo algoritmo (su O (N ^ 2) o superiore) è sicuramente importante (perderai il client se non implementato), ma probabilmente non urgente: hai qualche mese per implementare il nuovo algoritmo.

Esempio 2: un'applicazione si arresta in modo sistematico, ma questa versione si disattiva in pochi giorni a causa dell'aggiornamento o della migrazione. La riparazione è urgente perché gli arresti anomali influiscono davvero sull'esperienza dell'utente, ma è di scarsa importanza.

Naturalmente, entrambi i parametri sono unificati utilizzando una metrica (formale o informale) per produrre un piano di lavoro a breve termine, poiché quest'ultimo è monodimensionale (sequenza di attività). Ma a lungo termine non devono essere unificati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.