Windows ConfidentialLavorare sodo o far lavorare il cervello?

Raymond Chen

Per gli sviluppatori di software uno dei grandi vantaggi della Segnalazione errori Windows consiste nel poter ottenere informazioni reali sulle modalità di errore dei propri programmi. Questi report di errore sono disponibili per qualsiasi fornitore di software che si iscriva online a winqual.microsoft.com. Certo, si possono eseguire tutti i generi di test nei propri laboratori, ma c'è sempre un divario tra le condizioni di laboratorio e quelle reali. Ne possono conseguire bug che non compaiono mai durante la fase di test ma che fanno impazzire i clienti.

Alcuni anni fa mi raccontarono la storia di un programmatore al quale era stato assegnato un compito dal proprio team di affidabilità del prodotto. Il team intendeva occuparsi delle cause principali alla base di arresti anomali e blocchi in un componente particolare. Dopo una prima negoziazione, entrambe le parti stabilirono che l'obiettivo era di dimezzare il numero di questo tipo di errori. Il loro intento era quello di correggere i bug responsabili di almeno il 50 percento degli arresti anomali e blocchi nel relativo componente, come quantificato dalla Segnalazione errori Windows.

Tutti sappiamo che le anomalie non sono distribuite in maniera uniforme. Alcune sono rare, altre più comuni e altre ancora sono dilaganti (in termini relativi). L'ingegneria è un gioco di compromessi: risorse limitate (tempo, denaro e capacità intellettive) devono essere assegnate laddove avranno maggior effetto. Poiché lo scopo era ridurre il numero di arresti anomali e blocchi, l'approccio più sensato prevedeva lo studio degli errori più comuni riportati dalla Segnalazione errori Windows per comprenderne le cause principali e tentare poi di risolverli.

fig00.gif

Segnalazione errori Windows fornisce informazioni reali sugli errori del programma (Fare clic sull'immagine per ingrandirla)

Quando il programmatore esaminò a fondo i dati di errore, risultò evidente che cinque determinati arresti e blocchi determinavano oltre il 60 percento dei report. Se il programmatore fosse stato in grado di riparare i bug che causavano queste cinque anomalie, avrebbe ridotto il numero di arresti anomali e blocchi di due volte e mezza, superando di gran lunga l'obiettivo di dimezzamento.

L'analisi condotta da Microsoft sui dati relativi alla Segnalazione errori Windows dimostra che il principio di Pareto è una regola empirica sorprendentemente valida per gli arresti anomali e i blocchi di Windows; circa il 20 percento dei bug causa l'80 percento delle anomalie. Lo stesso studio ha rivelato un risultato ancora più sorprendente: solo l'uno percento dei bug causa il 50 percento degli errori. Non tutti i bug sono originati nella stessa maniera ma è una rivelazione vedere quanto sia arcuata la curva di distribuzione.

Dopo aver studiato più attentamente queste cinque anomalie, il programmatore si rese conto la causa alla loro base era la stessa. Gli arresti anomali e i blocchi erano solo manifestazioni diverse dello stesso bug. Pertanto egli sviluppò e testò una correzione e, in collaborazione con i colleghi del controllo qualità, fece quanto necessario per inserirla nella patch successiva. Grazie ad un'unica correzione del bug, la frequenza teorica degli errori per il componente si ridusse immediatamente di due volte e mezza. La missione era compiuta tramite una correzione del codice abbastanza semplice.

Quando ho sentito questa storia, ero stupito dal fatto che la curva di distribuzione degli errori per il componente era ancora più appuntita che per Windows. Ben oltre la metà di tutti gli arresti anomali e blocchi erano causato da un solo bug. Questo genere di analisi del codice non è possibile senza i dati raccolti da uno strumento come Segnalazione errori Windows.

Penserai che il team di affidabilità sarà stato entusiasta di aver conseguito il proprio scopo in così poco tempo. L'obiettivo concordato era stato raggiunto in sole due settimane grazie ad un'unica riparazione. Al contrario, erano furiosi.

"È inaccettabile, pensavamo di impiegarci due mesi. È stato troppo facile!" A quanto pare, volevano che il programmatore lavorasse sodo, anziché far lavorare il cervello.

Sul sito Web di Raymond Chen, The Old New Thing, così come nell'omonimo libro, vengono illustrate la storia di Windows e la programmazione con Win32. Il venti percento dei suoi vestiti sono responsabili dell'ottanta percento del suo bucato.