domenica 1 luglio 2007

I vantaggi dei due approcci allo sviluppo software

Dopo lunga pausa coincidente con il periodo degli esami universitari torno a postare trattando brevemente dei vantaggi dei due approcci allo sviluppo software.

Partiamo da quelli dell'opensource:
  • Qualità ed innovatività del codice sono ai vertici per una serie di ragioni tra le quali il grande numero di contributori, l'entusiasmo dei programmatori nel cercare nuove soluzioni per risolvere nuovi e vecchi problemi (sfide), la mancanza di pressione in termini di scadenze imposte da software vendor o altri stakeholders.
  • La sicurezza dei programmi è elevata poichè il codice è controllato molte volte da un numero elevato di persone che portano ciascuno le proprie competenze nel testare il prodotto (programmatori, utilizzatori, beta tester...).
  • Il costo di implementazione di questo software è tipicamente più basso poichè non ci sono licenze da pagare, le conoscenze del software sono spesso disponibili su forum e newsgroup online, liberamente consultabili e quant'altro. Questo aspetto è particolarmente significativo per aziende e system integrators poiché riducendo gli investimenti in sviluppo del software, se non annullandoli del tutto e facendo ricadere l'onere dello sviluppo sulla comunità open source, sono in grado di raggiungere un break even point d'investimento molto più basso (e quindi un tempo di rientro dei capitali molto più breve).
  • Non esiste nessun tipo di Lock In (fenomeno che comporta, dopo che un soggetto ha adottato una certa tecnologia, un disincentivo a cambiare dato da costi di switching quali incompatibilità, modifica abitudini acquisite ecc.) per la natura aperta ed open standard che caratterizza questi software: In ogni momento gli utenti possono convertire i dati da un formato ad un altro essendo tutti formati aperti e di libera consultazione.

Veniamo ora ai vantaggi dello sviluppo proprietario:
  • I software si dimostrano spesso superiori in termini di usabilità, anche se la tendenza recente è di un avvicinamento del software opensource per questo aspetto.
  • La documentazione in bundle con il software è spesso molto completa ed esaustiva. Questo fattore è mitigato dal fatto che forum e newsgroup online offrono una fonte di informazioni enorme per i software opensource tuttavia non tutti gli utenti sono abbastanza "smaliziati" da essere in grado di reperire tali fonti e necessitano di materiale informativo in bundle al software.
  • Attira maggiori investimenti in termini finanziari poichè i risultati in termini di codice possono essere protetti e coperti da brevetto generando dei ritorni finanziari derivanti dalla concessione d'uso a terzi delle tecnologie prodotte.

martedì 15 maggio 2007

Linux vs Windows ?

L'analisi del fenomeno Open Source e la sua completa comprensione non può prescindere dall'articolata realtà in cui, fin dalla sua nascita, è stato inserito. Il mercato del software ha conosciuto per molti anni solamente modelli "classici" di sviluppo ed imprenditorialità, basata su schemi non troppo dissimili da quelli di settori economici differenti e che oggi vengono piuttosto semplificatamente etichettati come "proprietari", proprio in contrapposizione al modello di cui noi ci vogliamo occupare, quello "open" o "aperto", caratterizzante del mercato dei beni d'informazione.

Con l'avvento di internet, della grande comunicazione e quindi dell'open source, si è formato, nel mercato del software, quell'incredibile ed altrove sconosciuto confronto tra due filosofie di sviluppo del prodotto completamente differenti, seppure accomunate, come vedremo, dall'obbiettivo di soddisfare dei bisogni molto concreti. Possiamo in ogni caso parlare di prodotto... nonostante nel nostro specifico caso i mezzi non sono affatto trascurabili nei confronti del fine.

Questo scontro, se vogliamo anche ideologico, tra due filosofie così differenti è noto al grande pubblico come la contrapposizione tra le due figure più mediatiche e famigerate, ciascuna di estrazione puramente caratteristica della propria filosofia, quali sono il progetto GNU/Linux da una parte e Microsoft Windows dall'altra.

“Microsoft and Linux represented two sides with fundamentally different ideologies.” (HBS, 2006)

Nonostante tuttavia sia comprensibile l'immagine dello scontro frontale tra queste due realtà, nell'immaginario collettivo simbolo della contrapposizione tra software proprietario e open source, quello che voglio mettere in luce sono le caratteristiche che differenziano e quelle che accomunano questi due mondi cercando così di inquadrarli in un quadro razionale ed omnicomprensivo. In quest'ottica, dunque, lo scontro tra Windows e Linux è in realtà leggibile come una più ampia contrapposizione ideologica tra ideologie di sviluppo del software e di gestione della proprietà intellettuale e dei beni d’informazione completamente differenti.

