Retour d'expérience sur la conduite d'un projet libre - Presentation Transcript
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 »
<hype mode=\"on\">
Le libre
c'est bon.
Mangez-en !
O. Berger 2/9
Dans le
libre, on
se fait
vite plein
d'amis !
O. Berger 3/9
Mettez votre
logiciel sous
GPL
succès assuré !
O. Berger 4/9
Les failles de
sécu sont
corrigées
super vite !
patch#45678
O. Berger 5/9
Les
contributeurs
travaillent
gratuitement
vite et bien
O. Berger 6/9
La solution à
tous les
problèmes de
développement
...
O. Berger 7/9
Après
l'outsourcing
le
CrowdSourcing
</hype> O. Berger 8/9
Foutaise ?
O. Berger 9/9
Plus sérieusement...
Page 10 / 90 Dpt. INF O. Berger
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
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
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
Contenu
Introduction générale
Collaboration dans
l'écosystème libre
Page 14 / 90 Dpt. INF O. Berger
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
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
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
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
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
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
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
Software Wars
Page 25 / 90 Dpt. INF O. Berger
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
« Commoditisation » du logiciel
Page 27 / 90 Dpt. INF O. Berger
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: \"Counting potatoes\" par Gonzalez-Barahona et al)
Cf. http://ohloh.net pour d'autres chiffres
Page 28 / 90 Dpt. INF O. Berger
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
« 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
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
Résistances
Copyright / droit d'auteur
Brevets
DRM
FUD
...
Dpt. INF
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
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
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
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
Le libre est global
Page 37 / 90 Dpt. INF O. Berger
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
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
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
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
\"The Cathedral and the Bazaar\" (Eric Raymond)
Page 41 / 90 Dpt. INF O. Berger
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
Bon sang, mais c'est le bazar !
Classical analysis of Apache modules feb. 2004 (source [Robles])
Page 43 / 90 Dpt. INF O. Berger
Amélioration de la visualisation
Reshaped with Girvan-Newman algorithm (source
[Robles])
Page 44 / 90 Dpt. INF O. Berger
Apache 01/01/1999
Page 45 / 90 Dpt. INF O. Berger
Apache 01/01/2000
Page 46 / 90 Dpt. INF O. Berger
Apache 01/09/2000
Page 47 / 90 Dpt. INF O. Berger
Apache 01/01/2002
Page 48 / 90 Dpt. INF O. Berger
Apache 01/02/2004
Page 49 / 90 Dpt. INF O. Berger
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
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
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
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
Licences libres
Page 54 / 90 Dpt. INF O. Berger
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
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
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
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
Introduction générale
Collaboration dans
l'écosystème libre
Page 59 / 90 Dpt. INF O. Berger
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
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
Problématiques spécifiques aux
projets basés sur le libre
Page 63 / 90 Dpt. INF O. Berger
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
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
Conduite de projet
Analyse des besoins
Spécification
Architecture
Conception détaillée
Codage
Tests
?
Déploiement
Page 68 / 90 Dpt. INF O. Berger
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
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
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
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
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 \"http://bugs.debian.org/cgi-bin/bugreport.cgi?
msg=15;filename=i810switch_macbook_support.patch;att=1;bug=374638\"
$ 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
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
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
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
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
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
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
C'est l'histoire d'un bug
* From: Olivier Berger < olivier.berger@int-edu.eu>
* To: \" Sympa-dev@cru.fr\" < 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(\"Missing required parameter(s) : $reject\");
}
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(\"Missing required parameter(s) : $reject\");
}
instead of unless ?
Page 81 / 90 Dpt. INF O. Berger
Bug Sympa dans Debian
Page 82 / 90 Dpt. INF O. Berger
J+5
Page 83 / 90 Dpt. INF O. Berger
J+6
Committed upstream (branch in SVN)
Page 84 / 90 Dpt. INF O. Berger
J+6
Migration vers Debian
J+7
Accepted sympa 5.3.3-5 (source i386)
Date: Fri, 26 Oct 2007 11:56:09 +0200
Source: sympa
Binary: sympa
Architecture: source i386
Version: 5.3.3-5
Distribution: unstable
Urgency: low
Maintainer: Stefan Hornburg (Racke) <racke@linuxia.de>
Changed-By: Stefan Hornburg (Racke) <racke@linuxia.de>
Description:
sympa - Modern mailing list manager
Closes: 443802 444188 444304 447721 447945
Changes:
sympa (5.3.3-5) unstable; urgency=low
.
* fix createList not invoked from authenticateAndRun on SOAP server
(Closes: #444188)
J+35
Page 85 / 90 Dpt. INF O. Berger
Page 86 / 90 Dpt. INF O. Berger
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
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
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
Merci de votre attention
Page 90 / 90 Dpt. INF O. Berger
0 comments
Post a comment