Retour d'expérience sur la conduite d'un projet libre

  • View
    4.747

  • Download
    1

  • Category

    Business

Preview:

Citation preview

Retour d'expérience sur laconduite d'un projet libre

Olivier Berger, TELECOM & Management SudParis - Département INF<olivier.berger@it-sudparis.eu>

TELECOM Bretagnefilière de 3ème année« Systèmes logiciels et réseaux »

O. Berger 2 / 9

Le libre Le libre c'est bon.c'est bon.

Mangez-en !Mangez-en !

<hype mode="on">

O. Berger 3 / 9

Dans le Dans le libre, on libre, on se fait se fait

vite plein vite plein d'amis !d'amis !

O. Berger 4 / 9

Mettez votre Mettez votre logiciel sous logiciel sous

GPLGPL

succès assuré !succès assuré !

O. Berger 5 / 9

Les failles de Les failles de sécu sont sécu sont corrigées corrigées

super vite !super vite !

patch#45678patch#45678

O. Berger 6 / 9

Les Les contributeurs contributeurs

travaillent travaillent gratuitementgratuitement

vite et bienvite et bien

O. Berger 7 / 9

La solution à La solution à tous les tous les

problèmes de problèmes de développementdéveloppement

......

O. Berger 8 / 9

le le CrowdSourcingCrowdSourcing

Après Après l'outsourcingl'outsourcing

</hype>

O. Berger 9 / 9

Foutaise ?Foutaise ?

O. BergerPage 10 / 90 Dpt. INF

Plus sérieusement...

O. BergerPage 11 / 90 Dpt. INF

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 DebianRecherche : 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/

O. BergerPage 12 / 90 Dpt. INF

Sondage rapide

Déjà eu des cours sur le sujet ?Logiciel libre ? Linux ? GNU ? FSF ?APRIL, AFUL, etc. ?Firefox ?Ubuntu ?Creative Commons ?

O. BergerPage 13 / 90 Dpt. INF

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 libreDémythifier un modèle loin d'être magique

O. BergerPage 14 / 90 Dpt. INF

Contenu

Introduction générale

Collaboration dans l'écosystème libre

Dpt. INF

Introduction générale sur le libre

PrincipesGéopolitique de l'Industrie logicielleHistorique« Sociologie » d'une communautéConsidérations juridiquesChoix de logiciels libres / OpenSource

O. BergerPage 16 / 90 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)

O. BergerPage 17 / 90 Dpt. INF

Terminologie

Libre ~= OpenSourceLiberté !Coût ?Autres :

• freeware, domaine public, shareware, shared source, etc.

Libre = ouvert ?Ne pas se fier aux déclarations : vérifier les

licences

O. BergerPage 18 / 90 Dpt. INF

Libre vs. non-libre

En théorie, identification facile :droit d'utilisation : OK - NOKdroit d'étudier : OK - NOKdroit de modifier : OK - NOKdroit 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/).

O. BergerPage 19 / 90 Dpt. INF

Logiciel libre

O. BergerPage 20 / 90 Dpt. INF

Logiciel non-libre (Propriétaire)

O. BergerPage 21 / 90 Dpt. INF

Exemples de logiciels libres

GNU/Linux, FreeBSD, OpenBSDApachePerl, PHP, PythonJava (récent)EclipseGNOME, KDE, etc.Jonas, MySQL, PostgreSQLAsteriskVideolanFirefox, OpenOffice, Thunderbirdetc.

O. BergerPage 22 / 90 Dpt. INF

Annuaires

Freshmeat http://freshmeat.net/ (43000 projets)FSF/Unesco : http://directory.fsf.org/ (5400

projets)FramasoftPlume (Promouvoir les Logiciels Utiles

Maîtrisés et Economiques dans l'Enseignement Supérieur et la Recherche) : http://www.projet-plume.org/

O. BergerPage 23 / 90 Dpt. INF

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.)

ImpotsPoste de travail des gendarmesPC préinstallés gOs, Zonbu, Ubuntu ...

O. BergerPage 24 / 90 Dpt. INF

IntroductionPrincipesGéopolitique de l'Industrie logicielleHistorique« Sociologie » d'une communautéConsidérations juridiquesChoix de logiciels libres / OpenSource

