lunedì, ottobre 10, 2005

Com'e' un progetto di Free Software - open source

Un progetto open source, e' un progetto dove in "contrapposizione" ad un progetto proprietario, vengono condivisi i sorgenti senza limitazione d'uso:
diretta conseguenza e' che il programma in se e' gratuito, ma questo non significa che legati al progetto non possano essere forniti servizi a pagamento.

Cio' nonostante, i "servizi" primari, sono di norma forniti in un progetto open source, a meno che questo non sia abbandonato [non piu' seguito dagli autori] oppure questi siano ancora in fase di sviluppo: altro caso e' la situazione in cui il progetto e' "open source", solo per attirare prede, da depredare con opportuni mezzucci [ su gnu.org, varie situazioni di questo tipo sono non citate ma addirittura ELENCATE ], dato che il mondo e' pieno di persone creative, che passano il loro tempo a cavar sangue dai sassi.



SERVIZI PRIMARI:

Cosa e' un servizio primario ?
In primo luogo avere informazioni sulla natura del progetto, sullo stadio di avanzamento, su come viene portato avanti.

Se scarico OneNote di Microsoft, che non e' un progetto open source, so chi lo produce, conosco lo stadio di avanzamento, conosco la natura di progetto commerciale la dinamica di sviluppo.
Se scarico Mysql [www.mysql.com], che e' un progetto open source, posso parimenti avere le stesse informazioni.
Quando scarico un progetto e non ho queste informazioni, vado incontro a rischi, del tipo seguire un progetto abbandonato o peggio, ed il mezzo per capire cosa sto usando e' CHIEDERE.

La Microsoft ha gente pagata per rispondere, per promuovere il software e venderlo, inoltre predispone lussosi ed approfonditi siti per spiegare quanto fa il software, oltre al caffe :O).
Mysql e' un'azienda florida, che cio' nonostante ha meno disponibilita' "telefonica" di microsoft, ma ha comunque un sito con molte informazioni .

In eLawOffice abbiamo una scarsa disponibilita' telefonica [che e' comunque PRESENTE], e siti non lussosi ma comunque in corso di sviluppo, ma certamente chiamando via email otterrete risposta.


In questi servizi primari c'e' pero' qualcosa che in Microsoft non avrete, che in mysql ed altri progetti open source e' invece disponibile: la documentazione.



LA DOCUMENTAZIONE

Documentare un progetto richiede tempo, il progetto del per la documentazione di eLawOffice e' attivo su www.naarani.org , dove con un sito in mediawiki aggiungiamo di volta in volta documenti su come il programma si installa, si usa, si modifica, su come viene sviluppato e sui singoli componenti software.
Simile documentazione e' disponibile per mysql, linux, etc etc.
Non e' disponibile pero' per il tipico prodotto proprietario, dove la documentazione si ferma all'uso del programma, difficilmente passa per l'installazione e raramente fornisce informazioni sul resto : causa di questo e' che l'installazione, la modifica, la gestione del progetto sono un mezzo economico per gestire i progetti - il software.

Per quanto facciamo il possibile per rendere tutto documentato in eLawOffice, questo richiede tempo [ nonche' volontari dal grande impegno, tra cui M.Civinini, A.Rota etc ].
In progetti con piu' persone o con un maggior connotato commerciale, gli introiti dei progetti permettono di avere maggiori informazioni [se questo e' open source, in altro caso le informazioni non cambiano :O) ]

NB
Nell'ambito dell'installazione, per eLawOffice verra' a breve fornito un servizio a pagamento per l'installazione remota, "per chi proprio non ce la fa" ad installarlo da solo, o per chi semplicemente non ha tempo e voglia da dedicare ad un'installazione di mysql, ma questo non significa certo che la documentazione in merito manchi.


Ora, cio' che ulteriormente separa un progetto open source da uno proprietario e' la gestione del progetto : di norma questo nasce ed eventualmente "muore" in pubblico.



SVILUPPO DI UN PROGETTO OPEN SOURCE


Provero' a lasciare qualche indicazione su cosa significhi sviluppare in pubblico:
su www.sourceforge.net , c'e' il piu' grande archivio pubblico in inglese dei progetti open source - free software. Nei progetti e' indicata la licenza, vi sono spazi per la documentazione, la "pubblicita'", la gestione di mailing list, forum e quant'altro.

Un indicazione importante in questi progetti e' lo stadio di sviluppo:
planning, alpha, beta, etc etc
Queste informazioni segnalano che un progetto e' ancora in fase di progetto, o in versione embrionale, oppure in stadio avanzato etc.

In questi progetti e' possibile contattare i gruppi che li seguono, scambiare su forum o quant'altro informazioni etc etc.


