Gestione degli errori nello sviluppo web: un approccio mentale

Gestione degli errori nello sviluppo web: un approccio mentale

Gli errori sono umani. Sono connaturati con la nostra esistenza e sono la molla della nostra evoluzione. E gli errori accadono. Sia che si voglia intepretare questo fenomeno alla luce della lapidaria legge di Murphy o che li si voglia vedere in una luce escatologica e provvidenziale (come il sugo della storia di cui parlava Manzoni), essi fanno parte del nostro lavoro. Noi affrontiamo gli errori, li gestiamo, cerchiamo di prevenirli. Ma è inevitabile che gli errori continuino ad accadere. Perchè se non ci sono errori, significa che il nostro lavoro di sviluppo è arrivato ad un punto morto, che non stiamo andando avanti, che siamo fermi. Perchè solo chi non scrive codice non commette errori col codice.

Psicologia dell'errore

Domandiamoci, a livello psicologico, qual'è il nostro rapporto con gli errori. Gran parte della nostra psicologia si forma negli anni della crescita, quando la nostra mente si rapporta con un modello educativo. Ora, come vengono considerati gli errori in questo modello educativo? Sostanzialmente, possiamo avere due modelli, uno costruttivo e uno distruttivo.

Nel modello costruttivo, l'errore è visto in modo transitorio, come un qualcosa che conduce ad un miglioramento, attraverso l'esperienza negativa, ossia alla formazione e alla crescita dell'individuo.

Nel modello distruttivo, invece, l'errore è definitivo e immutabile: se si sbaglia, non c'è via d'uscita. Si tratta di un vicolo cieco nella nostra formazione e crescita personale. In questo modello, l'errore comporta in genere la nascita di un tribunale della coscienza assolutamente colpevolista e assolutista. Da questo modello nasce una visione dell'errore di tipo fatalistico che genera paura e ansia nei confronti dell'errore stesso.

Se il nostro modello di riferimento era di tipo distruttivo, occorre liberarci dalla paura dell'errore per abbracciare invece il modello costruttivo.

Tipi di errore

Abbiamo due tipi di errore: un errore interno e uno esterno. Il primo deriva da come noi scriviamo il codice e dalle nostre scelte implementative. Il secondo deriva da fattori esterni, come per esempio le impostazioni e il funzionamento del server o le scelte degli utenti.

Errori interni

Per affrontare questo tipo di errori occorre operare su più fasi diverse:

  1. planning accurato
  2. approccio passo-passo
  3. documentazione
  4. creazione di una sandbox
  1. Bisogna giocare d'anticipo e pianificare tutto sin dall'inizio di un progetto. Se la deadline non è ancora stata fissata, si può già cominciare a creare dei modelli del sito, dei wireframe o dei prototipi per testarne il funzionamento. Occorre gestire il proprio tempo in modo minuzioso, seguendo una scaletta precisa.
  2. Mai, mai scrivere tanto codice e poi testarlo! Bisogna lavorare su piccole parti di codice, testarle, e poi andare avanti. Ossia, dobbiamo essere sicuri che anche il più piccolo ingranaggio del nostro meccanismo funzioni come vogliamo noi.
  3. Se non si conosce un argomento o lo si affronta per la prima volta, occorre documentarsi visionando articoli, tutorial e guide online. Se si ha più tempo a disposizione, si può prendere anche in considerazione l'idea di leggere dei libri sull'argomento.
  4. Occorrerebbe riprodurre in locale un ambiente di sviluppo il più possibile simile all'ambiente di sviluppo remoto. Per esempio, ho incontrato diversi problemi con PHP quando si è trattato di dover lavorare sul server IIS. Per questo motivo bisogna creare una sandbox locale su cui poter operare con maggior sicurezza.

Errori esterni

Quando affronto un nuovo lavoro, una delle prime cose che faccio è prendere dimestichezza e familiarità con l'ambiente remoto. Mi interessa sapere tutti i dettagli del funzionamento del pannello di controllo, dei tool per la gestione del database, della shell remota, oltre alle specifiche tecniche del server. Per esempio, con PHP scarico sempre una copia del phpinfo() e del file php.ini. Questo mi permette di sapere come devo scrivere il mio codice in base all'ambiente che lo ospiterà.

Un altra cosa che faccio, specie nei redesign di siti, è analizzare le statistiche di accesso. Mi serve soprattutto per sapere quali sono i browser più utilizzati e i sistemi operativi, ed in base a quello riesco già ad abbozzare il profilo dell'utente medio del sito.

Con gli utenti applico il principio dell'aspettati il meglio e preparati al peggio, ossia progetto le azioni a loro disposizione tenendo conto dei due estremi della curva di apprendimento: analfabeta informatico e cracker. Gli utenti dovranno usare il sito in modo guidato, ossia riducendo al minimo gli usi imprevisti dello stesso.

Per esempio, quando l'utente invia un form, impedisco sia lato client che lato server l'invio di contenuti duplicati e applico lo stesso doppio principio su tutte le altre call-to-action.

In questi casi, la paranoia si rivela utile.

Torna su