Product SiteDocumentation Site

1.3. Il funzionamento interno del Progetto Debian

I grandi risultati prodotti dal progetto Debian sono dovuti contemporaneamente al lavoro svolto sull'infrastruttura dagli esperti sviluppatori di Debian, dal lavoro individuale o collettivo degli sviluppatori sui pacchetti Debian, e dalle opinioni degli utenti.

1.3.1. Gli Sviluppatori Debian

Gli sviluppatori Debian hanno responsabilità diverse, e come membri ufficiali del progetto, hanno una grande influenza sul percorso che deve intraprendere lo stesso. Uno sviluppatore Debian è generalmente responsabile di almeno un pacchetto, ma in base ai propri desideri ed al tempo a disposizione, è libero di partecipare a numerosi team, acquisendo, in tal modo, più responsabilità all'interno del progetto.
La manutenzione dei pacchetti è un'attività molto documentata e regolamentata. Devono, infatti, essere rispettate tutte le norme stabilite dalla Debian Policy. Fortunatamente, sono disponibili molti strumenti che agevolano il lavoro dei manutentori. Lo sviluppatore può quindi concentrarsi sulle specifiche del proprio pacchetto e su compiti più complessi, come la correzione degli errori.
Le Policy, un elemento essenziale del progetto Debian, stabiliscono le norme che garantiscono la qualità dei pacchetti e la loro perfetta interoperabilità con il resto della distribuzione. Grazie a queste politiche, Debian rimane coerente nonostante le sue dimensioni gigantesche. Queste Policy non sono scritte sulla pietra, ma sono in continua evoluzione grazie alle proposte formulate sulla mailing list . Gli emendamenti che sono stati approvati da tutti sono accettati e applicati al testo da un piccolo gruppo di manutentori che non hanno responsabilità editoriale (loro includono solamente le modifiche concordate dagli sviluppatori Debian che sono membri della suddetta lista). È possibile consultare le attuali proposte di modifica sul sistema di tracciamento dei bug:
Le Policy coprono molto bene gli aspetti tecnici della creazione di pacchetti. La dimensione del progetto solleva anche problemi organizzativi; questi vengono trattati dalla Costituzione Debian, che stabilisce la struttura ed i mezzi per il processo decisionale. In altre parole, un sistema formale di governance.
La costituzione definisce un certo numero di ruoli e posizioni, compreso le responsabilità e le autorizzazioni di ognuno. È particolarmente interessante notare che gli sviluppatori Debian dispongono sempre dell'autorità per la decisione finale, potendo votare le risoluzioni generali, in cui per apportare modifiche significative (come quelle che riguardano i documenti fondanti) è necessaria una maggioranza qualificata dei tre quarti (75%) dei voti. Tuttavia, gli sviluppatori annualmente eleggono il «leader» per rappresentarli nelle riunioni, e garantire il coordinamento interno tra i diversi team. Questa elezione è sempre preceduta da un periodo di intense discussioni. Il ruolo di questo leader non è definito formalmente da alcun documento: i candidati a questo ruolo di solito propongono la propria definizione della posizione. In pratica, i ruoli del leader comprendono quello di mantenere i rapporti con i media, il coordinamento «interno» fra i vari team, e l'assegnare un orientamento generale al progetto in cui gli sviluppatori possano riconoscersi: il punto di vista del DPL è implicitamente approvato dalla maggioranza dei membri del progetto.
In particolare, i leader hanno un potere reale: i loro voti risolvono le votazioni in pareggio, loro possono prendere ogni decisione che non sia già assegnata ad un'altra autorità e possono delegare parte delle proprie responsabilità.
Dalla sua nascita, il progetto è stato guidato nell'ordine da Ian Murdock, Bruce Perens, Ian Jackson, Wichert Akkerman, Ben Collins, Bdale Garbee, Martin Michlmayr, Branden Robinson, Anthony Towns, Sam Hocevar, Steve McIntyre, Stefano Zacchiroli e Lucas Nussbaum.
La costituzione definisce anche il "comitato tecnico". Il principale ruolo di questo comitato è quello di derimere dispute in materia tecnica quando gli sviluppatori interessati non hanno raggiunto un accordo tra di loro. Oltre a ciò, questo comitato svolge un ruolo consultivo per qualsiasi sviluppatore che non riesce a prendere una decisione di cui è responsabile. È importante notare che deve essere comunque interpellato da una delle parti in questione.
Infine, la costituzione definisce la posizione del "segretario del progetto", che si occupa dell'organizzazione delle votazioni relative alle varie elezioni e risoluzioni generali.
La procedura della "risoluzione generale" è ben dettagliata nella costituzione, dal periodo di discussione iniziale al conteggio finale dei voti. Per ulteriori dettagli vedere:
Anche se questa costituzione istituisce una parvenza di democrazia, la realtà quotidiana è ben diversa: Debian segue naturalmente le regole del software libero e della do-cracy (democrazia del fare): decide colui che fa. Può essere sprecato un sacco di tempo dibattendo sui rispettivi meriti dei vari metodi per affrontare un problema; la soluzione scelta sarà la prima che è sia funzionale che soddisfacente... onorando il tempo che vi ha dedicato una persona competente.
Questo è l'unico modo per guadagnarsi i galloni: fare qualcosa di utile e dimostrare di aver lavorato bene. Molti team "amministrativi" di Debian operano per designazione, preferendo i volontari che hanno già contribuito ed efficacemente dimostrato la loro competenza. Questo metodo è pratico, perché la maggior parte del lavoro fatto da questi team è pubblico, quindi accessibile a tutti gli sviluppatori interessati. Questo è il motivo per cui Debian è descritta come una "meritocrazia".
Questa efficace modalità operativa garantisce la qualità dei contributi forniti dai team Debian «chiave». Questo non è un metodo perfetto e di tanto in tanto qualcuno non accetta questo modo di operare. La scelta degli sviluppatori accolti nei team può apparire un po' arbitraria, o addirittura sleale. Inoltre, non tutti hanno la stessa idea sul servizio richiesto a questi team. Per alcuni, è inaccettabile dover aspettare otto giorni per l'inclusione di un nuovo pacchetto Debian, mentre altri aspettano pazientemente senza problemi anche per tre settimane. Di conseguenza capita spesso ci siano lamentele dagli scontenti sulla «qualità del servizio» di alcuni team.