Cosa accade se un progetto muore ? che rimane accessibile!
Ora la dinamica di questo evento e' piu' chiara se paragono il problema alla sua controparte "in progetti proprietari".
Se ho word 6.0 e ne voglio comprare un'altra licenza, dato che questo non esiste piu', io non posso comprarlo, problema non da poco se uno dei 30 dischetti mi si rompe perche' non posso piu' reinstallarlo. Se c'e' un errore in word 6.0 e lo correggo o pago qualcuno per farlo rischio di finire in galera per il reato di pirateria in vari stati [ sostenete la BSA : la pirateria e' un reato ]. Per risolvere il mio problema quindi butto via word 6.0 e compro office 2003, quindi butto il mio sistema operativo e lo aggiorno a xp [altrimenti office 2003 non va], poi butto tutto il software che non va piu' su xp e lo aggiorno per xp: in generale questo porta ad una spesa in tempo e denaro, ma cosa succede se il mio progammino "X" non c'e' per XP o per Xp mi costa 20mila euro? che o pago o mi -attacco- [e' brutuale ma e' megio arrivare subito al sodo].
Simili problemi nel corso del tempo si sono verificati per milioni di persone, con casi piu' pratici, che vanno dal gestionale per la contabilita' di cui la ditta sviluppatrice fallisce ad altri problemi piu' o meno diffusi.

Un progetto open source, se viene abbandonato, rimane disponibile per chiunque altro lo voglia portare avanti, e non a caso la prassi di sourceforge e' richiedere di pubblicare con frequenza [anche settimanale o giornaliera] gli sviluppi dei progetti, e di lasciarli disponibili, per quanto possibile, anche se divengono obsoleti.

A questo punto, per tenere in vita un progetto open source, potrebbe sembrare serva la costanza di chi lo ha partorito, ma in realta' serve solo una community.




UNA COMMUNITY

Un gruppo di persone che discutono del progetto ed interagiscono su esso, e' quanto serve per tenere in vita un progetto open source, altrimenti privo di scopo, o veicolato da altri interessi.
L'interazione tra piu' persone, lo scambio di idee, anche la denigrazione del progetto stesso [ per quanto strano possa sembrare ], tengono in vita il progetto, portando nuovi membri al gruppo, ed in un certo senso "sange fresco", persone con una carica che spinge il progetto nei "momenti di -stanca-".

La community e' anche la memoria del progetto e' la "cartina tornasole", che verifica la natura del progetto, avendo memoria degli eventi legati al progetto, dei problemi, delle eventuali soluzioni, della crescita e dei risultati.

La mancanza di interazione con una community tende a rendere i progetti sterili, o e' di per se evidenza di qualche problema. Di norma la maggior parte dei progetti senza community nasce come progetto open source "gia' finito", dove ci vuole poco perche' i fondatori, scoprano che il fatto che un progetto funzioni sul loro computer non significa che riuscira' a funzionare su altri 20 mila, in altri casi invece questa lentamente cresce attorno al progetto, con la crescita del progetto stesso.

Ci sono pero' elementi che tendono a bloccare la crescita di una community, come la mancanza di volonta o di risorse per creare una community : molti progetti "finiti" e pubblicati come tali, risolvono le esigenze di singoli individui, e per essere adattati ad esigenze piu' ampie richiederebbero tempo, che i gestori semplicemente non hanno; in altri casi il progetto ha solo la natura pubblicitaria di sostenere il patrono del progetto, che una volta fatto il minimo necessario "si ritira"; in altri ancora nascono prima i consulenti, i fornitori e gli installatori, che il progetto stesso, e questi non vedono l'ora di "lavorare", fornendo servizi od altro [tipo una versione funzionante del progetto pubblico] e la community viene vista come un elemento pericoloso per l'attivita' di assistenza : se facessero tutti per conto loro aiutandosi, non si genererebbe assistenza.


In un progetto open source, la community e' un elemento essenziale. L'interazione, per quanto limitata, di ogni utente e' essenziale, perche' porta ad un progetto sano, duraturo, dove i nuovi membri possono affiancarsi a quelli piu' vecchi e/o addirittura sostituirli se questi non seguono piu' il progetto. Ma ancor piu' importante, sono la memoria di come questo e' stato sviluppato, e sono le prime persone che possono dire se valga o meno la pena seguire un progetto.

Visitare un forum e seguire le domande della community da idea di quanto questa sia attiva e di come sia gestito il progetto. Se ad esempio trovo un forum con 13 domande e nessuna risposta, probabilmente il progetto ha qualche problema insormontabile, al contrario l'esperienza di chi e' nel forum ed ottenibile delle risposte, permette di capire come i problemi vengono affrontati e quanto valga la pena di seguire il progetto: e' come comprare un'auto chiendendo prima al vicino di casa che problemi ha, e se scopro che il motore si rompe sempre e nessuno fa manutenzione, so cosa sto per comprare; difficilmente in/su un progetto proprietario posso ottenere informazioni su come questo funzioni e sulle sue lacune, dalla ditta che lo produce difficilmente sapro' che il progetto fa acqua, mentre la community eventualmente presente attorno al progetto proprietario e' a rischio cause quando ne parla male.



Spero che queste informazioni permettano di capire piu' in profondita' la natura di un progetto open source, e come affrontare un progetto open source.



Mentre scrivevo pensavo ad eLawOffice :o) ... penso che dovremo spingere maggiormente per estendere la community :o) [ma dopotutto il blog serve anche a questo].

Nessun commento: