Produrre Software Open Source

Progettare un Software Libero di successo

Karl Fogel

(Author) 

Gerlando Termini

Traduttore 

Giovanni Giorgio

Traduttore 

Luca Quaglia

Traduttore 

Dedica

Questo libro è dedicato a due cari amici senza i quali la realizzazione sarebbe stata impossibile: Karen Underhill e Jim Blandy.

Indice

Prefazione
Perché ho scritto questo libro?
Chi dovrebbe leggere questo libro?
Fonti e riferimenti
Ringraziamenti
Esclusione di responsabilità
1. Introduzione
Storia
L'ascesa del software proprietario e del software libero
Deliberata resistenza
Imprevista resistenza
"Free" e "open source" a confronto
La Situazione Oggi
2. Partenza
Partire Da Ciò Che Si Ha
Scegliere Un Buon Nome.
Avere una chiara dichiarazione di intenti
Specificare che il Progetto è Libero
Elenco dell Caratteristiche e dei Requisiti
Lo Stato dello Sviluppo
Downloads
Controllo Versione e Accesso al Tracciamento Bug
I Canali di Comunicazione
Linee Guida per lo Sviluppatore
La documentazione
Disponibilità della documentazione
La documentazione sviluppatore
Emissione di dati e screenshoots di esempio
L' Hosting In Scatola
Scegliere una Licenza e Applicarla
Le Licenze “Fai Tutto”
La GPL
Come Applicare Una Licenza Al Vostro Software
Dare il Tono
Evitare discussioni private
Stroncate sul Nascere la Scortesia
Praticare una Visibile Revisione del Codice
Quando Aprite un Progetto che era Chiuso in Passato Fate Attenzione alla Grandezza del Cambiamento
L'Annuncio
3. L'Infrastruttura Tecnica
Di cosa ha bisogno un progetto
Mailing Lists
Prevenire lo spam
Filtrare i messaggi
Nascondere gli indirizzi presenti negli archivi
Identificazione e gestione degli header
Il grande dibattito sul 'Rispondi A'
Due fantasie
Archiviazione
Software
Controllo di versione
Vocabolario del controllo di versione
Scegliere un sistema di controllo di versione
Usare un sistema di controllo di versione
Tenere tutto sotto controllo di versione
Navigabilità
Email di commit
Use branch per evitare colli di bottiglia
Singolarità dell'informazione
Autorizzazione
Tracciamento dei bug
Interazione con le mailing list
Pre-Filtraggio del Bug Tracker
IRC / Sistemi di Chat in tempo reale
Bot
Archiviazione di IRC
Wiki
Web Site
Canned Hosting
Scegliere un sito di canned hosting
Anonimità e coinvolgimento
4. L'Infrastruttura Sociale e Politica
I Dittatori Benevoli
Chi Può Essere un Dittatore Benevolo?
Democrazia Basata sul Consenso
Controllo di Versione Significa Che Vi Potete Rilassare
Quando Il Consenso Non Può Essere Raggiunto, Votate
Quando Votare
Chi Vota?
Sondaggi Contro Voti.
I Veti
Metter Giù Tutto Per Iscritto
5. I Soldi
Tipi di Coinvolgimento
Pagate Per il Lungo Termine
Apparite Come Molti, Non Come Uno Solo
Siate Aperti Verso Le Vostre Motivazioni
Il Danaro Non Può Comprare Ciò Che Amate
La Contrattazione
Revisione e Approvazione Dei Cambiamenti
Studio analitico: il protocollo di autenticazione di password CSV
Finanziare Attività di Non Programmazione
La Garanzia Della Qualità (cioè, Eseguire Prove Professionali)
La Consulenza Legale e la Difesa
La Documentazione e l'Usabilità
Procurare l'Hosting/Banda
Il Marketing
Ricordate Che Siete Osservati
Non Colpite Il Prodotto Open Source Concorrente
6. Comunicazione
Sei quello che scrivi
Struttura e Formattazione
Contenuto
Tono
Riconoscere la maleducazione
Facce
Evitare le Trappole Comuni
Non mandare messaggi senza motivo
Thread Produttivi vs Thread Improduttivi
Più semplice l'argomento, più lungo il dibattito
Evitare le Guerre Sante
L'Effetto "Minoranza Rumorosa"
Gente Difficile
Gestire la Gente Difficile
Caso di Studio
Gestire la Crescita
Uso Ben Visibile degli Archivi
Trattate Tutte le Risorse Come un Archivio
La Tradizione della Codifica
Nessuna Conversazione nel Tracciatore di Bug
La Pubblicità
Annunciare le Vulnerabilità della Sicurezza
Ricevere il report
Sviluppate la correzione silenziosamente
I numeri CAN/CVE
Pre notifica
Distribuite la correzione pubblicamente
7. Confezione, Rilascio, e Sviluppo Quotidiano
Numerazione delle Releases
I Componenti del Numero di Rilascio
La Strategia Semplice
La Strategia pari/dispari
Rami Di Release
Il Meccanismo Dei Rami di Release
Stabilizzare una Release
Dittatura Da Parte del Proprietario Della Release
Votare Il Cambiamento
Portare avanti una stabilizzazione di release in collaborazione
Il manager di release
Impacchettamento
Il Formato
Nome E Disposizione
Mettere le maiuscole o non metterle
Pre-releases
Compilazione e Installazione
Pacchetti Binari
Prove e Rilascio
Le Releases Candidate
Annunciare le Releases
Avere in Manutenzione più di Una Linea di Release
Le Releases di Sicurezza
Le Releases e Lo Sviluppo Quotidiano
Pianificare le Releases
8. Gestire i Volontari
Ottenere il Massimo dai Volontari
La Delega
Distinguere chiaramente fra richiesta e assegnazione
Seguite dopo aver delegato
Rendete noto ciò a cui la gente è interessata
Lode e Critica
Prevenire la Territorialità
Il Rapporto di Automazione
Testing automatizzato
Trattate Ogni Utilizzatore Come un Potenziale Volontario
Suddividete i Compiti di Management e i Compiti Tecnici
Il Manager delle Patch
Il Manager delle Traduzioni
Il Manager della Documentazione
Il Manager di Problemi
Il Manager delle FAQ
Gli avvicendamenti
Quelli Che Fanno gli Invii
Scegliere Coloro che Faranno gli Invii
Revocare l'Accesso all'Invio
Accesso all'Invio Parziale
Persone che Hanno l'Accesso all'Invio Dormienti
Evitare Misteri
Riconoscimenti
Le Diramazioni
Gestire Una Diramazione
Iniziare una Diramazione
9. Licenze, Diritti d'Autore e Brevetti
La Terminologia
Aspetti Delle Licenze
La GPL e la compatibilità di Licenza
Scegliere una Licenza
La licenza MIT / X Window System
La GNU General Public License
La GPL è libera o non libera?
Cosa sulla Licenza BSD?
L'Assegnazione del Copyright e la Proprietà
Non far Nulla
Gli Accordi di Licenza per i Collaboratori
Trasferimento del Copyright
Gli Schemi a Doppia Licenza
I Brevetti
Ulteriori Risorse
A. Sistemi di Controllo di Versione Liberi
B. Bug Tracker Liberi
C. Perchè dovrebbe importarmi di che colore sia la rastrelliera?
D. Istruzioni di Esempio per Segnalare un Bug
E. Copyright