Collaboration avec des projets libres - enjeux, difficultés et bonnes pratiques
Retour d'expérience sur la conduite d'un projet libre
1. Retour d'expérience sur la
conduite d'un projet libre
Olivier Berger, TELECOM & Management
SudParis - Département INF
<olivier.berger@it-sudparis.eu>
TELECOM Bretagne
filière de 3ème année
« Systèmes logiciels et réseaux »
11. Présentation personnelle
Ingénieur de Recherche au département INF à
TELECOM & Management SudParis (ex
GET/INT)
Projets de recherche sur le logiciel libre (FP6
IST CALIBRE, PFTCR et Contrib2.0)
Adepte et « évangéliste du libre » de longue
date, mais en « congé sabbatique »
Wannabe développeur de la distribution Debian
Recherche : plate-formes de développement
collaboratif de logiciels (forges) :
Co-développeur de la plate-forme PicoForge
http://www.picoforge.org/
http://www-inf.it-sudparis.eu/~olberger/
http://www-public.it-sudparis.eu/~berger_o/weblog/
Page 11 / 90 Dpt. INF O. Berger
12. Sondage rapide
Déjà eu des cours sur le sujet ?
Logiciel libre ?
Linux ?
GNU ?
FSF ?
APRIL, AFUL, etc. ?
Firefox ?
Ubuntu ?
Creative Commons ?
Page 12 / 90 Dpt. INF O. Berger
13. Objectif de cette conférence
Donner une idée des enjeux liés à la
collaboration dans les projets libres
Rappel des fondamentaux du modèle libre
Démythifier un modèle loin d'être magique
Page 13 / 90 Dpt. INF O. Berger
14. Contenu
Introduction générale
Collaboration dans
l'écosystème libre
Page 14 / 90 Dpt. INF O. Berger
15. Introduction générale sur le libre
Principes
Géopolitique de l'Industrie logicielle
Historique
« Sociologie » d'une communauté
Considérations juridiques
Choix de logiciels libres / OpenSource
Dpt. INF
16. Définition du logiciel libre
« La liberté d'exécuter le programme, pour tous
les usages (liberté 0).
La liberté d'étudier le fonctionnement du
programme, et de l'adapter à vos besoins
(liberté 1). Pour ceci l'accès au code source est
une condition requise.
La liberté de redistribuer des copies, donc
d'aider votre voisin, (liberté 2).
La liberté d'améliorer le programme et de
publier vos améliorations, pour en faire profiter
toute la communauté (liberté 3). Pour ceci
l'accès au code source est une condition
requise. »
Définition de la Free Software Foundation (FSF)
Page 16 / 90 Dpt. INF O. Berger
17. Terminologie
Libre ~= OpenSource
Liberté !
Coût ?
Autres :
• freeware, domaine public, shareware, shared
source, etc.
Libre = ouvert ?
Ne pas se fier aux déclarations : vérifier les
licences
Page 17 / 90 Dpt. INF O. Berger
18. Libre vs. non-libre
En théorie, identification facile :
droit d'utilisation : OK - NOK
droit d'étudier : OK - NOK
droit de modifier : OK - NOK
droit de diffuser copies (modifiées) : OK - NOK
En pratique, parfois complexe (jargon licences)
Demander aux experts
• Free Software Foundation (http://www.fsf.org/),
• OpenSource initiative
(http://www.opensource.org/).
Page 18 / 90 Dpt. INF O. Berger
22. Annuaires
Freshmeat http://freshmeat.net/ (43000 projets)
FSF/Unesco : http://directory.fsf.org/ (5400
projets)
Framasoft
Plume (Promouvoir les Logiciels Utiles
Maîtrisés et Economiques dans l'Enseignement
Supérieur et la Recherche) :
http://www.projet-plume.org/
Page 22 / 90 Dpt. INF O. Berger
23. Le libre est partout
Internet: Apache, Bind, etc.
Serveurs (Samba, MySQL, etc.)
Groupware, CMS, etc.
Appliances, embarqué, grand public
• Nokia 8x0
• Freebox, Easybox, etc.
• Téléphones, bientôt (Google Android, etc.)
Impots
Poste de travail des gendarmes
PC préinstallés gOs, Zonbu, Ubuntu
...
Page 23 / 90 Dpt. INF O. Berger
24. Introduction
Principes
Géopolitique de l'Industrie logicielle
Historique
« Sociologie » d'une communauté
Considérations juridiques
Choix de logiciels libres / OpenSource
Page 24 / 90 Dpt. INF O. Berger
26. Bataille immense
Réduire les coûts (commoditisation)
Effets de réseaux pour établir des standards
Mutualiser la R&D
« Co-opétition » :
• coopération
• compétition
Prendre position dans le libre pour maîtriser
son évolution
Modèles économiques ?
Page 26 / 90 Dpt. INF O. Berger
28. Valeur du libre ?
Exemple: Debian 2.2 GNU/Linux (2001)
Lignes de code source :
• 55 201 526
• dont noyau Linux < 6%
Si applique métriques traditionnelles du
développement en entreprise :
• Effort estimé : 14 005 hommes x années
• Délai estimé : 6,04 ans (équipe de 2 318 p.)
• Coût développement : US$ 1 891 990 000
(Source: quot;Counting potatoesquot; par Gonzalez-Barahona et al)
Cf. http://ohloh.net pour d'autres chiffres
Page 28 / 90 Dpt. INF O. Berger
29. ValeurS : mouvement logiciel libre
Philosophie : Liberté, Egalité, Fraternité
• Liberté : faire des copies, améliorer, distribuer
• Égalité : mêmes droits pour tout le monde
• Fraternité : Co-opération pour construire des
biens communs
Mouvement « politique »
• Éthique, philosophie, activisme politique
• Richard M. Stallman et la FSF (Free Software
Foundation : http://www.fsf.org)
• APRIL, en france http://www.april.org/
Page 29 / 90 Dpt. INF O. Berger
30. « Mouvement » Open Source ?
Approche orientée vers le marché (créé en
réaction au mouvement du libre)
Bénéfices pratiques
Coûts (ambiguïté free)
« Mouvement »
• Open Source Initiative
(http://www.opensource.org)
• La plupart des industriels de l'informatique, les
SS2I, etc.
Page 30 / 90 Dpt. INF O. Berger
31. Impact global dans la société
Impact sur tous les aspects de la production et
de la diffusion du savoir, et plus largement tous
les artefacts immatériels :
• Publications et données scientifiques (open
archives, etc.)
• Création artistique (CC)
• Entertainment - gratuité ?
• Débat public, démocracie, régulation de
l'utilisation des ressources, etc.
Nouveau paradigme : Commons (Lessig)
Des biens publics aux biens communs ?
Dpt. INF
33. Introduction
Principes
Géopolitique de l'Industrie logicielle
Historique
« Sociologie » d'une communauté
Considérations juridiques
Choix de logiciels libres / OpenSource
Page 33 / 90 Dpt. INF O. Berger
34. Chronologie
Au début était le code source (< 80) Unix, BSD
(> 80)
GNU project & Free Software Foundation créés
par Richard M. Stallman (> 84)
Noyau Linux créé par Linus Torvalds (> 91)
Distributions GNU/Linux ( > 95)
IBM entre en jeu (2001)
Sun rachète StarOffice et création de
OpenOffice.org (2002)
Google sponsorise
Java sous GPL
Android...
Page 34 / 90 Dpt. INF O. Berger
35. Aujourd'hui incontournable
20/25ans plus tard
La partie est en voie d'être gagnée
Mais au fait, comment ça marche !?!
Page 35 / 90 Dpt. INF O. Berger
36. Introduction
Principes
Géopolitique de l'Industrie logicielle
Historique
« Sociologie » d'une communauté
Considérations juridiques
Choix de logiciels libres / OpenSource
Page 36 / 90 Dpt. INF O. Berger
37. Le libre est global
Page 37 / 90 Dpt. INF O. Berger
38. Qui participe
Bénévoles
• Parfois très isolés
• Parfois de façon organisée (Apache, GNU
project, etc.)
Compagnies
Pas un seul profil d'activités :
• Utilisation, tests, rapports de bugs
• Support communautaire (forums, listes, etc.)
• Code
• Vendre du libre
• etc.
Page 38 / 90 Dpt. INF O. Berger
39. Où sont ces développeurs ?
Par pays (SourceForge) :
Rang Pays Developpeurs
1. United States 425620
2. Germany 95800
3. United Kingdom 60768
4. Canada 49109
5. France 44587
6. China 36517
... ... ...
(source : Gregorio Robles and Jesús M. González Barahona -
2006)
Page 39 / 90 Dpt. INF O. Berger
40. Où sont ces développeurs ? (2)
Par continent :
Continent Développeurs
Africa 12 560
Asia 127 275
EU 401 845
Europe 466 792
North America 485 679
Oceania 46 422
South America 36 330
(source : Gregorio Robles and Jesús M. González Barahona –
2006)
Page 40 / 90 Dpt. INF O. Berger
41. Comment le libre est-il développé ?
Outilsde travail collaboratif :
• Internet, CVS, SubVersion, mailing-lists, chat
IRC
• « Forges » publiques (ou privées) :
- SourceForge
- Savannah
- ...
Structure projets (caricature)
• old-style traditional model : Cathedral
• new unexpected style : Bazaar
quot;The Cathedral and the Bazaarquot; (Eric Raymond)
Page 41 / 90 Dpt. INF O. Berger
42. Communautés, résaux sociaux
Linux 1.0
(1994)
Developers linked by
common authorship to
same files
source [Robles]
Page 42 / 90 Dpt. INF O. Berger
43. Bon sang, mais c'est le bazar !
Classical analysis of Apache modules feb. 2004 (source [Robles])
Page 43 / 90 Dpt. INF O. Berger
44. Amélioration de la visualisation
Reshaped with Girvan-Newman algorithm (source
[Robles])
Page 44 / 90 Dpt. INF O. Berger
50. Introduction
Principes
Géopolitique de l'Industrie logicielle
Historique
« Sociologie » d'une communauté
Considérations juridiques
Choix de logiciels libres / OpenSource
Page 50 / 90 Dpt. INF O. Berger
51. Protection vs. Controle
Comment bien exercer un controle ?
Le Copyright controle si
• Utiliser
• On peut copier pour donner ou vendre
• (essayer de) Modifier
• Toute autre chose non prévue dans un contrat
de licence
Le libre rééquilibre la donne en faveur des tiers,
utilisateurs, concurrents
Page 51 / 90 Dpt. INF O. Berger
52. Droit d'auteur, licences
Droit d'auteur :
• Prérogatives de l'auteur, faibles
• Conditions d'exploitation (employeur ?), fortes
Attaché à :
• au fichier source, d'abord
• œuvres dérivées (y compris exécutable)
Régime par défaut : restrictions des droits
Licence libres établissent des exceptions
Œuvres composites : compliqué
Mixibilité des licences ?
Page 52 / 90 Dpt. INF O. Berger
53. Brevets sur les logiciels
Le droit d'auteur/copyright ne controle pas si
un programme similaire peut être écrit par un
tiers
Le brevet protège une idée
Au départ destiné à protéger l'intérêt général
Dérive
Controverse législative en Europe
Page 53 / 90 Dpt. INF O. Berger
55. Catégories de licences libres
Deux grandes catégories :
• Façon « domaine public » (BSD, X11)
• Façon « Copyleftées » (e.g. GPL, LGPL)
Copyleftées :
• Liberté de changer le logiciel
• Impossibilité de changer la licence
Un même logiciel : plusieurs licenses =
segmentation des « marchés »
Modèles économiques des éditeurs de logiciels
libres
Page 55 / 90 Dpt. INF O. Berger
56. Introduction
Principes
Géopolitique de l'Industrie logicielle
Historique
« Sociologie » d'une communauté
Considérations juridiques
Choix de logiciels libres / OpenSource
Page 56 / 90 Dpt. INF O. Berger
57. Qualités
Prépare l'avenir
Sécurité
Adaptabilité
Indépendance
Faiblecoût
Portabilité
...
Encore faut-il vérifier ?
Qui fait vraiment ce travail ?
Page 57 / 90 Dpt. INF O. Berger
58. Prendre part à une nouvelle communauté
Rencontrer des hommes (et des femmes), pas
seulement des compagnies ou des services
marketing
Construire un projet où différents modèles
peuvent cohabiter
Apprendre les règles des communautés
De nombreux mode d'organisation sociale
Comme dans la « vie réelle » c'est souvent plus
subtil que ce qu'on en dit dans les
présentations ou les publicités !
Page 58 / 90 Dpt. INF O. Berger
59. Introduction générale
Collaboration dans
l'écosystème libre
Page 59 / 90 Dpt. INF O. Berger
60. Retour d'expérience : projet PicoForge
Projet « logiciel libre » développé
• Initialement à l'ENST Bretagne (2001 >)
• Puis à l'INT
Développement peu ouvert
Utilisé principalement à l'Institut TELECOM (ex.
GET)
Connaître les mécanismes du libre en les
pratiquant
Projet déployé en interne en se basant sur
l'intégration de composants externes
Problématique de la maintenabilité : nécessité
de contribution
Dpt. INF
61. Plate-forme « Forge »
Assemblage logiciels libres
Contruire une « forge » pour développement
collaboratif de logiciels
• Projets = espaces de travail sur Net
• Mailing-lists
• Wikis
• Repositories CVS/SVN
• ...
Packaging Debian pour installation aisée
Dpt. INF
64. Sélection d'un produit
Simplicité et réactivité
Ne pas confondre vitesse et précipitation
Sous-traiter ce qui peut l'être
Identifier les éléments critiques et monter en
compétence
Préférer les solutions déjà packagées
Page 64 / 90 Dpt. INF O. Berger
65. diminution du risque de clients
●
Nombreuses qualités captifs par une concurrence
accrue,
●
partage de connaissance entre
tous les acteurs,
Qualités génériques ... respectconnues portabilité,
●
déjà des standards,
●
réversibilité sur les tâches sous-
Qualités particulières d'un logiciel libre
traitées, etc.
=> à évaluer
• sa licence
• sa communauté
• son code (sa doc, son langage, etc.)
Méthodes d'évaluation (QSOS, OpenBRR, ...)
http://fr.wikipedia.org/wiki/Méthode_d'évaluation_de_logiciels_libres
Page 65 / 90 Dpt. INF O. Berger
68. Conduite de projet
Analyse des besoins
Spécification
Architecture
Conception détaillée
Codage
Tests
?
Déploiement
Page 68 / 90 Dpt. INF O. Berger
69. Maintien en condition opérationnelle
Réactivitépour les mises à jour
Diminuer l'adhérence dans les composants
spécifiques
Page 69 / 90 Dpt. INF O. Berger
70. Stabilisation impossible
Mises à jour de sécurité permanentes
Répétition des mises à jour
Automatisation souhaitable
Diminuer la taille du code spécifique
Page 70 / 90 Dpt. INF O. Berger
71. Reverser au projet
Rendre générique les éléments spécifiques
Maintenus à l'extérieur
Améliorés à l'extérieur
Pas besoin de les repackager
Plus facile à dire qu'à faire
Page 71 / 90 Dpt. INF O. Berger
72. Compétences pour le développement
Rendre générique ce qui peut l'être
Méthodologie d'intégration
Support de certains matériels (distributions
supportées)
Virtualisation (Xen, etc.)
Savoir packager (exemple : Debian)
Page 72 / 90 Dpt. INF O. Berger
74. Repackager i810switch (suite)
$ apt-get source i810switch
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Nécessité de prendre 32,3ko dans les sources.
Réception de : 1 http://ftp.fr.debian.org testing/main i810switch 0.6.5-3 (dsc) [593B]
Réception de : 2 http://ftp.fr.debian.org testing/main i810switch 0.6.5-3 (tar) [24,3kB]
Réception de : 3 http://ftp.fr.debian.org testing/main i810switch 0.6.5-3 (diff) [7376B]
32,3ko réceptionnés en 0s (271ko/s)
gpg: Signature made ven 22 déc 2006 00:06:16 CET using DSA key ID 0917A9E4
gpg: Can't check signature: public key not found
dpkg-source : extraction de i810switch dans i810switch-0.6.5
dpkg-source : extraction de i810switch_0.6.5.orig.tar.gz
dpkg-source : mise en place de ./i810switch_0.6.5-3.diff.gz
$ cd i810switch-0.6.5/
$ wget quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?
msg=15;filename=i810switch_macbook_support.patch;att=1;bug=374638quot;
$ patch -p1 <i810switch_macbook_support.patch
patching file debian/changelog
patching file i810switch.c
$ dpkg-buildpackage -rfakeroot
dpkg-buildpackage: source package i810switch
dpkg-buildpackage: source version 0.6.5-4
dpkg-buildpackage: source changed by Thomas Perl <thp@perli.net>
dpkg-buildpackage: host architecture i386
fakeroot debian/rules clean
dh_testdir
dh_testroot
...
dpkg-deb : construction du paquet « i810switch » dans « ../i810switch_0.6.5-4_i386.deb ».
Page 74 / 90 Dpt. INF O. Berger
75. Connaître un projet libre
Comment s'y prendre pour collaborer
Etre de bonne volonté
Pas magique
Ne pas être naïf
Page 75 / 90 Dpt. INF O. Berger
76. Pas que la licence
Communauté
• développement
• utilisatrice
Personnes
Acteurs économiques
But, objectifs
Méthodologie
Qualités propres du code
Page 76 / 90 Dpt. INF O. Berger
77. Rapide panorama d'un écosystème
Debian
Debian
s
rs ion
ve gs packages
bu
Développeurs versions Utilisateurs
amont RedHat
RedHat
bugs
(“upstream”)
bugs
ve
rsi
bu ons
gs
OpenSuse
Éditeurs SSII
distributions
Page 77 / 90 Dpt. INF O. Berger
78. Règles de vie en communauté
Bénévoles (motivations)
Professionnels
Contractualisation ?
Roadmap
Stratégie de stabilisation de versions
Système d'Assurance Qualité
Leadership
Page 78 / 90 Dpt. INF O. Berger
79. Enjeux sociaux plus que techniques
Comprendre les règles du jeu
Identifier les éléments influents
Motiver des bénévoles
Faire accepter ses contributions
Impact sur les décisions
Prouver son implication
Se faire (re-)connaître
Anticiper les alea
Page 79 / 90 Dpt. INF O. Berger
80. Contribuer : une nécessité
Cercle vertueux des contributions
Quasi-obligation du fait des licences
Externalisation de la maintenance
Se faire plaisir et apprendre en vraie grandeur
Se faire connaître et reconnaître
Influer sur le pilotage d'un projet
Page 80 / 90 Dpt. INF O. Berger
81. C'est l'histoire d'un bug
* From: Olivier Berger < olivier.berger@int-edu.eu>
* To: quot; Sympa-dev@cru.frquot; < Sympa-dev@cru.fr>
* Subject: [sympa-dev] Re: Re: authenticateAndRun for createList not working in SOAP server in 5.3.3 ?
* Date: Fri, 21 Sep 2007 16:58:26 +0200
Le vendredi 21 septembre 2007 à 16:29 +0200, Olivier Berger a écrit :
> >
> > I'm using the soap client in Perl in which I did something like :
> > $reponse =
> > $soap->authenticateAndRun($user_email,$md5,'createList',
['essai5','essai5','picoforge_publicproject_members','List
> > essai4 of project essai4','essai4'])
> > &print_result($reponse);
> > called with the listmaster user...
> >
Having a look at the createList() code in sympasoap.pm, I see :
...
unless ($reject){
&Log::do_log('info', 'create_list
%s@%s
from %s refused, missing parameter(s) %s', $listname,$robot,$sender,$reject);
die SOAP::Fault->faultcode('Server')
->faultstring('Missing parameter')
->faultdetail(quot;Missing required parameter(s) : $rejectquot;);
}
Wouldn't it be :
*IF* ($reject){
&Log::do_log('info', 'create_list
%s@%s
from %s refused, missing parameter(s) %s', $listname,$robot,$sender,$reject);
die SOAP::Fault->faultcode('Server')
->faultstring('Missing parameter')
->faultdetail(quot;Missing required parameter(s) : $rejectquot;);
}
instead of unless ?
Page 81 / 90 Dpt. INF O. Berger
82. Bug Sympa dans Debian
Page 82 / 90 Dpt. INF O. Berger
J+5
87. Comment bien contribuer
Iln'y a pas besoin de savoir coder
Assurer une veille régulière
Beaucoup d'effort même pour des choses
simples
Minimum légal : faire vivre la base de bugs
Page 87 / 90 Dpt. INF O. Berger
88. Comment bien contribuer (suite)
Accepter des usages sociaux différents
Communiquer avant tout
Jouer le jeu selon les règles
Eviter l' « abandonware » non déclaré
Contribuer un nouveau module au bon endroit
Investir dans une forge pour un nouveau
logiciel
Page 88 / 90 Dpt. INF O. Berger
89. Conclusion
Loin de l'exhaustivité
Le libre est un changement extrèmement positif
Plein d'oportunités
Pas un seul modèle : mais quelques bonnes
pratiques générales
Contribuer est nécessaire pour la survie du
modèle, mais aussi concrètement dans les
effets utiles aux projets locaux.
Page 89 / 90 Dpt. INF O. Berger
90. Merci de votre attention
Page 90 / 90 Dpt. INF O. Berger