O. BergerPage 25 / 90 Dpt. INF

Software Wars

O. BergerPage 26 / 90 Dpt. INF

Bataille immense

Réduire les coûts (commoditisation)Effets de réseaux pour établir des standardsMutualiser la R&D« Co-opétition » :

• coopération• compétition

Prendre position dans le libre pour maîtriser son évolution

Modèles économiques ?

O. BergerPage 27 / 90 Dpt. INF

« Commoditisation » du logiciel

O. BergerPage 28 / 90 Dpt. INF

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

O. BergerPage 29 / 90 Dpt. INF

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 communsMouvement « 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/

O. BergerPage 30 / 90 Dpt. INF

« Mouvement » Open Source ?

Approche orientée vers le marché (créé en réaction au mouvement du libre)

Bénéfices pratiquesCoûts (ambiguïté free)« Mouvement »

• Open Source Initiative (http://www.opensource.org)

• La plupart des industriels de l'informatique, les SS2I, etc.

Dpt. INF

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'auteurBrevetsDRMFUD ...

O. BergerPage 33 / 90 Dpt. INF

IntroductionPrincipesGéopolitique de l'Industrie logicielleHistorique« Sociologie » d'une communautéConsidérations juridiquesChoix de logiciels libres / OpenSource

O. BergerPage 34 / 90 Dpt. INF

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 sponsoriseJava sous GPLAndroid...

O. BergerPage 35 / 90 Dpt. INF

Aujourd'hui incontournable

20/25 ans plus tardLa partie est en voie d'être gagnée

Mais au fait, comment ça marche !?!

O. BergerPage 36 / 90 Dpt. INF

IntroductionPrincipesGéopolitique de l'Industrie logicielleHistorique« Sociologie » d'une communautéConsidérations juridiquesChoix de logiciels libres / OpenSource

O. BergerPage 37 / 90 Dpt. INF

Le libre est global

O. BergerPage 38 / 90 Dpt. INF

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.

O. BergerPage 39 / 90 Dpt. INF

Où sont ces développeurs ?

Par pays (SourceForge) :

Rang Pays Developpeurs1. United States 4256202. Germany 958003. United Kingdom 607684. Canada 491095. France 445876. China 36517... ... ...

(source : Gregorio Robles and Jesús M. González Barahona - 2006)

O. BergerPage 40 / 90 Dpt. INF

Où sont ces développeurs ? (2)

Par continent :

Continent DéveloppeursAfrica 12 560Asia 127 275EU 401 845Europe 466 792North America 485 679Oceania 46 422South America 36 330

(source : Gregorio Robles and Jesús M. González Barahona – 2006)

O. BergerPage 41 / 90 Dpt. INF

Comment le libre est-il développé ?

Outils de 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)

O. BergerPage 42 / 90 Dpt. INF

Communautés, résaux sociaux

Linux 1.0 (1994)Developers linked by common authorship to same filessource [Robles]

O. BergerPage 43 / 90 Dpt. INF

Bon sang, mais c'est le bazar !

Classical analysis of Apache modules feb. 2004 (source [Robles])

O. BergerPage 44 / 90 Dpt. INF

Amélioration de la visualisation

Reshaped with Girvan-Newman algorithm (source [Robles])

O. BergerPage 45 / 90 Dpt. INF

Apache 01/01/1999

O. BergerPage 46 / 90 Dpt. INF

Apache 01/01/2000

O. BergerPage 47 / 90 Dpt. INF

Apache 01/09/2000

O. BergerPage 48 / 90 Dpt. INF

Apache 01/01/2002

O. BergerPage 49 / 90 Dpt. INF

Apache 01/02/2004

O. BergerPage 50 / 90 Dpt. INF

IntroductionPrincipesGéopolitique de l'Industrie logicielleHistorique« Sociologie » d'une communautéConsidérations juridiquesChoix de logiciels libres / OpenSource

O. BergerPage 51 / 90 Dpt. INF

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 licenceLe libre rééquilibre la donne en faveur des tiers,

utilisateurs, concurrents

O. BergerPage 52 / 90 Dpt. INF

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 droitsLicence libres établissent des exceptionsŒuvres composites : compliquéMixibilité des licences ?

