Partiamo dall’inizio di tutto… partiamo dall’Extreme Programming (XP). L’Extreme Programming è una metodologia per lo sviluppo software nata intorno all’anno 1996 e i suoi cardini sono rappresentati da:
mentre le regole da rispettare sono declinate nelle 5 fasi dello sviluppo software (Planning, Managing, Designing, Coding e Testing.)
In pratica molti progetti di successo sono basati su questa metodologia (soprattutto dal 1996 ai primi anni del 2000). Ma qual’è un progetto software di successo basato su questa metodologia? Il mio esempio preferito è VLC Media Player (Video LAN Client) il noto player multimediale presente per ogni piattaforma e famoso per l’icona a forma di cono per i lavori stradali. VLC fin dal suo rilascio iniziale ha rispettato tutte le caratteristiche della metodologia XP. La versione 1.0.0 è arrivata solamente a Giugno 2010 nonostante il software fosse disponibile già dal primi anni 2000. Questo significa che il software ha iniziato a circolare liberamente anche quando non era ancora considerato sufficientemente stabile e maturo. Però il suo compito principale, quello del player multimediale, lo ha svolto bene fin da subito e questo gli ha permesso di guadagnare costantemente consensi da parte degli utilizzatori arrivando addirittura a sbaragliare tutta la concorrenza perchè, anche se non perfetto, era migliore della maggioranza dei suoi competitor. Su Windows era obbligatorio installarlo per sostituire l’imbarazzante Windows Media Player installato di default e, anche sui sistemi linux, si dimostra un ottimo player rispetto alla numerosa concorrenza free. L’XP funziona anche nei confronti degli utilizzatori perchè: 1) venendo rilasciato anche se non perfettamente maturo, permette di “occupare” una fetta di mercato e rubare utilizzatori agli altri software 2) venendo aggiornato in continuazione permette di aggiungere sempre nuove funzionalità (o risolvere bug)e di fidelizzare l’utilizzatore Gli sviluppatori di VLC sono riusciti a farsi una ampia base di utilizzatori fedeli e contenti del prodotto. Una dovuta precisazione: i dati riportati sotto partono dalla versione 0.8.6 del 2006 ma in realtà lo sviluppo di VLC iniziò nel 1996 (all’interno di un campus francese con architettura client/server… da qui il nome originario di Video LAN Client). Riporto di seguito le date di rilascio delle varie versioni di VLC dalla versione 0.8.6 all’attuale versione 3.1.10 (stabile) o 3.1.11 (beta) che occupano un arco temporale di circa 14 anni.
VLC v3.0.11 Beta – 16 Jun 2020
VLC v3.0.10 – 29 Apr 2020
VLC v3.0.8 – 20 Aug 2019
VLC v3.0.7.1 – 12 Jun 2019
VLC v3.0.7 – 07 Jun 2019
VLC v3.0.6 – 12 Jan 2019
VLC v3.0.5 – 27 Dec 2018
VLC v3.0.4 – 01 Sep 2018
VLC v3.0.3 – 31 May 2018
VLC v3.0.2 – 25 Apr 2018
VLC v3.0.1 – 28 Feb 2018
VLC v3.0 – 09 Feb 2018
VLC v2.2.8 Beta – 23 Nov 2017
VLC v2.2.6 – 25 May 2017
VLC v2.2.5.1 – 13 May 2017
VLC v2.2.5.1 Beta – 15 Mar 2017
VLC v2.2.4 – 05 Jun 2016
VLC v2.2.3 – 04 May 2016
VLC v2.2.2 – 06 Feb 2016
VLC v2.2.2 Beta – 22 Jan 2016
VLC v2.2.1 – 14 Apr 2015
VLC v2.2.0 – 27 Feb 2015
VLC v2.2.0 RC2 – 23 Nov 2014
VLC v2.2.0 RC 1 – 12 Nov 2014
VLC v2.1.5 – 27 Jul 2014
VLC v2.1.3 – 05 Feb 2014
VLC v2.1.2 – 10 Dec 2013
VLC v2.1.1 – 14 Nov 2013
VLC v2.1.0 – 26 Sep 2013
VLC v2.1.0 RC 2 – 10 Sep 2013
VLC v2.1.0 RC 1 – 28 Aug 2013
VLC v2.0.8 – 29 Jul 2013
VLC v2.0.7 – 10 Jun 2013
VLC v2.0.6 – 13 Apr 2013
VLC v2.0.5 – 15 Dec 2012
VLC v2.0.4 – 23 Oct 2012
VLC v2.0.3 – 20 Jul 2012
VLC v2.0.2 – 01 Jul 2012
VLC v2.0.1 – 20 Mar 2012
VLC v2.0.0 – 19 Feb 2012
VLC v2.0. RC1 – 16 Feb 2012
VLC v1.1.11 – 16 Jul 2011
VLC v1.1.10 – 06 Jun 2011
VLC v1.1.9 – 13 Apr 2011
VLC v1.1.8 – 24 Mar 2011
VLC v1.1.7 – 01 Feb 2011
VLC v1.1.6 – 25 Jan 2011
VLC v1.1.5 – 14 Nov 2010
VLC v1.1.4 – 30 Aug 2010
VLC v1.1.3 – 19 Aug 2010
VLC v1.1.2 – 05 Aug 2010
VLC v1.1.0 – 23 Jun 2010
VLC v1.1.0 RC 4 – 16 Jun 2010
VLC v1.1.0 RC 3 – 11 Jun 2010
VLC v1.1.0 RC – 26 May 2010
VLC v1.1.0 pre4 – 12 May 2010
VLC v1.1.0 pre3 – 02 May 2010
VLC v1.1.0 pre1 – 13 Apr 2010
VLC v1.0.5 – 01 Feb 2010
VLC v1.0.3 – 02 Nov 2009
VLC v1.0.3 RC – 22 Oct 2009
VLC v1.0.2 – 23 Sep 2009
VLC v1.0.1 – 29 Jul 2009
VLC v1.0.0 – 07 Jul 2009
VLC v1.0.0 RC 4 – 18 Jun 2009
VLC v1.0.0 RC 3 – 12 Jun 2009
VLC v0.9.9 – 03 Apr 2009
VLC v0.9.8a – 08 Dec 2008
VLC v0.9.6 – 10 Nov 2008
VLC v0.9.4 – 08 Oct 2008
VLC v0.9.3 – 06 Oct 2008
VLC v0.9.2 – 15 Sep 2008
VLC v0.9.0 Test 2 – 01 Aug 2008
VLC v0.8.6i – 12 Jul 2008
VLC v0.8.6h – 08 Jun 2008
VLC v0.8.6f – 03 Apr 2008
VLC v0.8.6e – 28 Feb 2008
VLC v0.8.6d – 01 Dec 2007
VLC v0.8.6c – 17 Jun 2007
VLC v0.8.6b – 18 Apr 2007
VLC v0.8.6b Test 1 – 13 Apr 2007
VLC v0.8.6a – 05 Jan 2007
VLC v0.8.6 – 10 Dec 2006
VLC v0.8.6 RC1 – 01 Dec 2006
VLC v0.8.6 Test 2a – 21 Nov 2006
VLC v0.8.6 Test 2 – 16 Nov 2006
VLC v0.8.6 Test 1 – 27 Oct 2006
Poi nel 2001 alcuni ideatori della metodologia XP (Kent Beck, Jeff Sutherland, Ken Schwaber e Ward Cunningham) firmarono insieme ad altri sviluppatori il manifesto Agile. Il manifesto altro non è che, IMHO, una riscrittura “politically correct” della metodologia XP. Non a caso adesso la parola imperante sui sociale è “Agile” e non “Extreme Programming”. Ecco il manifesto Agile in italiano, ma sul sito ufficiale è disponibile in molte lingue tra cui, ovviamente, anche l’originale testo in inglese.
Stiamo scoprendo modi migliori di creare software, sviluppandolo e aiutando gli altri a fare lo stesso. Grazie a questa attività siamo arrivati a considerare importanti:
Gli individui e le interazioni più che i processi e gli strumenti Il software funzionante più che la documentazione esaustiva La collaborazione col cliente più che la negoziazione dei contratti Rispondere al cambiamento più che seguire un piano
Ovvero, fermo restando il valore delle voci a destra, consideriamo più importanti le voci a sinistra.
Sicuramente questo manifesto è stato plasmato dalla metodologia XP per essere più aderente alle nuove realtà aziendali, alle nuove forme di managing e ai prodotti software emergenti (principalmente applicazioni web-oriented e app per smartphone/tablet). L’XP si è liberata delle rigidità ed è diventata fluida, malleabile e dinamica. Tramite i 12 principi della programmazione Agile sono state gettate le basi per una nuova metodologia di sviluppo software che trae le sue origini proprio dalla metodologia XP ma rendendola più attuale e fruibile.
Tra le due metodologie preferisco ancora l’Extreme Programming perchè la reputo più vera, più essenziale e più pragmatica… lontana dalle logiche e dagli slogan maintream che imperano sui social network.
Poi tra il 7 e l’8 Dicembre 2020 è stata pubblicata su tutti gli store l’App IO. L’app IO è la parte software derivante dal progetto IO per la promozione della “cittadinanza digitale” del Governo italiano. Ideato dal team per la Trasformazione Digitale promossa dall’AGID (Agenzia per l’Italia Digitale) ha l’obiettivo di facilitare l’accesso dei cittadini a tutti i servizi digitali della Pubblica Amministrazione. L’app IO è stata rilasciata in occasione del progetto “Cashback” per incentivare l’utilizzo dei pagamenti digitali effettuati dall’ 8 al 31 Dicembre 2020. Inutile dire che il 9 Dicembre l’app IO era parzialmente inutilizzabile e i continui aggiornamenti dell’app dimostrano che il software non può essere definito “stabile” (come evidenziato anche dai vari screenshot).
Anche questo è un esempio di Extreme Programmig. Nonostante gli evidenti limiti e malfunzionamenti milioni di utenti hanno scaricato l’app nei primi giorni e attendono con ansia la versione stabile. L’app IO rispetta i 5 cardini della Extreme Programming: