3.1.1 Fetchmail

Un esempio paradigmatico di come si sviluppa il classico Progetto Open Source è riportato da Raymond sempre nel suo The Cathedral and the Bazaar [Raymond1]. Egli infatti nel 1996 ebbe modo, un po' per scelta consapevole ed un po' per necessità, di mettere in pratica ciò che aveva osservato nel modo in cui si era sviluppato Linux.

All'epoca Raymond era responsabile tecnico di un Internet Provider chiamato Chester Country InterLink. Una cosa che egli trovava abbastanza tediosa era il fatto che se voleva controllare la sua e-mail da casa doveva, una volta on line, accedere alla macchina del provider tramite il programma Telnet, avviare un check per vedere e scaricare la posta e poi disconnettersi dalla stessa macchina.

Quello che gli serviva era un programma che trasferisse la propria posta elettronica sulla sua macchina di casa evitandogli di andare ogni volta a cercarla su una macchina remota.

Il primo dilemma che affrontò fu se scrivere egli stesso ex-novo un programma adatto al suo bisogno oppure risparmiare un sacco di tempo cercandone qualcuno già esistente da adattare. In fondo, come egli stesso afferma, anche Linus Torvalds non scrisse il kernel Linux da zero, ma riutilizzò parte del codice di Minix, un piccolo sistema operativo di tipo Unix per PC.

Raymond quindi decise di cercare nella ormai già ampia varietà di codice open source disponibile in rete trovando più di un prodotto che facesse al caso suo. Tra questi, dopo attenta analisi, ne scelse uno: Popclient, un programma scritto da Carl Harris che tuttavia risultava un po' vecchio e mancante di alcune caratteristiche tecniche necessarie per essere al passo con i tempi.

Da buon sviluppatore open source, Raymond decise di mandare alcune modifiche in forma di patch a Carl Harris perché egli ne valutasse l'integrazione nel programma. Tuttavia egli si rese presto conto che l'autore originario di Popclient aveva già da un po' perso qualsiasi interesse nella sua creatura. Si trovò quindi di fronte ad un altro bivio: lasciar perdere e trovare qualche altro programma che facesse al caso suo, gettando tutto il lavoro fatto fino ad allora, o chiedere ad Harris di poter portare egli stesso avanti lo sviluppo di Popclient.

Harris, dopo un breve scambio di opinioni, fu ben felice di lasciare a Raymond la responsabilità di mantenere Popclient. Con il programma Raymond scoprì di aver ereditato anche la sua consistente base di utilizzatori che, come vedremo, data la natura "aperta" del codice, sono anche spesso programmatori ed hanno tutto l'interesse a contribuire al miglioramento del programma che essi stessi utilizzano, diagnosticando problemi, suggerendo aggiustamenti e segnalando errori.

Come Mantainer di un programma open source Raymond notò che la base di utenti/sviluppatori, per essere veramente utile al miglioramento del codice, deve essere adeguatamente stimolata ed incentivata. Il fatto che Harris, autore e precedente mantainer di Popclient, si fosse da tempo disinteressato al progetto, aveva fatto sì che la piccola comunità di utenti/sviluppatori che in genere si crea attorno ad un progetto open source, si fosse atrofizzata e non fornisse più buoni spunti.

Per stimolare una ripresa di interesse da parte degli utenti/sviluppatori, Raymond decise di prendere spunto dalla sua osservazione della realtà Linux, cercando di replicare quelli che riteneva i punti di forza dei quel modello di sviluppo. Dopo aver cambiato il nome del programma da Popclient in Fetchmail per il fatto che vi aveva inserito anche altri protocolli di trasmissione della posta elettronica, oltre al POP (Post Office Protocol) su cui si basava inizialmente, iniziò a seguire delle regole di condotta che in seguito riassunse nelle seguenti:

La Beta List, che al momento del passaggio di consegne da Harris a Raymond contava qualche decina di sviluppatori, cominciò ad aumentare ad un ritmo blando ma costante arrivando a circa 300 persone verso la fine di Maggio del 1997, quando si stabilizzò per il fatto che Fetchmail aveva raggiunto una eccellente stabilità e non necessitava che di ritocchi marginali o di mantenimento. Ciò fece comprendere a Raymond che anche un Progetto Open Source, portato avanti quindi nel tipico Stile Bazaar3.3di Linux aveva un suo ciclo vitale ben definito ed una sua maturità.