Vogliamo dunque illustrare brevemente le principali differenze tra software proprietario ed open source:

Software open source
Il codice sorgente del software è liberamente distribuito (solitamente attraverso internet), accanto alla versione binaria compilata (ovvero pronta all’uso; è possibile che sia demandata agli utenti la procedura di compilazione, ovvero la creazione del binario eseguibile dalla macchina). Le licenze sotto le quali il software viene distribuito ricadono sotto la classificazione “OSI” ovvero Open Source Initiative. Infine il software o.s. ha carattere puramente infrastrutturale ovvero è un modello tipicamente utilizzato per quel software che costituisce la base di un sistema o per l’erogazione di un servizio. Compone dunque solitamente l’infrastruttura di un sistema (per questo è fiorente nel settore server): sistemi operativi, server web, ecc.

Proprietary Software
Distribuito solamente il binario eseguibile e già compilato mentre il codice sorgente rimane proprietario. Le licenze sotto le quali viene distribuito variano a seconda del caso specifico (ciascuna versione di Windows o di Office è rilasciata sotto una licenza pensata ad hoc). Naturalmente in una situazione come quella di Windows di piena dominanza del mercato il fatto di tenere il codice sorgente segreto è necessario per garantire che non possano nascere cloni o prodotti con funzioni analoghe a salvaguardia del potere di mercato e della posizione di monopolio.

Proprio approfondendo la differente natura dello sviluppo di questi due tipi di software possiamo rifarci ad una eloquente metafora pensata da Eric S. Raymond nel suo testo intitolato appunto "The Cathedral and the Bazaar" e così introdotto dall'autore stesso:

I anatomize a successful open-source project, fetchmail, that was run as a deliberate test of some surprising theories about software engineering suggested by the history of Linux. I discuss these theories in terms of two fundamentally different development styles, the "cathedral" model of most of the commercial world versus the "bazaar" model of the Linux world. I show that these models derive from opposing assumptions about the nature of the software-debugging task. I then make a sustained argument from the Linux experience for the proposition that "Given enough eyeballs, all bugs are shallow", suggest productive analogies with other self-correcting systems of selfish agents, and conclude with some exploration of the implications of this insight for the future of software.

The Cathedral
Ovvero il modello di sviluppo proprietario. Sviluppato il codice, esso rimane segreto entro i confini dell’azienda. Viene rilasciato (venduto) il codice binario ovvero il programma eseguibile che viene utilizzato dagli utenti. Nel momento in cui viene rilevato un baco del software o nasca la necessità di nuove funzioni gli utilizzatori devono rivolgersi al produttore per vedere i problemi risolti o le nuove funzioni implementate nelle versioni successive del programma.

