"La Brussel Airlines ha annunciato che ridurrà la velocità dei voli europei per consumare meno. Secondo i calcoli della compagnia belga, aumentare di poco la durata del viaggio diminuirà la spesa per i rifornimenti fino a 1,1 milioni di euro l'anno. Al beneficio economico si affiancherà anche quello ambientale, visto che verranno ridotte le emissioni di gas serra. […]" (da il Sole24ore.com)
La scorsa settimana sono stato da un cliente che sta per rilasciare un'applicazione web abbastanza corposa composta da diversi moduli e servizi e ho lavorato insieme a loro per risolvere alcuni problemi e chiudere lo sviluppo.
La cosa che mi ha lasciato un po' perplesso è la modalità con la quale lavoravano: non avevano unit test (e questo è purtroppo abbastanza normale) e per "testare" l'applicazione bisognava eseguirla.
Il problema è che dal momento in cui premevo F5 al momento in cui mi si presentava la pagina di Login passavano circa 2 minuti e 40 secondi, un'altra manciata di secondi per fare il login e un'altra ancora per arrivare sulla pagina che dovevo testare, in tutto diciamo circa 3 minuti.
Facciamo due conti:
Siamo alle fasi finali, quindi si fanno più che altro piccole modifiche e correzione di qualche bug, quindi il tasto F5 viene premuto molte volte al giorno: diciamo che arriviamo ad eseguire l'applicazione 50-60 volte al giorno.
Quindi 3 minuti * 50 volte = 150 minuti = 2,5h
2 ore e mezza al giorno a produttività zero (e nervosismo alle stelle).
Senza tirare in ballo lo unit testing che su un'applicazione che sta per andare in produzione non è neanche pensabile di mettersi a scrivere i test, ma uno script per velocizzare il build&run potrebbe essere comodo? E che ne dite se "#ifdef debug" allora facciamo un login automatico? E se spezzassimo la solution in più parti portando fuori ciò che non è "prettamente sottoposto a modifica"? E se si facesse pair programming anche (solo) in queste fasi per evitare di premere F5 per nulla visto che c'è un evidente errore che io non ho visto?
Quelli elencati sono solo alcuni dei piccoli interventi che permettono di risparmiare alcuni secondi ad ogni lancio ma che sulla giornata si traducono in ore!