Méthodes et outils employés pour développer des logiciels libres Étude basée sur le cas du projet Debian Par Raphaël Hertzog Gérant de Freexian SARL Développeur.

Slides:



Advertisements
Présentations similaires
FAIRE SA BIBLIOGRAPHIE DE THESE AVEC ZOTERO Traitements de texte pris en compte: Word et LibreOffice.
Advertisements

UML EPITECH 2009 UML1 - Introduction UML – Définition – Historique – UML en entreprise – Couverture Concepts – Objet – Classe –
GCstar Gestionnaire de collections personnelles Christian Jodar (Tian)
Les Logiciels Libres une informatique ouverte et citoyenne Samedi 25 Mars Thomas Petazzoni
1 Logiciels Libres Planète en fête 6-7 Juillet 2007.
Les sauvegardes Pourquoi sauvegarder ? Que sauvegarder ? Quand sauvegarder ? Ou sauvegarder ? Et comment ?
Composants Matériels de l'Ordinateur Plan du cours : Ordinateurs et applications Types d'ordinateurs Représentation binaires des données Composants et.
Présentation stages 2009 (INRA) Développement des interfaces du projet VLE: GVLE & VLE-WEB.
Logiciel Assistant Gestion d’Événement Rémi Papillié (Chef d’équipe) Maxime Brodeur Xavier Pajani Gabriel Rolland David St-Jean.
Les Logiciels Libres en pratique Samedi 25 mars 2006 Toulibre
1 Chaîne éditoriale et catalogue de formation Université de Picardie Jules Verne.
Étude de cas: Implantation de Zimbra chez Remax Québec Hugues Clouâtre Gestion-Ressources Inc.
25/09/2016 La communauté des développeurs du noyau Linux Jean DELVARE SuSE R&D, Support noyau Solutions Linux 2007, 31 janvier 2007.
Messagerie Open Source à la DGCP Implémentation réalisée par IBM et Pilot Systems Sylvain Viollon.
1 Mai 2009 P. E. P. I. T A P réparation et E dition de P lan I nformatisé de gestion du T r A fic.
Créer un site Web avec Eva Spip Première approche B. Gugger – Mars 2006 – Département RTC.
Dans les coulisses d'une distribution Linux Juillet 2011 Michael Scherer.
Passer aux Logiciels Libres à la maison Libres Clics 2007 Thomas Petazzoni Dimanche 7 Janvier.
VHFFS : Enlarge your hosting Sylvain Rochet Samuel Lesueur Cette présentation est sous contrat Paternité-Partage des Conditions Initiales à l'Identique.
1 Y a-t-il une place pour Opensocial dans l'enseignement supérieur ? David Verdin RENATER JRES - Toulouse – novembre 2011.
Le projet Debian Sam Hocevar 30 juin 2007 Cité des Sciences et de l’Industrie Debian, mais aussi Ubuntu, et le futur.
Fenixs Boostzone SARL - 24/28 rue de la Pépinière Paris - Tél.: PROGRAMME DE FORMATION 2010 LES FORMATIONS DE L’INSTITUT.
 le travail collaboratif  le travail collaboratif ne dépend pas d’une répartition des rôles. Chacun des membres du groupe travaille ainsi sur les mêmes.
Projet de formation en conduite de changement Laurent GIROD-ROUX / mars 2016.
 Notion de réseaux informatiques  Infrastructure d’un réseau local  Environnement matériel d’un réseau local  Catégories de réseaux  Les typologies.
