Méthodes et outils employés pour développer des logiciels libres

Documents pareils
Debian en milieu professionnel. This document is under the GNU Free Documentation License.

Outils de développement collaboratif

1/15. Jean Bernard CRAMPES Daniel VIELLE

Conditions Particulières de Maintenance. Table des matières. Ref : CPM-1.2 du 08/06/2011

Alfresco et TYPO3 Présenté par Yannick Pavard dans le cadre des rencontres WebEducation Février 2008

Fais ton site internet toi-même

Serveur de travail collaboratif Michaël Hoste -

Cyberclasse L'interface web pas à pas

EXTRANET STUDENT. Qu'est ce que Claroline?

Système de gestion de contenu

Logiciel libre de gestion pour l'education Populaire. Module ALSH et ALSH périscolaire

1. Considérations sur le développement rapide d'application et les méthodes agiles

OpenERP, un progiciel de gestion intégré pour entreprise, distribué sous licence libre (GPL), qui répond de manière efficace à la complexité et aux

SYSTÈMES DE PUBLICATION POUR L INTERNET. Beatep Marie-France Landréa - Observatoire de Paris

Projet de développement

UE 8 Systèmes d information de gestion Le programme

DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques

Manuel d utilisation de Form@Greta

Navigation dans les fichiers de configuration 1

À la découverte. «Une alternative durable en informatique» Présenté par : Eric Leduc eleduc@leducdubleuet.biz

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Catalogue Formations informatiques

Google Tag Manager. Optimisez le tracking de votre site web. Google Tag Manager. Google Tag Manager. Optimisez le tracking de votre site web 26,50

Manuel d utilisation de l outil collaboratif

Auguria_PCM Product & Combination Manager

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Utiliser un CMS: Wordpress

Logiciels libres en entreprise

Les systèmes de gestion de version

LANDPARK COMMENT ÉTABLIR RAPIDEMENT VOS RAPPORTS

M2 SIAW - Exemples de stages réalisés. Gabriella Salzano - Document de travail - 28/1/2015

SQL Server 2012 Administrez une base de données : Exercices et corrigés

OpenERP, un progiciel de gestion intégré pour entreprise, distribué sous licence libre (GPL), qui répond de manière efficace à la complexité et aux

Plan global Outils de développement et compilation. Ce que l on veut éviter. Plan. Git : gestion de code source et versionnement.

Systèmes de gestion de code source

L externalisation de vos logiciels entreprises : une solution aux problèmes de coûts, de sécurités et de réactivités

Trois nouveaux formulaires sont donc nécessaires : Pour l affichage de la liste, un formulaire de sortie WEB_Liste associé à la table des [Films] ;

REFONTE, DEVELOPPEMENT ET HEBERGEMENT DU SITE WEB

Étape 1 / CHOISIR UN HÉBERGEMENT

Tutoriel XBNE Connexion à un environnement XBMC distant

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Chapitre 1 : Introduction aux bases de données

Bureautique Initiation Excel-Powerpoint

Mise en place d un intranet de travail collaboratif. Guide utilisateur

Ateliers Python+Qt : Premiers pas : S'installer pour PyQt... en quelques minutes sous Windows!

TECHNOLOGIE SOFTWARE DU FUTUR. Logiciel de gestion d entreprise pour le Web

Le service FTP. M.BOUABID, Page 1 sur 5

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Calcul Scientifique avec 3

Construction d un Site Internet Dynamique avec Joomla René-Yves Hervé, Ph.D.

corporate Output Management

IBM Tivoli Monitoring, version 6.1

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Forge. Présentation ( )

Au-delà de la simple gestion de votre fonds documentaire, évoluez vers la gestion complète de vos flux d informations.

STAGE2 STAGIAIRE / NIKOLAOS TSOLAKIS. 16/02/2015 : choix des outils nécessités pour l application : Didier Kolb, le maitre de stage

Sommaire. -1-Computer en bref. Web en bref. Le web 3.0,...la mobilité. Evolution du Web web1.0, web2.0, web2.b, web3.0...

Gestion collaborative de documents

Spip 2. Premiers pas pour créer son site web. Anne-Laure Quatravaux Dominique Quatravaux. Avec la contribution de Sandrine Burriel

Atelier «Migration vers Linux et les Logiciels Libres»

Formation Webmaster : Création de site Web Initiation + Approfondissement

Communiquer avec un ou plusieurs interlocuteurs. Michel Futtersack, Faculté de Droit, Université Paris Descartes, Sorbonne Paris Cité

Burckel Thomas. Formation. Compétences

Climat Scolaire - Manuel utilisateur - Chapitre 2 : «Créer, Editer et suivi d un texte»

Les logiciels de gestion de version exemple de GIT et application avec SmartGIT

Référence du développeur Debian

Environnements et Outils de Développement Cours 1 Introduction

FORMATION AU LOGICIEL PACKORGANIZER : GESTION DE CONTACTS ET D AGENDAS

Joomla! Création et administration d'un site web - Version numérique

Google Apps for Business

Extensions, Documentation, Tutoriels, Astuces

Avantages de l'archivage des s

Ateliers Python+Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi?

PROSOP : un système de gestion de bases de données prosopographiques

Le système de gestion de version Git et GitHub

Cette solution s adresse aussi bien aux PME/PMI qu aux grands groupes, qu ils disposent ou non d une structure de veille dédiée.

Les Architectures Orientées Services (SOA)

Charte de fonctionnement du portail Géocharente

Hébergement WeboCube. Un système performant et sécurisé. Hébergement géré par une équipe de techniciens

Questionnaire GTA - Analyse des re ponses

Utilisation d'outils de WebMapping OpenSource dans une collectivité territoriale Communauté de Communes de l'agglomération Saint-Loise (CCASL)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Basée sur un puissant moteur de bases de données, cette solution a été conçue pour une exploitation en multi ou monoposte.

en 16 différences

Sage CRM. 7.2 Guide de Portail Client

CAHIER DE S CHARGE S Remote Workload Manager

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Manuel d utilisation du web mail Zimbra 7.1

5 bonnes pratiques pour solution décisionnelle mobile

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

OpenText StreamServe Cours Customer Communication Management L essentiel

Un outil de communication et de Formation Agricole au service des jeunes ruraux

SQL Server 2014 Administration d'une base de données transactionnelle avec SQL Server Management Studio

Windows Server Chapitre 4 : Active Directory Gestion des utilisateurs, des ordinateurs et des groupes

Qu'est ce que le Cloud?

Les tableaux de bord de pilotage de nouvelle génération. Copyright PRELYTIS

Transcription:

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 http://www.debian.org/social_contract 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 «souscommunautés spécialisées»

Outils de communication Listes de diffusion : http://lists.debian.org 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 : http://www.debian.org Ainsi que de nombreux sites «officieux» Blogs : http://planet.debian.org

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»). http://www.linux-france.org/article/these/cathedrale-bazar/ 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 : http://bugs.debian.org 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 : http://lists.debian.org

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é http://cvs.debian.org http://svn.debian.org

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 http://bugs.debian.org adapté à la structure de Debian (organisation autour de nombreux paquets logiciels) Autre logiciel populaire : bugzilla : http://www.bugzilla.org/ 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: http://wiki.debian.org 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 http://gforge.org Trac est plus limité mais très bien intégré http://projects.edgewall.com/trac/

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 http://www.debian.org Freexian SARL SSII spécialisée dans le logiciel libre et Debian GNU/Linux http://www.freexian.com Contact: Raphaël Hertzog <raphael@freexian.com> Tél: 06 88 21 35 47