Non ho accesso a dati o fatti concreti, quindi posso solo offrirti osservazioni aneddotiche raccolte nei miei ultimi 20 anni in ambito IT.
Credo che ci sia una grande differenza tra il modo in cui la maggior parte degli sviluppatori crea software oggi rispetto a 20 anni fa. Con il movimento Agile che ha acquisito così tanto slancio, in particolare negli ultimi 5-6 anni, ho assistito a un vero cambiamento di atteggiamento nei luoghi di lavoro. Tanto che la qualità di ciò che facciamo sembra crescere a passi da gigante ogni anno, e con ogni progetto applichiamo le lezioni che abbiamo imparato da un progetto all'altro. I processi più snelli combinati con un focus sullo sviluppo test-first sono cresciuti dall'essere molto controversi all'usuale. Tanto che oggi per entrare in molte aziende, se non ti senti a tuo agio con Agile, sarai fortunato se non ti mostrerà la porta.
Quindi quale impatto ha avuto questo. Prima di tutto, ho notato che i problemi spesso vengono identificati molto prima. Spesso accade che se il problema non sembra troppo grande, a volte può essere messo in attesa indefinitamente. In una rara manciata di casi, ho visto bug che si pensava fossero banali e diventavano seri problemi quando affrontati in seguito, poiché risultava evidente qualche problema fondamentale che non era considerato al momento. A volte questo può portare a un ciclo di correzione elaborato, che può essere costoso, ma spesso tale costo viene misurato meno in termini di risorse, e più spesso in termini di impatto sulla relazione tra cliente e sviluppatore. I clienti stanno crescendo abituati a questo modo di pensare agile, che restituisce loro risultati molto più velocemente di quanto non fosse ai vecchi tempi, con sprint di sviluppo altamente iterativi e rapidi tempi di risposta tra richieste e implementazione, quindi si aspettano una grande quantità di noi . E per quanto riguarda i bug attuali, il tempo di correggere un bug è più spesso notevolmente ridotto a causa di una solida serie di test per supportare le modifiche e la possibilità di creare nuovi test da cui fornire approfondimenti e soluzioni ai problemi segnalati.
Quindi, nel complesso, sembra che lo sforzo generale di correggere i bug sia stato ridotto nella maggior parte dei casi in presenza di una robusta serie di test e procedure per garantire che il testing resti al centro di ciò che lo sviluppatore fa, ma il costo effettivo è stato in qualche modo spostato, almeno in parte, dall'implementazione, ad altre aree del business, perché in qualche modo l'attenzione si è spostata dall'offerta pura e dalla domanda alla gestione delle relazioni.
Un'altra cosa che è diventata evidente, è che il nostro istinto istintivo di alcuni anni fa, che suggeriva che essere Agile avrebbe ridotto i nostri cicli di manutenzione è stato dimostrato in una misura sia giusta che sbagliata. Giusto nel senso che solidi test hanno reso più facile il debug e la correzione del nostro codice in larga misura, e per ridurre complessivamente il numero di bug rilasciati nel codice di produzione, e sbagliato nel senso che ora stiamo lavorando di più per evitare di dover mantenere il codice legacy, rinfacciando costantemente il codice e migliorando l'architettura in modo tale che diventi sempre più raro che abbiamo bisogno di sviluppare completamente nuovi prodotti da zero.
Quindi, alla fine, cosa significa questo per quanto riguarda la domanda dell'OP? Bene, significa che la risposta non è così secca come una volta pensavamo che fosse. 15 anni fa, avrei probabilmente risposto alla domanda come Sì , ma ora sento che è più realistico dire che è davvero troppo difficile misurare empiricamente, perché la natura di ciò che facciamo per sviluppare il software è cambiato molto da quando abbiamo iniziato a chiederci la domanda dell'OP a quei tempi. In un certo senso, più avanziamo le nostre tecniche e competenze come industria, più la domanda cresce da un sì definitivo, a un punto in cui sospetto che in un breve numero di anni diremo che non importa quando sistemiamo i bug, perché i nostri test e i nostri processi saranno molto più robusti, che i tempi delle correzioni dei bug saranno meno guidati dagli sforzi per risparmiare i nostri budget, e più dalle priorità per soddisfare le esigenze dei nostri clienti, e il costo relativo sarà diventare praticamente privo di significato contestualmente.
Ma come ho detto, questa non è una prova concreta supportata dai dati, solo le mie osservazioni degli ultimi anni, e il mio istinto mi dice che ci sarà più saggezza a portata di mano che migliorerà il modo in cui noi fai cose.