O. BergerPage 53 / 90 Dpt. INF

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éeAu départ destiné à protéger l'intérêt généralDériveControverse législative en Europe

O. BergerPage 54 / 90 Dpt. INF

Licences libres

O. BergerPage 55 / 90 Dpt. INF

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

O. BergerPage 56 / 90 Dpt. INF

IntroductionPrincipesGéopolitique de l'Industrie logicielleHistorique« Sociologie » d'une communautéConsidérations juridiquesChoix de logiciels libres / OpenSource

O. BergerPage 57 / 90 Dpt. INF

Qualités

Prépare l'avenirSécuritéAdaptabilité IndépendanceFaible coûtPortabilité ...

Encore faut-il vérifier ?Qui fait vraiment ce travail ?

O. BergerPage 58 / 90 Dpt. INF

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ésDe nombreux mode d'organisation socialeComme dans la « vie réelle » c'est souvent plus

subtil que ce qu'on en dit dans les présentations ou les publicités !

O. BergerPage 59 / 90 Dpt. INF

Introduction générale

Collaboration dans l'écosystème libre

Dpt. INF

Retour d'expérience : projet PicoForge

Projet « logiciel libre » développé• Initialement à l'ENST Bretagne (2001 >)• Puis à l'INT

Développement peu ouvertUtilisé principalement à l'Institut TELECOM (ex.

GET)Connaître les mécanismes du libre en les

pratiquantProjet déployé en interne en se basant sur

l'intégration de composants externesProblématique de la maintenabilité : nécessité

de contribution

Dpt. INF

Plate-forme « Forge »

Assemblage logiciels libresContruire 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

SSH

Architecture de PicoForge

Apache2  + dav

openLDAP

MySQL

Sympa

CVS

phpGoupWare

SVN

TWiki

Mantis

picoForgeAPI

Pico Modules

Pico Backend

O. BergerPage 63 / 90 Dpt. INF

Problématiques spécifiques aux projets basés sur le libre

O. BergerPage 64 / 90 Dpt. INF

Sélection d'un produit

Simplicité et réactivitéNe pas confondre vitesse et précipitationSous-traiter ce qui peut l'être Identifier les éléments critiques et monter en

compétencePréférer les solutions déjà packagées

O. BergerPage 65 / 90 Dpt. INF

Nombreuses qualités

Qualités génériques ... déjà connuesQualités particulières d'un logiciel libre

=> à é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

● diminution du risque de clients captifs par une concurrence accrue,

● partage de connaissance entre tous les acteurs,

● respect des standards, portabilité, ● réversibilité sur les tâches sous-traitées, etc.

O. BergerPage 66 / 90 Dpt. INF

Méthode QSOS http://www.qsos.org/

O. BergerPage 67 / 90 Dpt. INF

Fiche QSOS

O. BergerPage 68 / 90 Dpt. INF

Conduite de projetAnalyse des besoins

Spécification

Architecture

Conception détaillée

Codage

Tests

Déploiement

?

O. BergerPage 69 / 90 Dpt. INF

Maintien en condition opérationnelle

Réactivité pour les mises à jourDiminuer l'adhérence dans les composants

spécifiques

O. BergerPage 70 / 90 Dpt. INF

Stabilisation impossible

Mises à jour de sécurité permanentesRépétition des mises à jourAutomatisation souhaitableDiminuer la taille du code spécifique

O. BergerPage 71 / 90 Dpt. INF

Reverser au projet

Rendre générique les éléments spécifiquesMaintenus à l'extérieurAméliorés à l'extérieurPas besoin de les repackager

Plus facile à dire qu'à faire

O. BergerPage 72 / 90 Dpt. INF

Compétences pour le développement

Rendre générique ce qui peut l'êtreMéthodologie d'intégrationSupport de certains matériels (distributions

supportées)Virtualisation (Xen, etc.)Savoir packager (exemple : Debian)

O. BergerPage 73 / 90 Dpt. INF

Repackager i810switch

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374638#15

O. BergerPage 74 / 90 Dpt. INF

