Sunday, May 17, 2009

Per sempre Beta ?

Ci sono paradigmi che cambiano, e non ce ne accorgiamo. Chi un minimo ha seguito l'evoluzione dell'ingegneria del software ha chiaro che il software è un prodotto con un ciclo di vita. C'è l'ideazione, c'è lo sviluppo, poi c'è il testing. Il testing è affascinante. Si parte dalla versione pre-alpha, dove le funzionalità non sono complete e pochi intimi iniziano a provarla, facendo uno slalom tra mancanze e bug, speranzosi. I pochi guru della pre-alpha, soggetti che solitamente riuscirebbero a far fare di calcolo anche ad un tostapane, capaci di inserire dati in binario, vengono integrati con altri soggetti, i programmatori non dormienti, soggetti che passano le notti a provare ed installare, normalmente malnutriti e senza relazioni sociali, felici di testare e di possedere la novità, qualunque essa sia. Un giorno il prodotto matura, e si passa alla beta, una versione che può essere diffusa agli esseri umani, a tutti quelli che la vogliono, in cui la probabilità di non funzionamento è posta ad una soglia accettabile, ma ignota. Tutti si affrettano a possedere la beta, perchè la novità è sempre un segno di distinzione, perchè ci sono funzioni annunciate ed utili e mai avute, perchè magari non ci saranno i soldi per prendere la versione finale e allora almeno si ha l'ebrezza di avere avuto l'oggetto per se. Dopo la beta l'evoluzione cambia a seconda della casa madre, comunque si può avere il prodotto o una release candidate, che sarebbe il prodotto definitivo che può essere provato senza essere acquistato, e già che ci siamo, facciamo qualche altro test.

Bene, tutto questo non esiste più. Oggi abbiamo il web 2.0, gli applicativi funzionano dentro al browser, e allora l'idea è che li portiamo in beta, usiamo tutto il mondo come tester, e li lasciamo in beta per sempre. Un esempio, tra tutti, è gmail. In beta dal 2004, dopo 5 anni continua ad esserlo e probabilmente lo rimarrà per sempre, ma questo poco importa. L'idea è che il prodotto è in evoluzione. Essendo fruibile dal web, il "codice", cioè l'oggetto che ne regola le funzionalità, viene scaricato ogni volta che ci colleghiamo. E quindi può essere aggiornato ogni giorno, anche più volte al giorno. Le funzionalità vengono introdotte pian piano, il prodotto evolve, e tu quasi non te ne accorgi. Ogni tanto compare un nuovo bottone. Ogni tanto hai una nuova funzione. Ogni tanto hai un nuovo look&feel a disposizione, ma tutto è ben compatibile con il giorno precedente e quasi non te ne accorgi. La cosidetta manutenzione correttiva (per gli errori) ed evolutiva (per le nuove funzionalità) viene annegata completamente nelle continue nuove variazioni, che non possiamo più chiamare release, in quanto non solo non ho indicazione di quale release sto usando, ma probabilmente mi cambierà tra qualche ora e soprattutto è diversa da sistema operativo a sistema operativo, ma anche tra browser e browser.

Continua evoluzione, porta a scrivere beta vicino al nome del prodotto, beta che una volta voleva dire oggetto in debug probabilmente pieno di errori di cui diffidare, oggi significa invece oggetto dinamico che cambia in continuazione e che è frutto di una collaborazione mondiale e continua, di una evoluzione costante, senza piani noti ma con risultati apprezzati. E' un mondo diverso. Ce ne accorgiamo davvero a fatica. Inoltre, un nuovo spettro si aggira all'interno del web 2.0 e della beta. Si chiama caching. Se è vero che tutta la mia vita è ormai organizzata da alcuni software, se è vero che anche le mie relazioni sociali sono sovraintese da questi sistemi, se è scontato che il modo di operare è web 2.0, se il web 2.0 funziona in un browser collegato alla rete, cosa mai mi succede se sono disconnesso ? Anche per qualche secondo, ma in un secondo essenziale. Improvvisamente non ho più accesso, non ho più un pezzo di me stesso. E allora caching. Il browser diventa più intelligente e si sincronizza con internet, alliena indistintamente dati e programmi fruiti dal browser tra la rete e il browser locale. Smetto di sapere se ho accesso o no, smetto di sapere quando sono connesso e quando no. Ci pensa lui, in un balletto tra realtime e caching, perennemente e automaticamente sincronizzato. Il tutto, ovviamente, sempre e solo in beta.

Evviva la beta, beta per sempre.

1 comment:

Unknown said...

Il passaggio all'"eterno beta" qui descritto è secondo me una naturale evoluzione dell'ingegneria del software, un processo che ha portato la tecnologia ad una forma più vicina all'essere umano.
In fondo tutti noi nasciamo e una volta nati, volenti o non volenti, iniziamo un processo di continuo cambiamento, che si spera sia evoluzione, fino alla fine.
La morte infatti potrebbe a mio avviso essere tranquillamente descritta come "assenza di cambiamento".
Quindi si evviva l'eterna beta, poichè porta la tecnologia ad essere più simile al nostro ciclo vitale, a inserire un cambiamento ogni qual volta è possibile e a lasciare che siano le masse, e non solo pochi, a decidere se è un cambiamento utile o meno.