A cosa servono le Beta?

Tutti i sistemi operativi e tutte le applicazioni che si rispettino prima di essere rese disponibili per tutti devono essere testate e sperimentate. Questa fase di sviluppo del software prende il nome di Beta Testing.

Perché non si rilascia tutto subito?

Perché, semplicemente, sarebbe controproducente. Molti, se non tutti, i software (sistemi operativi inclusi) vengono realizzati tramite lo sviluppo AGILE. Si tratta di una metodologia che consente il coinvolgimento del cliente nella realizzazione del progetto che poi verrà sviluppato ad incrementi (tipo gli aggiornamenti dei sistemi operativi, piccoli aggiornamenti che introducono novità e migliorano le funzioni pre esistenti) e consentono al prodotto di essere molto resistente ai cambiamenti (di idea del progettista, del cliente e così via. Nel tempo potrebbero cambiare le necessità e quindi anche le funzionalità da implementare).

É vero che l’ideale sarebbe rilasciare una versione funzionante del progetto il prima possibile, il problema è che questa release deve anche essere stabile: non ci devono essere errori e tutto deve funzionare esattamente come previsto.

I controlli (di qualità e non solo) avvengono in molte parti della vita di un progetto software e possono essere automatici o manuali. Ci sono dei test è comprendono l’analisi del codice che però vengono eseguiti da un software. Altri test, invece, richiedono esplicitamente che un potenziale utente provi – in un certo senso sulla propria pelle – la versione preliminare del progetto..

Il lavoro deve piacere ed essere funzionale per le giuste persone

Il Beta Testing riesce se viene rivolto alle persone giuste. Non è possibile pensare di chiedere ad una persona per strada di provare la nostra app sullo smartphone se questa li odia a morte e non ne userà mai uno. Quando ci rivolgiamo “alle persone giuste” ci stiamo proponendo ai cosiddetti portatori d’interesse, o stakeholder.

Queste persone sono i nostri più probabili cliente ed utenti, vengono però inclusi nel giro anche coloro che pur non essendo clienti potrebbero trarre beneficio diretto o indiretto dal servizio che verrà loro (tramite il progetto software che stiamo realizzando per il cliente).

Banalmente, se facciamo un acquisto online su Amazon allora siamo clienti di Amazon. Se l’azienda decide di fare una rivoluzione sul sito per migliorarlo trasformandolo in qualcosa di totalmente diverso probabilmente assegnerà questo lavoro ad un team interno o ad una azienda esterna. In questo caso:

  • chi si occuperà del restyling sarà l’azienda o il team di lavoro che dovrà portare a termine il compito assegnato nel minor tempo possibile, mantenendo bassi i costi e assicurando un sito web stabile, sicuro ed efficiente
  • Amazon viene inquadrata come cliente con la quale interagire per fare in modo che vengano soddisfatte tutte le loro necessità
  • Noi, i clienti di Amazon, saremo inclusi tra gli stakeholder perché alla fine quelli che si devono trovare bene sul sito siamo noi.

Tra gli stakeholder però potremmo trovare anche ad esempi i dipendenti di Amazon che si occupano dell’assistenza al cliente, i rivenditori che offrono un prodotto sulla piattaforma e così via.

Il Beta Testing è quindi inevitabile

Realizzato una versione del software che rispecchi le volontà del cliente bisogna procedere, come dicevamo prima, sia con gli step automatici che con quelli manuali.

Anche se l’utente può trovare spazio nei controlli automatici il vero coinvolgimento avviene nelle sperimentazioni manuali.

Un azienda potrebbe pensare di chiedere a degli utenti interessati di provare le versioni del software in anteprima, chi aderisce – come volontario – diventa un Beta Tester.

Questo tipo di soluzione è stata intrapresa ad esempio sia da Apple con le Developer Beta e le Public Beta sia da Microsoft con il programma Windows Insider.

In entrambi i casi gli utenti si iscrivono per scaricare il sistema operativo in anteprima per i loro computer, smartphone, orologi e così via. Durante la fase di beta testing, questi utenti dovranno segnalare tutti gli errori che troveranno el corso del tempo.

Starà poi all’azienda ricevere queste segnalazioni e correggere gli eventuali problemi in modo da presentare nel corso del tempo delle versioni sempre più stabili e sicure.