The Bazaar
Il software open source è sviluppato ed il codice sorgente, così come il binario compilato, sono rilasciati attraverso internet (di cui è facile capire il fondamentale ruolo abilitante, tanto è vero che la diffusione dell'open source è avvenuta contestualmente a quella della grande rete). L’utente utilizza il software scaricandolo e compilandolo. Nel momento in cui egli scopre un problema o desidera una nuova funzione, avendo accesso al codice sorgente, se ne ha le competenze, può intervenire liberamente sul codice stesso, implementando a sostituzione o a integrazione del vecchio codice. Può poi decidere di rilasciare o meno le modifiche realizzate secondo quanto stabilito dalla licenza mediante la quale ha acquisito il codice originario (es. la GPL obbliga a rilasciare le modifiche sotto licenza GPL; altre licenze meno "virali" sono nate nel tempo).

Abbiamo dunque fatto un passo avanti nella comprensione di questo complesso fenomeno.
Il prossimo intervento riguarderà le prospettive attuali dell'open source... per poi avvicinarmi alla trattazione economica che più mi preme trattare.

lunedì 30 aprile 2007

Appunti teorici: Economia delle Reti

Cominciamo ad illustrare un paio di concetti senza i quali è pressochè impossibile analizzare con un adeguato livello d'approfondimento il mondo dell'open source secondo la prospettiva che ho scelto. Mettiamo momentaneamente da parte gli occhiali dello "smanettone" informatico e facciamo nostro l'impegnativo punto di vista della teoria economica.

Una delle maggiori difficoltà nell'analisi dei fenomeni legati all'open source è sempre stata la convinzione comune che le teorie economiche non fossero sufficientemente complete per spiegare tutti gli aspetti di questo complesso fenomeno. Questo punto di vista è molto diffuso ma osteggiato da molti. Numerosi studiosi sostengono invece che sia il punto di vista ad essere sbagliato e che di teorie sufficientemente esaustive ce ne siano eccome.

La teoria che più mi interessa esporre in questo frangente è quella che ricade sotto il nome di economia delle reti. Questa branca dell'economia studia quei settori, come quello del software, caratterizzati da una serie di caratteristiche quali:
  • beni complementari
  • struttura di costo specifica (alti costi fissi affondati e bassi costi variabili)
  • forti esternalità di rete
  • strutture di mercato caratteristiche
  • competizione tra sistemi di prodotti (o standard)
  • costi di switching (tra standard)

Gli aspetti delle cosiddette economie di rete che più mi stanno a cuore per le trattazioni future sono i seguenti:

Le esternalità (positive) di rete
Un bene è soggetto ad esternalità di rete dirette quando il valore per l'utilizzatore è tanto maggiore quanto più è elevata la diffusione di quel bene (un esempio ne è il telefono, il fax o l'email). Beni di questo tipo hanno spesso valore autarchico nullo.
Un bene è soggetto, invece, ad esternalità di rete indirette quando trae maggior valore dalla propria diffusione non in quanto acquisisce maggior valore per il cliente ma perchè si amplia l'offerta di beni complementari ed accessori dando così al consumatore di quel bene maggiori opportunità di personalizzazione, utilizzo ed in sintesi maggiore utilità.

In un settore come quello del software dove il costo della prima copia è molto elevato (alti costi fissi) mentre poi i costi di riproduzione e distribuzione sono in rapporto trascurabili (bassi costi variabili) è del tutto evidente quanto sia importante spalmare il costo fisso iniziale sul maggior numero possibile di copie vendute (logiche di scala o economie di scala) per ridurre così il costo medio unitario di ciascuna copia: CMu = ( CF / q ) + CV
Ove a queste considerazioni si aggiunga l'effetto delle esternalità di rete, il raggiungimento di un'ampia base installata diviene vitale per il successo di un prodotto poichè esso beneficierà essenzialmente delle proprie esternalità positive in misura tanto maggiore quanto esso è diffuso.

Il problema dello Start-up (Start Up Problem)
Sulla base delle considerazioni viste precedentemente ci si può aspettare che il lancio di un nuovo prodotto in un mercato di questo tipo debba tenere conto di svariati elementi oltre che al prezzo di vendita. Gli attori deputati all'acquisto, infatti, saranno fortemente influenzati, oltre che dal prezzo di vendita, anche dalle aspettative riguardo a quello che faranno gli altri sul mercato.
Questo concetto è di facile comprensione ove si analizzi il caso del lancio sul mercato di standard differenti (es. console di gioco, supporti video...). Per ciascun utente, in relazione al livello di compatibilità dei prodotti, il bene è tanto più valevole quanti più utenti lo hanno acquistato prima di lui. Per ogni prodotto, per ogni livello di prezzo, esiste una massa critica, ovvero un numero di consumatori raggiunto il quale si scatena un effetto a valanga (bandwagon effect) che porta il bene ad una rapida diffusione ed in caso di conflitto tra due standard (o standard war) al lock-in su quella tecnologia. Questo significa che un bene che, lanciato sul mercato, raggiunga la massa critica, ovvero un certo livello di base installata (tanto più alto quanto alto sarà il prezzo di vendita), risulterà poi facilitato nella sua diffusione dall'effetto delle esternalità positive di rete per le quali ogni nuovo utente che ne valuterà l'acquisto lo riterrà conveniente alla luce di quella base installata che da' valore al bene stesso.

La competizione tra standard è un argomento complesso che va trattato con la dovuta calma. Forse lo farò in futuro ma non ora poichè c'è molto di più aderente all'argomento di questo blog da scrivere ancora. Importante è, per le analisi future, che il lettore capisca la rilevanza delle esternalità positive di rete poichè, come vedremo in futuro, è su queste che i progetti open source di successo fondano la propria stessa esistenza!

