Gestion du projet pour qu'il soit pérenne et collaboratif



Documents pareils
e-obs : Conception et utilisation Rémy Decoupes Ether // ums3365

OUTIL DE TRAVAIL 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

Guide d'installation et de configuration de Pervasive.SQL 7 dans un environnement réseau Microsoft Windows NT

Déployer des applications Perl

Gestion Electronique de Document (ECM/GED)

Titre: Version: Dernière modification: Auteur: Statut: Licence:

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Classe et groupe : 1P 3 SEN TRI. Ubuntu : serveur Contrôleur de Domaine (PDC) avec SAMBA

Q-Checker pour V6 Release 2.1

Manuel du Desktop Sharing

Offre Référentiel d échange

Concepts et définitions

Stratégie de sécurité grâce au logiciel libre. Frédéric Raynal Cédric Blancher

Déploiement OOo en environnement Windows Terminal Server

Supervision système et réseau avec Zabbix. Anne Facq Centre de Recherche Paul Pascal 17 avril 2008

Wildix Web API. Guide Rapide

Découverte des Logiciels Libres. Gilles Dequen

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

Service Cloud Recherche

Procédure d installation Mensura Genius

Brique BDL Gestion de Projet Logiciel

La solution IBM Rational pour une ALM Agile

Outils de développement collaboratif

Serveur DNS et DHCP couplé à LDAP Debian GNU/Linux

Gestion des licences et activation des logiciels : déploiement d'un logiciel à l'aide de Symantec Ghost

Configuration de plusieurs serveurs en Load Balancing

Guide de mise en service - THOMSON ST2030

Présentation Générale

Guide Enseignant de l application OpenERP

Comment développer et intégrer un module à PhpMyLab?

Les commandes relatives aux réseaux

AFTEC SIO 2. Christophe BOUTHIER Page 1

Licence Sciences et Technologies Examen janvier 2010

Gérer ses environnements de développement avec Vagrant RMLL 2012

Authentification à deux facteurs Cryptage portable gratuit des lecteurs USB Cryptage du disque dur

Présentation aux entreprises du numérique

CMS Open Source : état de l'art et méthodologie de choix

Serveur de travail collaboratif Michaël Hoste -

Démonstration Google Apps. Christophe Thuillier Avril 2010 Arrowsoft

8 Mars Guide du Wiki Confluence

La plate-forme d'outils collaboratifs de l'i.e.m.n.

COMMUNICATION TECHNIQUE N TCV060 Ed. 01. OmniVista 4760 Nb de pages : 18 Date : URGENTE NON URGENTE TEMPORAIRE DEFINITIVE

Conférence Développeurs Magento. 27 novembre 2013 mageconf.org

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

NOUVELLES FONCTIONNALITÉS DE MYQ 4.4

Elaborer un «Référentiel d Organisation 2.0»

Installation des moteurs SQL Pour Micro-SESAME

Journée Josy/PLUME. Outils logiciels libres utiles à tout ASR SAMBA. Maurice Libes. Centre d'océanologie de Marseille UMS 2196 CNRS

GLPI OCS Inventory. 1. Prérequis Installer un serveur LAMP : apt-get install apache2 php5 libapache2-mod-php5 apt-get install mysql-server php5-mysql

Mise en place du médiateur pour. Application Server avec le logiciel ALERT.

Afin d'éviter un message d'erreur au démarrage du service Apache du type :

v7.1 SP2 Guide des Nouveautés

Chapitre 1 Introduction

420-PK6-SL Banques de données Avancées UTILISATEURS

Installation de Vmware serveur Windows

Méthodes de développement

TAGREROUT Seyf Allah TMRIM

Stratégie Open Source et Présentation du Centre de recherche et d innovation sur le logiciel libre

MEGA Web Front-End Installation Guide MEGA HOPEX V1R1 FR. Révisé le : 5 novembre 2013 Créé le : 31 octobre Auteur : Noé LAVALLEE

Procédure d installation Mensura Genius V7

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Matrice snapshot Jacquelin Charbonnel ANF RNBM - Marseille, 23 mai 2013

DIRAC : cadre et composants pour créer des systèmes de calcul distribués

Méthodologies SCRUM Présentation et mise en oeuvre

LINUX REMPLAÇANT WINDOWS NT

Enquête 2014 de rémunération globale sur les emplois en TIC

Windows Front-End Installation Guide HOPEX V1R1 FR

2 Formation utilisateur

Installation 1K-Serveur

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

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

Installation FollowMe Q server

Projet Administration Réseaux

Mise en place d'une solution libre de gestion d'entreprise. Maurice MORETTI Directeur associé

sshgate Patrick Guiran Chef de projet support

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Créer son premier package.deb. 19 août

Oracle Learning Library Tutoriel Database 12c Installer le logiciel Oracle Database et créer une Database

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

