(Non è un duplicato: l'investigazione dei bug è molto più non-deterministica di un'attività di sviluppo definita in cui vengono specificate le cose da fare.L'indagine riguarda il restringimento di un enorme spazio di ricerca, che è diverso dal software di costruzione. Non possiamo confrontare Bug di corruzione della memoria , C / C ++ Comportamenti indefiniti e Gare di dati multi-thread in attività di sviluppo con limiti di ambito ).
Non è la prima volta che i miei superiori chiedono una stima quando si occupano di indagini sui bug. Proprio come se fosse un compito di sviluppo delimitato.
Tendo a preferire una scala di complessità. Qualcosa come: Facile , Non così facile , Hazy , Difficile e Davvero difficile . E dare una stima del tempo solo per facili indagini.
Per semplici indagini, sono d'accordo che sia fattibile. Ma non ho successo nello spiegare loro che un'indagine complessa è un processo ciclico:
- Motivo dei fatti, del codice, del problema
- Fai ipotesi
- Trova i modi per misurare l'ipotesi in base ai fatti (tracce, log, debug ...)
- Se i fatti sono chiari e l'ipotesi è falsa, ricomincia da 1.
È un processo piuttosto scientifico / razionalista.
Quali altri argomenti potrei dire, in modo da spiegare l'incertezza nello stesso processo di investigazione dei bug?