A partir du 1er mars 2016 : 2 offres
Services ENTREPRISES Réussir tous vos RECRUTEMENTS
Augmenter la productivité de vos Services Généraux avec ServiceNow !
Licence Informatique DEVELOPPEUR ANDROID
Mise en place d’un système de partage de fichiers
Charte de bonnes pratiques de la messagerie électronique
LimeSurvey : Logiciel Open Source pour réaliser des enquêtes
VOTRE SIMULATEUR DE BUDGET
Rapport d’activité APIM – 2015/2016
Formation « Administrateur ATRIUM »
Gestion de version centralisée et décentralisée
Outils web pour votre vie numérique
Le « Bugtracking » Alejandro FERNANDEZ – Etienne FONTEIX
Qu'est-ce que KDE ? Le bureau de KDE4 et comment l'utiliser
Fleet Management.
Amélioration de la qualité des forfaits
Produire, collaborer, partager avec un blog d’école
D5 – Travailler en réseau, communiquer et collaborer
Journée pédagogique 16 septembre 2014
Présentation du SI RH Le SI RH, couvre l'ensemble des processus de gestion d'une DRH, de la gestion des recrutements à celle des formations et des carrières.
CeMEB La plateforme MBB
Programmation système
CeMEB La plateforme MBB
La génèse d'un Logiciel Libre :
la structure de l’entreprise: Définition : La structure organisationnelle d’une entreprise définie le mode d’organisation entre les différentes unités.
Les applications de groupware
Plus de 4000 langages....
</Présentation de solutions documentaires>
Gestion du patrimoine informatique
Outils et principes de base. Exemple d’application  Gestion de données d’enquête : Interface de saisie en ligne  insère directement les données dans.
CONCEPTION D’UN SYSTÈME INTELLIGENT DE MANAGEMENT D’UNE FLOTTE DE VEHICULES
Amélioration de la qualité des forfaits Vers la démarche CMM.
Chapitre2: SGBD et Datawarehouse. On pourrait se demander pourquoi ne pas utiliser un SGBD pour réaliser cette structure d'informatique décisionnelle.
Paris web 2007 Référentiel Général d’accessibilité pour les Administrations Choix initiaux, cadre général et déploiement.
Présentation de l’outil
Mise en place d’une gestion de type ERP
Définir le travail collaboratif à distance « travail réalisé en commun par plusieurs personnes qui mutualisent leurs connaissances et leurs compétences,
ORGANISER DES MANIFESTATIONS SCIENTIFIQUES A LA SFA
PLATE FORME DE GESTION ÉLECTRONIQUE DE DOCUMENTS Présenté par: Amine LARIBI.
DMP Comité opérationnel de déploiement Ille et Vilaine
Pro ORDE DU JOUR Présentation de Poste Maroc
Apprentissage de la lecture au cycle 2
Qu’est ce qu’une page web? Comment fonctionne un site web?
Transcription de la présentation:

Méthodes et outils employés pour développer des logiciels libres Étude basée sur le cas du projet Debian Par Raphaël Hertzog Gérant de Freexian SARL Développeur Debian

Présentation du projet Debian ● Objectif : créer un système d'exploitation entièrement libre ● Les contributeurs sont bénévoles et acceptent les valeurs défendues par les deux textes fondateurs du projet – le contrat social – la définition d'un logiciel libre selon Debian

Plan de la présentation ● Structure et organisation – Communautés structurées autour de différents moyens de communication ● Méthodes de travail – Transparence, ouverture à tous, contributions encouragées et facilités ● Outils employés – Pour la documentation, la diffusion, la programmation, etc. ● Transposition à une entreprise ?

