Prevedere la qualità del codice monitorando i dati biometrici degli sviluppatori

Che dire? All'orizzonte, si profilano tempi ansiosi per i programmatori.

|
01 giugno 2016, 11:01am

Foto: Kinga/Shutterstock

Alcuni ricercatori informatici dell'università di Zurigo hanno sviluppato un sistema in grado di predire la qualità del codice sviluppato da terzi a partire dai loro dati biometrici. Misurando la frequenza cardiaca, per esempio, sono stati in grado di quantificare le difficoltà incontrate dal programmatore nello sviluppo di una certa porzione di software. Queste informazioni, poi, si possono incrociare per individuare quelle che saranno, con maggior probabilità, le sezioni di cattivo codice. Insomma: un'unità pre-crimine per il software debugging.

Sebastian C Müller e Thomas Fritz, gli autori, hanno descritto la propria ricerca in un paper presentato alla trentottesima edizione dell'International Conference on Software Engineering, ospitata ad Austin.

L'articolo di Müller e Fritz inizia ricordando che: "un principio comunemente accettato nello sviluppo software è che posticiparne controllo qualità aumenta i costi. Ward Cunningham si è spinto a dire che 'ogni minuto speso lavorando su un codice approssimativo accrescerà l'interesse sul debito tecnico."

Una prima linea di difesa contro bug e cattivo codice, nota il duo di autori, è la code review. In sostanza, uno sviluppatore scrive del codice e poi lo passa a qualcun altro che si occupi di rivederlo e correggerlo, agendo in pratica da editor. Il revisore/editor guarda il codice completo alla ricerca di eventuali difetti o sezioni migliorabili.

È un sistema costoso, però: la revisione del codice richiede tempo e forza lavoro. Esistono sistemi di revisione automatica più o meno funzionanti, e si scontrano con due problemi. "Per prima cosa, sono basati principalmente su parametri—come il ricambio del codice e la dimensione dei moduli—che possono essere considerati solo dopo che una modifica al codice è stata completata e per i quali spesso è necessario disporre di più informazioni, come la storia del codice," si legge nel paper. "In seconda istanza, non tengono conto delle differenze individuali tra sviluppatori nel comprendere il codice, come quelle che esistono tra principianti ed esperti"

Largo alla biometrica. Concentrandosi sul programmatore mentre programma, invece che sul codice finito, il sistema descritto dal ricercatori di Zurigo rileva i problemi nel codice mentre vengono prodotti. Già in passato la variabilità della frequenza cardiaca (HRV) o l'attività elettrodermica (EDA) potevano essere indicatori accurati della difficoltà di un compito o la difficoltà di comprendere un frammento di codice. Più è difficile il compito, più è grande il carico cognitivo e maggiori sono le probabilità di commettere errori.

Il sistema è stato testato con due team di sviluppo, uno canadese e uno svizzero. I dati biometrici sono stati raccolti mentre programmavano e sono stati correlati ad alcune interviste agli sviluppatori e alla revisione manuale del codice prodotto.

I risultati della ricerca sono:

Tra gli altri risultati, il nostro studio mostra che i dati biometrici predicono in maniera più valida di qualsiasi altro parametro considerato precedentemente la difficoltà degli elementi di codice percepita dal programmatore mentre ci lavora su. La nostra analisi mostra anche che questi elementi di codice ritenuti difficili sono quelli che presentano i maggiori problemi una volta sottoposti a revisione, il che sembra supportare la nostra ipotesi iniziale. Inoltre, i risultati mostrano che le analisi biometriche hanno aiutato a individuare automaticamente il 50% degli errori trovati nel codice, superando parametri tradizionali per predire tutti i problemi emersi successivamente nelle analisi del codice.

Il paper, alla fine, rileva (a stento) le ovvie preoccupazioni circa la privacy legate a un metodo del genere, ma non va molto più in là di così. Più che di una questione di privacy, si tratta di una generale invadenza (una cosa un po' diversa) oltre al fatto evidente che monitorare lo stress dei programmatori mentre programmano sembra a sua volta foriero di notevole stress—come un colloquio tecnico interminabile in cui sei anche nudo. Ecco, una cosa del genere.

Be', che dire? All'orizzonte, si profilano tempi ansiosi per i programmatori.

Seguiteci sulla nostra nuova pagina!