Ad un certo punto, versione in anteprima dopo versione in anteprima, verrà rilasciata una cosiddetta versione Golden Master: si tratta di quella che presumibilmente sarà la versione definitiva da presentare poi al grande pubblico. Potrebbero esserci dei cambiamenti dell’ultimo minuto ma anche se ci dovessero essere, saranno talmente microscopici e mirati da essere quasi impercettibili.

Cosa succede prima del rilascio di una Beta?

Prima del rilascio di una versione preliminare di un progetto software ci sono le fasi di ingegneria dei requisiti e la progettazione e di implementazione. Questo è sempre vero quando si parla di mitologia AGILE (quella che abbiamo visto ad inizio articolo).

Nell’ingegneria dei requisiti vengono espressi tutti quei paletti, punti fermi, obiettivamente necessari per la realizzazione del software, possono essere di sistema o dell’utente. La rappresentazione del flusso di lavoro è un modello a spirale che parte dalla deduzione dei requisiti (cosa serve e a chi), la specifica dei requisiti (esplicitiamo cosa abbiamo deciso in modo che sia sempre comprensibile la motivazione dietro ad ogni singola decisione) e la convalida dei requisiti (bisogna confermare che quanto fatto sia realmente valido). Tutto termina, in un nuovo inizio in caso di sviluppo AGILE o in un Documento dei Requisiti di Sistema nel caso di progetto un po’ più tradizionale.

Il Documento dei Requisiti di Sistema, senza entrare troppo nel merito, potremmo spiegarlo come un enorme manuale di istruzioni sul progetto da realizzare da far leggere non agli utenti finali ma a chiunque lavori concretamente sul progetto.

Cosa succede dopo il rilascio?

Si inizia tutto da capo, semplice. Se stiamo parlando di un progetto sviluppato in modo agile probabilmente ci sarà sempre una nuova versione da sviluppare, un miglioramento della precedente con delle novità da introdurre e degli errori da sistemare. Dietro troveremo sempre una fase di controllo e di beta testing.

Ma se c’è tutto questo controllo perché trovo comunque molti errori?

Perché un’applicazione, un sistema operativo o qualsiasi cosa realizzata con il computer, detta molto semplicemente, non sarà mai al 100% infallibile. Bisogna anche considerare che il Beta Testing può essere chiuso o comunque molto ristretto mentre il rilascio finale è per tutti. La differenza la fa il numero di persone che usa quel determinato prodotto. Più persone ci sono più è facile che compaiano errori che fino a prima non erano ancora capitati, non sono stati visti o per qualcuno magari non erano poi così gravi.

Riassumendo

Dietro ogni app, programma, sistema operativo e praticamente tutto quello che vive con la tecnologia c’è un team di lavoro che deve realizzare i propri obiettivi in modo semplice, efficiente, veloce, economico e sicuro.

Per farlo ci sono più metodologie tra cui lo sviluppo agile. Questo insieme di pratiche include la resistenza del progetto a subire cambiamenti più o meno critici nel corso del tempo e si basa su piccoli incrementi (gli aggiornamenti dell’app o del sistema). Dietro ogni cambiamenti vanno fatti dei test, alcuni manuali ed altri automatici.

Il Beta Testing è una fase in cui vengono coinvolti alcuni utenti, che vogliono provare i cambiamenti prima degli altri, per segnalare tutti gli errori / problemi ancora presenti che verranno sistemati nel corso del tempo. Dopo molte versioni preliminari si passa prima ad una versione semi-definitiva chiamata Golden Master e poi al rilascio definitivo al pubblico.

Dopo la pubblicazione della versione definitiva si passa alla correzione degli errori (che compariranno o che non sono stati semplicemente notati) ancora presenti e all’aggiunta di ulteriori novità. Inizia così un nuovo ciclo di sviluppo che a suo tempo avrà ancora e sempre bisogno di una fase di sperimentazione iniziale.

Segnala

Scritto da Massimiliano Formentin

Sono sempre stato un appassionato di tecnologia, il mio scopo con PcGenius è condividere questa mia curiosità con il mondo intero. Nella vita faccio anche altro: suono il pianoforte e mi occupo di web.