1.3.2. Il ruolo attivo degli utenti

Se sia rilevante citare gli utenti tra coloro che lavorano all'interno del progetto Debian? Sì: giocano un ruolo critico nel progetto. Lungi dall'essere «passivi», alcuni dei nostri utenti utilizzano versioni di Debian in fase di sviluppo e regolarmente inoltrano le segnalazioni di bug per indicare problemi. Altri vanno anche oltre e presentano idee e miglioramenti, presentando una segnalazione con un livello di gravità "wishlist" (lista dei desideri), o anche presentando correzioni al codice sorgente, dette "patch" (vedi il riquadro FONDAMENTALI Patch, come inviare una correzione).
Inoltre, i numerosi utenti soddisfatti del servizio offerto da Debian sono interessati a dare un proprio contributo al progetto. Poiché non tutti hanno adeguati livelli di competenza nella programmazione, possono scegliere di aiutare con la traduzione e la revisione della documentazione. Ci sono specifiche mailing list specifiche per varie lingue che coordinano questo lavoro.
Tutti questi meccanismi sono accentuati dal comportamento degli utenti. Lontani dall'essere isolati, gli utenti compongono una vera comunità all'interno della quale si svolgono numerosi scambi. Notiamo in particolare una attività importante sulla mailing list delle discussioni degli utenti, (Capitolo 7, Risoluzione dei problemi e reperimento delle principali informazioni descrive la cosa in dettaglio).
Non solo gli utenti stessi sono di aiuto su argomenti tecnici che li riguardano direttamente, ma discutono anche relativamente ai modi migliori per contribuire al progetto Debian e aiutarlo a progredire — discussioni che spesso portano a proposte di miglioramento.
Dal momento che Debian non spende fondi per auto-promuoversi con campagne di marketing, i suoi utenti svolgono un ruolo essenziale nella sua diffusione, garantendo la sua fama attraverso il passaparola.
Questo metodo funziona piuttosto bene, dal momento che i fan di Debian si trovano a tutti i livelli della comunità del software libero: a partire dalle feste di installazione (workshop in cui gli utenti esperti assistono i nuovi arrivati nell'installazione del sistema) organizzate dai LUG «Linux User Group» (Gruppi di utenti Linux) locali, fino agli stand di associazioni ai grandi convegni tecnologici che si occupano di Linux, ecc.
I volontari producono poster, brochure informative ed altro materiale promozionale dedicati al progetto, che mettono a disposizione di tutti e che Debian fornisce gratuitamente sul proprio sito web:

1.3.3. Team e sottoprogetti

Debian è organizzata, fin dall'inizio, intorno al concetto di pacchetti sorgenti, ognuno con il suo manutentore o gruppo di manutentori. Nel tempo si sono formati svariati team, che assicurano l'amministrazione delle infrastrutture, la gestione di compiti non specifici di un particolare pacchetto (garanzia della qualità, le Policy Debian, installatore, ecc.), mentre le ultime squadre si sviluppano intorno a sotto-progetti.

1.3.3.1. Sottoprogetti Debian esistenti

A ciascuno la propria Debian! Un sotto-progetto è composto da un gruppo di volontari interessati ad adattare Debian a specifiche esigenze. Al di là della selezione di un sotto-gruppo di programmi destinati ad un settore specifico (istruzione, medicina, creazione multimediale, ecc.), i sotto-progetti sono coinvolti anche nel miglioramento dei pacchetti esistenti, la creazione di pacchetti per il software mancante, l'adattamento del programma di installazione, la creazione di documentazione specifica, e altro ancora.
Questa è una piccola selezione degli attuali sottoprogetti:
  • Debian-Junior, di Ben Armstrong, offre un sistema Debian attraente e facile da usare dedicato ai bambini;
  • Debian-Edu, di Petter Reinholdtsen, focalizzata sulla creazione di una distribuzione specializzata per il mondo didattico/accademico;
  • Debian Med, di Andreas Tille, dedicata al settore medico;
  • Debian Multimedia che si occupa di lavori audio e multimediali;
  • Debian-Desktop che si concentra sul desktop e coordina le opere d'arte per il tema predefinito;
  • Debian GIS che si occupa di applicazioni ed utenti di Sistemi Informativi Geografici;
  • Debian Accessibility, infine, migliorando Debian cerca di soddisfare le esigenze delle persone con disabilità.
Questo elenco molto probabilmente continuerà a crescere con il tempo e mano a mano che la percezione dei vantaggi dei sottoprogetti Debian aumenterà. Essendo completamente supportati dall'infrastruttura Debian esistente, possono in effetti, concentrarsi sul lavoro fornendo un reale valore aggiunto, senza doversi preoccupare della sincronizzazione con Debian, in quanto sono sviluppati all'interno del progetto.

1.3.3.2. Team amministrativi

La maggior parte dei team amministrativi sono piuttosto chiusi reclutano nuovi volontari solo per cooptazione. Il modo migliore per poter entrare a far parte di uno di questi team è quello di assistere in modo intelligente i componenti attuali, dimostrando di aver capito gli obiettivi ed i metodi operativi del team.
Gli ftpmaster hanno il compito di gestire l'archivio ufficiale dei pacchetti Debian. Essi gestiscono il programma che riceve e memorizza automaticamente i pacchetti trasmessi dagli sviluppatori, dopo alcuni controlli, sul server di riferimento (ftp-master.debian.org).
Essi devono anche verificare le licenze di tutti i nuovi pacchetti, per garantire che Debian possa distribuirli, prima della loro inclusione nell'elenco dei pacchetti esistenti. Quando uno sviluppatore vuole rimuovere un pacchetto, si rivolge a questo team attraverso il sistema di tracciamento dei bug e lo "pseudo-pacchetto" ftp.debian.org.
Il team Debian System Administrators (DSA) (), come ci si potrebbe aspettare, è responsabile dell'amministrazione dei server utilizzati dal progetto. Assicura il funzionamento ottimale di tutti i servizi di base (DNS, Web, e-mail, shell, ecc.), installa i software richiesti dagli sviluppatori Debian, e prende tutte le precauzioni necessarie per garantire la sicurezza dei sistemi.
I listmaster amministrano il server di posta che gestisce le mailing list. Essi creano nuove liste, gestiscono i messaggi rimbalzati (segnalazioni di mancata consegna) e mantengono i filtri antispam (e-mail indesiderate).
Ogni singolo servizio ha un proprio team di amministrazione, generalmente composto dai volontari che lo hanno installato (e che spesso hanno anche programmato gli stessi strumenti corrispondenti). Questo è il caso del sistema di tracciamento dei bug (BTS), del sistema di tracciamento dei pacchetti, alioth.debian.org (server FusionForge, vedi riquadro STRUMENTO FusionForge, il coltellino svizzero dello sviluppo collaborativo), i servizi disponibili su qa.debian.org, lintian.debian.org, buildd.debian.org, cdimage.debian.org, ecc.

1.3.3.3. Team di sviluppo, Team trasversali

A differenza dei team amministrativi, quelli di sviluppo sono decisamente più aperti, anche a collaboratori esterni. Anche se Debian non ha una vocazione per creare software, il progetto ha bisogno di alcuni programmi specifici per raggiungere i suoi obiettivi. Naturalmente sviluppati sotto una licenza per software libero, questi strumenti fanno uso di metodi provati in altri settori del mondo del software libero.
Debian ha sviluppato da sé poco software, ma certi programmi hanno assunto un ruolo importante, e la loro fama si è diffusa ben oltre i confini del progetto. Buoni esempi sono dpkg, il programma Debian per la gestione dei pacchetti (è, infatti, l'abbreviazione di Debian PacKaGe, e generalmente si pronuncia "dee-package"), e apt, uno strumento per installare automaticamente qualsiasi pacchetto Debian e i pacchetti dai quali dipende, garantendo la coesione del sistema dopo un aggiornamento (il suo nome è l'acronimo di Advanced Package Tool, Strumento avanzato di gestione dei pacchetti). I loro team sono, tuttavia, molto più piccoli, poiché per la comprensione complessiva delle operazioni svolte da questo tipo di programmi è necessaria una capacità di programmazione di livello piuttosto elevato.
Il team più importante è probabilmente quello del programma di installazione di Debian, debian-installer, che dal suo concepimento nel 2001 ha compiuto un lavoro gigantesco. Sono stati necessari numerosi collaboratori, poiché è veramente difficile scrivere un programma unico in grado di installare Debian su una dozzina di architetture differenti. Ognuna con un proprio meccanismo per l'avvio e un proprio bootloader. Tutto questo lavoro è coordinato dalla mailing list , sotto la direzione di Cyril Brulebois.
Il team (molto piccolo) del programma debian-cd deve perseguire un obiettivo ancora più modesto. Molti "piccoli" collaboratori sono ognuno responsabile della propria architettura, dal momento che lo sviluppatore principale non può conoscere tutte le particolarità, né il modo esatto per avviare il programma di installazione dal CD-ROM.
Molti team devono collaborare con gli altri in attività di impacchettamento: cerca, ad esempio, di assicurare la qualità del progetto Debian a tutti i livelli. La mailing list sviluppa le Policy Debian secondo tutte le proposte ricevute. I team incaricati di ogni architettura () compilano tutti i pacchetti, adattandoli se richiesto, alle particolarità di ogni architettura.
Altri team gestiscono i pacchetti più importanti al fine di garantirne la manutenzione in modo da non assegnare un carico troppo pesante su un solo paio di spalle; questo è il caso della libreria C , del compilatore C sulla mailing list oppure di Xorg sulla (questo gruppo è anche conosciuto come X Strike Force).