Technology Replacement
Un aspetto molto rilevante per la nostra analisi è invece quello di analizzare quali sono le motivazioni e gli ostacoli all'adozione da parte degli utenti di beni di rete e servizi d'informazione di una nuova tecnologia in sostituzione alla vecchia; ovvero:
Cosa determina se e quando avverà il passaggio da una vecchia tecnologia ad una nuova se queste sono caratterizzate da esternalità di rete?
  • Switching cost individuali (costi di apprendimento, cambio abitudini ecc.)
  • Switching cost collettivi (aspettative degli agenti sul comportamento degli altri)
  • Prezzo della nuova tecnologia in relazione alla vecchia
  • Performance della nuova tecnologia rispetto alla vecchia
Essenziale perchè si affermi la nuova tecnologia è che essa sia in grado di superare il cosiddetto chicken-egg paradox, innescando così il feedback positivo di rete (o bandwagon effect, conseguente al raggiungimento della massa critica come spiegato precedentemente).

Chicken-egg paradox: si tratta di una trappola per la quale uno standard introdotto sul mercato fallisce poichè, non avendo raggiunto la massa critica nel tempo preposto o avendo perso una standard war, la scarsità della base installata renderà sconveniente per i nuovi acquirenti l'acquisto e addirittura spingerà i possedenti a cambiare prodotto. Questo processo porta inevitabilmente all'uscita dal mercato.
La dizione chicken-egg deriva dalla considerazione delle esternalità di rete indirette secondo le quali i beni complementari dovrebbero essere presenti in gran numero sul mercato prima del bene stesso , ma vale anche viceversa. Quindi ad esempio perchè il formato DVD video abbia successo è stato necessario che molti film fossero disponibili per l'acquisto ma allo stesso tempo che fossero disponibili i riproduttori.
Per chiudere questa trattazione teorica è necessario segnalare un elemento importante dei mercati ICT: In essi la competizione non avviene prevalentemente nel mercato, ma per il mercato! Quelli che oggi sembrano monopoli consolidati possono essere spezzati da breakthrough tecnologici o innovazioni nei rapporti con i clienti, in breve tempo (si tratta di un caso tipico di competizione schumpeteriana).
Le quote di mercato correnti possono dunque essere un indicatore debole della reale competizione presente su questi mercati !!! (Si pensi alla quota di mercato di Windows nel mercato dei sistemi operativi client. NOTA: Così come oggi pochi credono ad un crollo dello standard Microsoft bisogna far notare che in altri tempi pochi avrebbero creduta alla fine repentina di monopoli come quello di Netscape nei browser web).


domenica 29 aprile 2007

Presentazione del Blog

Un cordiale benvenuto a tutti voi gentili avventori di questo piccolo, anzi piccolissimo, angolo di web.
Prima di tutto vorrei presentarmi. Sono Matteo, ho 22 anni e studio Ingegneria Gestionale presso il Politecnico di Milano. Sono una persona a cui non piace perdersi troppo in chiacchiere quindi vengo subito al dunque:
Perchè avventurarmi nella redazione di un blog?
Orbene, presto detto! L'idea mi è uscita svolgendo un lavoretto di ricerca per l'univesità riguardante il fenomeno del software Open Source. Il punto di vista era quello dei mercati dei beni d'informazione e dei servizi di rete.
Poichè l'argomento mi ha molto incuriosito, senza alcuna pretesa di completezza o particolari competenze colgo l'occasione di testare l'ennesimo servizio acquisito da "mamma" Google per approfondire un po' le mie, e spero anche le vostre, conoscenze del mondo dell'open source ed in particolare dei suoi aspetti economici. Qui si parlerà dunque di come si caratterizza economicamente un modello di sviluppo ed interazione di tipo open source, quali sono le motivazioni e gli incentivi economici che ne permettono l'esistenza e la proliferazione... tenterò, con l'ausilio della rete, di reperire, scovare e tradurre tutto il meteriale che per tempo e capacità mi riesce di reperire, usandolo per elaborare interventi quanto più "smart" possibile.
In sintesi il mio obbiettivo non è affatto quello di raccontare al mondo l'economia dell'open source ma viceversa quello di imparare, lavorando su questo blog e ricercando sempre nuove fonti per ampliare le mie conoscenze sperando allo stesso tempo che queste mie ricerche interessino a qualcun'altro, la' fuori.
Detto questo vi auguro un buon proseguimento sulla grande rete e spero che tornerete a trovarmi per leggere i nuovi post che presto pubblicherò.
A tutti un affettuoso saluto
KoBi