Structure et organisation ● La communauté est la première ressource d'un projet libre comme Debian – 1000 développeurs officiels, plusieurs milliers de contributeurs occasionnels – des dizaines de milliers d'utilisateurs (certainement beaucoup plus mais aucun chiffre officiel n'existe) ● Une communauté n'existe qu'au travers d'un outil de communication permettant aux membres d'échanger ● Si trop de monde => création de « sous- communautés spécialisées »

Outils de communication ● Listes de diffusion : – plus de 160 listes; 1,2 millions de mails envoyés chaque jour (36000 messages différents par mois); ● Discussion en temps réel (IRC) : irc.debian.org – #debian-devel: 200 personnes connectées à toute heure de la journée ● Site web : – Ainsi que de nombreux sites « officieux » ● Blogs :

Hiérarchie très légère ● Souvent un dictateur bénévole – Initiateur du projet qui a l'autorité ultime sur l'évolution du logiciel (ex: Linus Torvalds sur le noyau Linux) ● De temps en temps, une structure un peu plus formalisée – Debian: leader élu annuellement par les développeurs (selon les règles de la constitution Debian) ● Toujours une méritocratie : les galons se gagnent en faisant quelque chose d'utile pour le projet (« celui qui fait, décide »).

Méthodologies de développement ● Modèle « bazar » (vs « cathédrale »). – – Cathédrale: modèle traditionnel, organisé et centralisé (spécifications, conception, développement, tests) – Bazar: modèle du logiciel libre (mosaïque des contributions individuelles) ● Ouverture – Peu de préjugés car communication relativement impersonnelle – Disponibilité des codes sources et de tout l'historique – Large base d'utilisateurs testeurs des versions en développement

Méthodologies (suite) ● Transparence – Le processus de développement est public ainsi que les discussions ayant menées à un choix donné dans le passé – La liste des choses à faire et des bogues est publique ● Contributions encouragées et facilitées – Intégration rapide des améliorations => satisfaction du travail utile pour le contributeur – Chaque utilisateur est un contributeur potentiel

Cas de Debian ● Système de suivi de bogue public : ● Distributions en développement (« testing / unstable ») mises à jour quotidiennement – sources et binaires disponibles sur de nombreux miroirs (serveurs de téléchargement) – employées par de nombreux utilisateurs avancés ● Processus de parrainage pour accueillir de nouveaux développeurs ● Archives en ligne de toutes les listes de diffusion :

Outils employés ● Pour développer : – gestion de la configuration (cvs, svn, arch,...) – système de suivi de bogues ● Pour documenter : – outil d'édition collaboratif (wiki) – rédaction document balisé + chaîne de conversion ● Pour assurer le suivi : – système de « traceur » (souvent lié au système de suivi de bogues)

Gestion de la configuration ● Gestion de codes sources – Permet à plusieurs personnes de travailler en parallèle et de synchroniser leur travail (gestion des conflits, possibilité de fusion avancée) – Permet de maintenir plusieurs versions en parallèle (une stable, une version de développement, etc.) – Traçabilité de tous les changements (génération de diffs, consultation des messages de logs associés, etc.)

Gestion de la configuration (suite) ● Outils libres : SVN (Subversion), Arch, CVS (Concurrent Version System),... ● Interfaces web – Navigation dans l'archive avec consultation des versions historiques ; possibilité de voir les différences entre plusieurs versions et de retrouver qui est responsable d'un bout de code donné – –

Système de suivi de bogues ● Répertorier et classer les problèmes connus pour mieux les corriger ● Système de priorité et de gravité – Gravité : importance de l'impact du problème sur les utilisateurs – Priorité : classement indépendant pour trier selon les priorités des développeurs ● Catégorisation par sous-système ● Répartition entre plusieurs développeurs ● Affectation d'un bogue à une version future (planification de correction)

Système de suivi de bogues (suite) ● Debian utilise « debbugs » – totalement piloté par courrier électronique – interface web pour la consultation uniquement – adapté à la structure de Debian (organisation autour de nombreux paquets logiciels) ● Autre logiciel populaire : – bugzilla : – tout s'effectue dans une interface web

Outils pour la documentation ● La documentation est une tâche souvent négligée, rarement faite par les développeurs eux-mêmes ● Comme pour les codes sources, il faut des outils permettant à plusieurs personnes de collaborer efficacement – Soit la documentation est intégrée dans les sources sous forme de document XML (docbook) – Soit la documentation est intégrée dans le site web et un « wiki » permet alors à tout le monde de l'étendre et de la corriger facilement

Documentation avec langage balisé ● Un langage balisé comme le « Docbook-XML » permet de rédiger un document avec un simple éditeur de texte et de contribuer à plusieurs via l'outil habituel de gestion de la configuration ● Une chaîne de traitement XSLT permet ensuite de générer la documentation dans différents formats (HTML pour le web, PDF pour l'impression, etc.). ● Avantage : documentation intégrée dans les sources ● Inconvénient : docbook est un langage nécessitant un période d'apprentissage

Documentation dans un wiki ● Un wiki est un site web qui peut-être directement édité et complété par ses visiteurs au moyen de simples formulaires web – Ex: ● La syntaxe d'un wiki est très légère et facile à appréhender ● Avantage : extrême facilité pour contribuer ● Inconvénients : risques liés aux contributions anonymes (suppression de contenu, introduction d'erreurs subtiles,...), la documentation est « externe »

Notion de forge ● Une forge est un « hébergeur de projets » qui offre à chaque projet l'ensemble des services traditionnellement employés par un logiciel libre – Gestion de la configuration, gestion des bogues, des requêtes de support – Site web, wiki, listes de diffusion, etc. ● Gforge est le logiciel le plus connu – ● Trac est plus limité mais très bien intégré –

Transposition à une entreprise ● Les outils du logiciel libre correspondent parfaitement à une situation de « télé-travail » ou les différents collaborateurs sont distants ● Mais qui peut le plus peut le moins, les mêmes outils peuvent être employés dans une entreprise traditionnelle – Freexian peut vous installer et vous administrer votre « forge interne » – Ces outils vous permettent en outre de proposer le télé-travail à certains de vos salariés (et de vous y préparer pour plus tard)

Transposition à une entreprise (suite) ● Les méthodes ne fonctionnent par contre que pour des vrais logiciels libres (disposant d'une réelle communauté d'utilisateurs) ● C'est pourquoi, il peut-être intéressant de « libérer » les logiciels spécifiques qui ne vous donnent pas d'avantage concurrentiel mais qui représentent une charge pour vous ! – Possibilité d'économiser en réduisant le coût de maintenance grâce à une mutualisation avec d'autres utilisateurs dans la même situation

Conclusion / Questions ● Le monde de l'entreprise doit apprendre à profiter du logiciel libre : – en l'employant pour ses qualités intrinsèques – en comprenant ses règles spécifiques pour bénéficier au maximum d'une mutualisation intelligente – en s'inspirant de son mode de développement pour gérer les projets qui s'y prêtent ● Questions ?

Liens / Contact ● Le projet Debian – ● Freexian SARL – SSII spécialisée dans le logiciel libre et Debian GNU/Linux – – Contact: Raphaël Hertzog – Tél: