Oltre alla passione per la fantascienza, di cui ben siete a conoscenza, adoro anche i film e telefilm gialli.
Non sono Sherlock anche se credo di aver delle buone capacità deduttive, almeno se mi sono stati dati gli elementi necessari.
Però una investigazione in cui riesco sempre c’è: trovare i bug.
I bug possono essere di tanti tipi, molti sono semplici da risolvere, altri meno.
Io prediligo classificarli per natura, anche se ci sono altri metodi: faccio una lista:
Difetti funzionali.
Semplicemente il software non funziona secondo le specifiche. Battuta preferita a riguardo: “non è un bug, è una feature”. Prodotto purtroppo non la pensa nello stesso modo ed occorre risolverlo. La maggior parte delle volte si è male interpretata una funzionalità o ci si è scordati di farla del tutto.
Problemi di performance.
Funziona tutto, ma serve troppa pazienza per vedere il risultato. I casi sono due: il codice e i dati devono essere ottimizzati, oppure qualcosa è sbagliato nell’algoritmo, nell’architettura, nella scalabilità. No, mettiamo più hardware non è una soluzione.
Usabilità.
Il software funziona ma l’utente medio non riesce ad usarlo, si perde nel labirinto delle opzioni, oppure priva estrema difficoltà a passare dalle funzioni più utilizzate. Oppure alcune categorie di utenti non possono proprio usare il programma.
È una delle situazioni peggiori perché serve tornare al design di prodotto, UX, eccetera. Se è disegnato male va rifatto. Costerà. Tempo e soldi.
Compatibilità.
Qui la citazione classica è: “sulla mia macchina funziona”. Ma su quella del cliente no, ed ahimè è tra quelle supportate. Occorre procurarsi una macchina uguale o un emulatore fedele. Occorre testare, trovare il difetto, risolverlo. Può essere molto seccante.
Sicurezza.
Il nostro software è magnifico, davvero, ma ogni tanto non si sa perché mostra i dati sensibili degli altri clienti, oppure in seguito ad un Penetration Test ci hanno visto la fantasia dei boxer. Per fortuna ce ne siamo accorti noi: blindiamo tutto, possibilmente by design e evitiamo di fare simili cretinate in futuro.
Per risolvere i bug serve tempo e servono risorse, è quindi importante che li scheduliate secondo severità e priorità.
Una bella matrice di Eisenhower farà a caso vostro: quelli nel quadrante in alto a sinistra sono quelli da fare prima.
E voi come investigate sui crimini del vostro software?