Repackager i810switch (suite)$ apt-get source i810switchLecture des listes de paquets... FaitConstruction de l'arbre des dépendances Lecture des informations d'état... FaitNé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 0917A9E4gpg: Can't check signature: public key not founddpkg-source : extraction de i810switch dans i810switch-0.6.5dpkg-source : extraction de i810switch_0.6.5.orig.tar.gzdpkg-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.patchpatching file debian/changelogpatching file i810switch.c

$ dpkg-buildpackage -rfakerootdpkg-buildpackage: source package i810switchdpkg-buildpackage: source version 0.6.5-4dpkg-buildpackage: source changed by Thomas Perl <thp@perli.net>dpkg-buildpackage: host architecture i386 fakeroot debian/rules cleandh_testdirdh_testroot

...

dpkg-deb : construction du paquet « i810switch » dans « ../i810switch_0.6.5-4_i386.deb ».

O. BergerPage 75 / 90 Dpt. INF

Connaître un projet libre

Comment s'y prendre pour collaborerEtre de bonne volontéPas magiqueNe pas être naïf

O. BergerPage 76 / 90 Dpt. INF

Pas que la licence

Communauté• développement• utilisatrice

PersonnesActeurs économiquesBut, objectifsMéthodologieQualités propres du code

O. BergerPage 77 / 90 Dpt. INF

Rapide panorama d'un écosystème

Développeursamont

(“upstream”)

OpenSuse

DebianDebian

RedHatRedHat

distributions

versions

versions

versions

bugs

bugs

bugs

Utilisateurs

SSIIÉditeurs

packages

bugs

O. BergerPage 78 / 90 Dpt. INF

Règles de vie en communauté

Bénévoles (motivations)ProfessionnelsContractualisation ?RoadmapStratégie de stabilisation de versionsSystème d'Assurance QualitéLeadership

O. BergerPage 79 / 90 Dpt. INF

Enjeux sociaux plus que techniques

Comprendre les règles du jeu Identifier les éléments influentsMotiver des bénévolesFaire accepter ses contributions Impact sur les décisionsProuver son implicationSe faire (re-)connaîtreAnticiper les alea

O. BergerPage 80 / 90 Dpt. INF

Contribuer : une nécessité

Cercle vertueux des contributionsQuasi-obligation du fait des licencesExternalisation de la maintenanceSe faire plaisir et apprendre en vraie grandeurSe faire connaître et reconnaître Influer sur le pilotage d'un projet

O. BergerPage 81 / 90 Dpt. INF

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@%sfrom %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@%sfrom %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 ?

O. BergerPage 82 / 90 Dpt. INF

Bug Sympa dans Debian

J+5

O. BergerPage 83 / 90 Dpt. INFJ+6

O. BergerPage 84 / 90 Dpt. INF

Committed upstream (branch in SVN)

J+6

O. BergerPage 85 / 90 Dpt. INF

Migration vers Debian

Accepted sympa 5.3.3-5 (source i386)

Date: Fri, 26 Oct 2007 11:56:09 +0200Source: sympaBinary: sympaArchitecture: source i386Version: 5.3.3-5Distribution: unstableUrgency: lowMaintainer: Stefan Hornburg (Racke) <racke@linuxia.de>Changed-By: Stefan Hornburg (Racke) <racke@linuxia.de>Description: sympa - Modern mailing list managerCloses: 443802 444188 444304 447721 447945Changes: sympa (5.3.3-5) unstable; urgency=low . * fix createList not invoked from authenticateAndRun on SOAP server (Closes: #444188)

J+7

J+35

O. BergerPage 86 / 90 Dpt. INF

O. BergerPage 87 / 90 Dpt. INF

Comment bien contribuer

Il n'y a pas besoin de savoir coderAssurer une veille régulièreBeaucoup d'effort même pour des choses

simplesMinimum légal : faire vivre la base de bugs

O. BergerPage 88 / 90 Dpt. INF

Comment bien contribuer (suite)

Accepter des usages sociaux différentsCommuniquer avant toutJouer le jeu selon les règlesEviter l' « abandonware » non déclaréContribuer un nouveau module au bon endroit Investir dans une forge pour un nouveau

logiciel

O. BergerPage 89 / 90 Dpt. INF

Conclusion

Loin de l'exhaustivité

Le libre est un changement extrèmement positifPlein 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.

O. BergerPage 90 / 90 Dpt. INF

Merci de votre attention