Dopo aver studiato il comportamento di Linus e aver formulato una teoria sul perch� aveva avuto successo, ho presto la decisione cosciente di provare la sua teoria sui miei nuovi progetti (molto meno complessi e ambiziosi, ammetto). Ma la prima cosa che ho fatto � stato riorganizzare e semplificare il popclient. L'implementazione di Carl Harris era potente, ma mostrava una complessit� non necessaria comune a molti programmatori C. Egli metteva al centro il codice e considerava i dati come supporto. Il risultato era che il codice era bellissimo, ma la struttuta dei dati era piuttosto brutta.
Ma avevo un altro motivo per riscrivere oltrech� migliorare il codice e la struttura dei dati. Ed era quello di ferlo evolvere in qualcosa che potesse essere compreso completamente.
Per il primo mese ho seguito il progetto di Carl. Il primo serio cambiamento � stato aggiungere il supporto IMAP. Ho fatto questo riorganizzando le macchine su un generico driver e tre tabelle di metodo (per POP2, POP3, e IMAP). uesto illustra un principio generico valido specialmente per i programmatori C che non scrivono in modo dinemico per natura:
9. Una buona struttura dei dati e un codice banale lavorano molto meglio che il contrario.
Brooks, capitolo 9: 'Fammi vedere il codice e nascondi la struttura dei dati e io continuer� a non capire. Mostrami la struttura dei dati e non mi servir� guardare il codice, perch� sar� ovvio.
Per la verit� lui ha detto `flowcharts' e `tabelle'. Ma, tenendo conto dello shift tecnico/culturale di 30 anni, � praticamente la stessa cosa.
A questo punto (settembre 1996, cira sei settimane da zero) ho cominciato a pensare che si doveva cambiare anche il nome: non era pi� solo un popclient. Ma esitavo, perch� non c'era ancora nulla di veramente nuovo nel progetto. La mia versione del popclient doveva ancora sviluppare una sua ientit�.
Ci� � cambiato radicalmente quando fetchmail ha imparato a inoltrare la posta al porto SMTP. Ci sono arrivato in un momento. Ma torniamo indietro: ho detto che avevo deciso di usare il progetto per verificare la mia teoria su quello che Linus aveva fatto. Ho fatto cos�:
10. Se tratti i tuoi beta tester come la risorsa pi� importante, ti risponderanno fino a diventare la risorsa pi� importante.
Una misura interessante del succeso di fetchmail � la dimensione della beta list, che sono gli amici di fetchmail. Al momento in cui ho cominciato ascrivere, ha 249 membri e aumentano di due o tre a settinana.
Ora il numero, che ha raggiunto i 300, comincia a calare per un motivo molto interessante: parecchi chiedono di rinunciare perch� il programma ormai funziona cos� bene che non c'� pi� nulla da guardare. Forse ci� � parte del ciclo di vita di un progetto in stile bazaar!