Molto semplicemente... molto DEBIAN.
Rock solid = Old Stable
Very Stable = Stable
Stable = Testing
Bleeding Edge = Unstable
Developer = Experimental
Modello testato e ultra collaudato (poi rinominiamolo pure come preferiamo). La politica mi piace e mi soddisfa, con Debian mi sono trovato sempre benissimo con questo approccio.
Numeri di release ed altro creano solo confusione.
Vedetela così: ogni qualvolta modifico una riga di codice posso creare dei bug. Per aggiungere la funzionalità "Uomo ragno" devo modificare molte righe di codice e quindi il codice è molto instabile dopo la sua introduzione ma i bug sono molto semplici da individuare dato che sono macroscopici (basta il debugging dello sviluppatore stesso) - siamo al livello Developers.
Quando le righe di codice modificate per aggiungere la funzionalità "Uomo ragno" sono considerate pronte per l'utente smanettone allora il codice viene posto in Bleeding Edge senza introdurre ulteriori modifiche (niente novità! ho sempre e solo la nuova funzionalità "Uomo ragno" ma il codice è ora più stabile).
L'utente smaliziato comincia ad usare la nuova funzionalità conscio del fatto che potrebbero esserci dei bug e così aumenta la base di debugging e quindi aiuta i "pochi" sviluppatori ad individuare ulteriori bachi in punti particolari e permette un ulteriore raffinamento del codice che viene quindi consolidato.
Dopo un periodo in Bleeding Edge, quando non ci sono più segnalazioni da parte degli smanettoni, il codice modificato che include la funzionalità "Uomo ragno" sarà considerato Stabile.
A questo punto sviluppatori e smanettoni stanno già da tempo rodando il codice quindi le garanzie che sia stabile sono sufficienti.
La base di debugging si allarga quindi ancora una volta esponenzialmente. Il debugging è ulteriormente approfondito ed il codice modificato per inserire l'"Uomo ragno" viene messo a dura prova con centinaia di migliaia di utenti che sfruttano tutte le funzioni all'osso.
Passato un tempo ragionevole (e qualche fix minore) il codice con l'"Uomo ragno" passa in Very Stable (quella plausibilmente utilizzata dalle aziende).
Il campo aziendale è il più tosto in assoluto. Qui non sono ammessi errori e malfunzionamenti. L'amministratore di sistema vuole garanzie e l'utenza deve produrre reddito ininterrottamente anche con la funzionalità più assurda e con le combinazioni più esagerate.
Ecco perchè il codice dell'"Uomo ragno" che supera questa fase è detto Rock Solid: semplicemente perché è da tempo che nell'utilizzo più massivo non si riscontrano problemi ed è già pronta un altra versione considerata Very Stable (questa volta con l'"Uomo ragno" e la nuova feature "Donna topa"). Il codice modificato per la "Donna topa" ha già passato tutti gli step rimanendo sempre un passo indietro rispetto all'"Uomo ragno" perchè la funzionalità è stata aggiunta più tardi.
L'approccio funziona molto bene e consente anche una certa versatilità. Permette di raffinare gradualmente il software e le sue funzionalità portandolo da una piccola base di testing molto ristretta (100 sviluppatori) ed una enorme base di utenza (100 milioni di utenti business) attraverso fasi intermedie di revisione ed ispezioni di qualità perché un pezzo di codice scende di livello solo quando il tempo, l'utenza e gli sviluppatori hanno decretato che è pronto per il salto.
In questo modo lo sviluppo non si blocca ad una ipotetica versione "stabile" da rilasciare, ma "fluisce" senza interruzioni dall'instabile (refactoring e nuove feature) all'ultra-stabile (codice ultra-collaudato ma con meno feature).
Utenti ed aziende possono quindi scegliere.
Massima stabilità o ultime feature a disposizione?
Cerco di scegliere la versione corretta per la mia realtà in base all'utilizzo che ne faccio ed in base alla sua criticità. Se la Very Stable ha tutto quello che mi serve allora sicuramente metterò quella nella mia azienda. A casa è meno importante la stabilità, magari metterò la Stable per giocherellare con qualche ultima novità.
Se poi mi serve proprio una versione recentissima, perchè mi serve la "Donna topa" con il plugin "Nuda e rovente" allora prenderò la Bleeding edge, sapendo però che potrei restare scottato!
E' normale essere un po' in difficoltà di fronte a questa politica perché ci mette di fronte ad una scelta. Ma come si dice nel mondo open "la possibilità di scegliere è libertà".
|