Procédure d installation d AMESim 4.3.0


Notes pour l'installation d'une version de Eprints sur une machine CentOS4.2 Stéphanie Lanthier Le jeudi 17 février 2006

Présentation de WAPT. Sommaire. I Présentation de notre société... 3

Windows Server Chapitre 3 : Le service d annuaire Active Directory: Concepts de base

Table des Matières. 2 Acronis, Inc

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

Espace de travail collaboratif

Système de gestion de contenu

AGENCE DE COMMUNICATION INTERACTIVE LES POSTES CLEFS EN AGENCE WEB

Mickaël Journo. Assistance et Maintenance Informatique pour particuliers et professionnels.

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

TDB-SSI Extension OpenVAS

eps Network Services Alarmes IHM

Transcription:

Gestion du projet pour qu'il soit pérenne et collaboratif Franck Gabarrot Atelier projet Promise les 30 et 31 mars 2015 Paris IPSL CDS ESPRI

Public visé dans nos réflexions d'organisation Tout le monde L'équipe projet Les développeurs qui collaborent au projet de façon ponctuelle ou plus pérenne faciliter leur intégration Les PIs faciliter leur implication (qui est essentielle dans le cycle de vie du logiciel : besoin, création, validation, exploitation, évolution) Les centres de données favoriser leur implication (retour d'expertise et collaboration, interfaces station-centre de données) On a besoin du retour de tout le monde pour trouver la bonne recette 2

Organisation du travail mise en place Se donner les moyens de faire du développement collaboratif et pérenne Déployer les outils pour collaborer et partager le travail plate-forme de développpement collaboratif ouverte à tous : DevSpot Etablir des guides de travail (document «Guide pour le développement des logiciels») conventions sur la structure des paquets logiciels, sur le codage, le versionning, la documentation, la diffusion du travail (licence, etc), la gestion du cycle de vie du logiciel. Créer une dynamique de travail Choix technologiques transverses (ex. Python) et développement à plusieurs (ex. MiscBox) Promouvoir l'intégration de nouveaux, de débutants (ex. intégration CDD courte durée en 2014) Promouvoir l'échange d'expertise et l'esprit d'équipe (points techniques fréquents, formation interne, etc) Diffuser rapidement le travail et l'information ( DevSpot) et prévilégier l'intégration continue Inspiration des méthodes Agile 3

Qu'est-ce qu'il faut encore travailler? A continuer d'améliorer DevSpot Guide pour le développement des logiciels Présentation mais discussions plus précises sur les améliorations mardi A définir La gestion des collaborations A discuter Le cycle de vie «long terme» des logiciels et les autres besoins 4

DevSpot Plate-forme WEB pour le développement collaboratif comprenant : Un espace de gestion des codes (gestion des versions, serveur GitLab) Un espace WIKI Un espace démonstrateurs Plusieurs niveaux d'accès à l'information http://osur.univ-reunion.fr/outils/devspot/ Connexion à GitLab : login= promise_guest mdp= promise2014 5

Guide pour le développement : structure des paquets logiciels et licence PaquetLogiciel/ - nom du logiciel bin/ - fichiers exécutables générés lib/ - librairies générées paquetlogiciel/ - fichiers sources (en miniscule) dont init.py config/ - fichiers de configuration et/ou de paramétrage utils/ - utilitaires générés ou associés test/ - sources et executables de test doc/ - documentation algorithms/ - doc algo de référence development_manual/ - doc de conception, de développement, schémas, etc reference_guide/ - doc technique de référence (Doxygen) html/ - dans sa version html user_guide/ - doc utilisateur validation/ - doc de validation et de suivi des anomalies AUTHOR - fichier contenant le ou les noms des auteurs CHANGELOG - fichier traçant les modifications LICENSE - fichier contenant la licence (+ LICENSE-fr) README - description du paquet logiciel INSTALL - notes pour l'installation TODO - qu'est-ce qu'on doit encore faire et/ou prévu de faire VERSION - version du paquet x.x.x setup.py - fichier d'installation Python MANIFEST.in - fichier texte qui liste les fichiers non python à inclure dans l'installation Licences CECILL élaborées par le CNRS, l'inria et le CEA afin de développer des logiciels libres avec une licence équivalente à la licence GNU GPL mais compatible avec le droit français. Voir http://www.cecill.info/. 6

Guide pour le développement : versionning Versionning pour les logiciels Format X.Y.Z : X : nombre entier correspondant à l'édition principale du logiciel. On l'incrémente lorsqu'on réalise une évolution majeure du logiciel (révolution!). X=0 est réservé à des versions prototypes ou encore instables et/ou non finalisées. X=1 est la première version stable. Y : nombre entier correspondant au numéro de révision. On l'incrémente quand on implémente des nouvelles fonctionnalités ou bien quand on les améliore, ou encore quand on corrige des «grosses» erreurs. Z : nombre entier correspondant à un numéro de correctif. C'est pour de la «petite» erreur. Les autres besoins de versionning Pour les modules : ça peut être utile d'avoir un versionning particulier pour les modules (test si cassure de rétro-compatibilité, etc). Par contre la nomenclature x.y.z ça peut être confus avec la version du logiciel et ce n'est pas pratique à tester. Donc pour les modules on utilise plutôt W avec W un nombre entier de 1 à 54646465645644445. Pour les documents : c'est mieux d'avoir une nomenclature du document en plus de celle du logiciel : on associe la doc à une version X.Y du soft ou X.* mais entre temps elle peut aussi changer, donc elle va avoir une version L.Y avec L une lettre de a à z correspondant à l'édition de la doc et Y un numéro de révision classique. 7

Guide pour le développement : commentaires des codes Exemple de commentaires dans un fichier source : #- --------------------------------------------------------------------- ## @file logerr.py ## @defgroup logerr logerr ## @brief Manage log, log file, traceback and exception ## @author Franck GABARROT, ## @date 2014 ## @copyright CECILL-B ## @note ##- 2014/04/04: creation. #- --------------------------------------------------------------------- Descriptif du fichier [ ] #- --------------------------------------------------------------------- ## @brief Create logger and create or open (if already exists) log file. ## @param[in] directory Log directory. ## @param[in] modulename Module name. ## @param[in] datetime String date and time information to add to the ## filename : modulename_datetime.log. Default: no datetime string. ## @param[in] rotate Log file automatic rotating file greating than maxsize, ## default: no rotating mode. ## @param[in] maxbytes Max file size for automatic rotating file (byte), ## default: 1 Gbyte. ## @param[in] backupcount Max number of log files archived. ## @return Logger object from python-logging module. Return None if an ## error occurs. ## @ingroup logerr #- --------------------------------------------------------------------- def createlogger(directory, modulename, datetime=none, rotate=false, maxbytes=1000000, backupcount=10): [...] Descriptif fonction Doxygen Doc technique en HTML 8

Guide de développement : modèles de documents Documents algo Description, articles scientifiques, etc Document de développement Document central : conception générale et détaillée, indications pour l'évolutions Manuel de référence Accès à la description de tous les modules, toutes les fonctions et variables (Doxygen, HTML) Document de validation et de suivi Les détails de validation pour chaque version, identification des limites Le suivi des bugs et des évolutions, référencement des études et tests Manuel utilisateur Comment l'installer et l'utiliser Templates disponibles 9

Gestion des collaborations / tous Distribution des rôles : 1/ Intégrateur(s) Coordonne et anime le projet, intègre les développements 2/ Développeurs principaux Développe et guide les contributeurs 3/ Contributeurs Développe en parallèle à son rythme, teste et fait des retours 4/ Expert algo Propose des évolutions et valide les performances algo Gestion des codes sous GitLab : master Derniers développements stables intégrés prod_mode dev_person or new-module 1.1 1.0 0.9 patch#1 I patch#2 I patch#3 I Branche spécifique utilisateur ou fonctionnalité (non stable) Version stable (évolution avec des correctifs de bug) Communication : - Points techniques réguliers type «avancement» ou «tour de table» (skype ou autre?) - Echanges directs (email, Google Talk ou autre?) - Système «Issue» de GitLab - DevSpot / WIKI - Ponctuellement, un atelier de travail et de rencontres 10

Gestion des collaborations / PI On a besoin des PIs dans le cycle de développement : Faire une validation scientifique (tester/éprouver les calculs) Faire des retours sur les fonctionnalités Définir les priorités, l'orientation des travaux sur l'optimisation des algos Aider à la continuité des développements (implication des chercheurs et étudiants, besoin en ressources humaines, etc) Les moyens à votre disposition : DevSpot, points d'avancement ouverts largement Autres? 11

Gestion des collaborations / CDS On a besoin de votre expertise technique et votre vue d'ensemble : Retours techniques (qu'est-ce qu'on a oublié? qu'est-ce qu'on ne fait pas bien? etc) Retours organisationnels (en collaboration avec les PIs et autres équipes) Aider à la continuité et à la cohérence des développements Les moyens à votre disposition : DevSpot, points d'avancement, etc Autres? 12

Le cycle de vie «long terme» des logiciels et les autres besoins Problématique : Et après, dans 1 ou 2 ans qu'est-ce qu'il se passe? Gestion de l'essouflement des développeurs principaux, gestion de la RH/besoin Contrôle de la cohérence de l'évolution par rapport au besoin (autres filières lidar par exemple) Comment est-ce qu'on s'organise pour mener les autres besoins et les futurs besoins en développement logiciel? (montage de Promise lourd, on n'a pas trop envie de refaire le même chemin)? : Coordination plus globale/transverse Faciliter l'émergence des projets de développement logiciel 13