cycle de vie des logiciels - projet PLUME · partie 1 outils de travail collaboratif et gestion des...
Transcript of cycle de vie des logiciels - projet PLUME · partie 1 outils de travail collaboratif et gestion des...
diffusion libre
cycle de vie des logiciels maintenance évolutive et corrective, gestion des contributions Orange Labs
Christian Bayle, Recherche & Développement 24 octobre 2008
2 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
sommaire
partie 1 outils de travail collaboratif et gestion des contributions
partie 2 expérience OW2
partie 3 expérience France Télécom
3 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
définition d'une Forge
une Forge a plusieurs facettes
– un portail communautaire – un outil de gestion de projets – un environnement de développement collaboratif – un site pour une communauté
4 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Outils de travail collaboratif : les Forges 1/2
distinguer "Forge en tant que service" et "Forge en tant que logiciel"
exemples de Forge en tant que service
Sourceforge – sourceforge.net – très peu de gouvernance, forte popularité
Savannah – savannah.gnu.org (FSF)
Gna! – gna.org (FSF France)
BerliOS – developer.berlios.org (Fokus)
5 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Outils de travail collaboratif : les Forges 2/2
exemples de Forge en tant que logiciel
GForge – logiciel open source GPL, gforge.org – utilisé par OW2, Ruby, PostGreSQL, … – NovaForge (version Bull basée sur GForge)
Codendi – logiciel open source GPL développé par Xerox, codendi.org
– anciennement appelé CodeX – utilisé par France Télécom, ST MicroElectronics, …
Savane – utilisé par Gna! et Savannah
LibreSource
logiciels non open source: GForgeAS, Collab (SFEE – SourceForge Enterprise Edition), …
6 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
historique de GForge
λ SourceForge 1.0 (2000/01) 1.5 (2000/07) 2.0 (2000/09)
- création de Savannah, fork de Savannah λ 2.5 (2000/12)
- création du projet Debian-SF sur savannah - contribution tracker de Xerox
λ SourceForge 2.6.1 (2001/05)
- VA ferme l'accès CVS, 2.7 jamais sortie - SFEE (Enterprise Edition)
λ création du projet GForge (2002/11)
- Savanne - 3.1 (2003/10) 3.2 (2003/12) 3.3 (2004/03) 4.0 (2004/10)
7 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
L'univers des Forges
nombreux produits logiciels open source ou non
communautés des Forges
– plusieurs communautés, à la fois sur les plates-formes Forge en tant que service, et sur les logiciels de Forge
– efforts coopératifs (projets collaboratifs) – OSO-R osor.eu – Helios (interopérabilité entre les Forges)
but : mutualiser les efforts de développement et d'intégration d'outils
8 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Contenu d'une Forge : services aux projets
une Forge offre un ensemble d'outils permettant la gestion des projets logiciels
gestion des sources : CVS / SVN
Trackers : feature requests, bug tracker, tâches
livraisons (fichiers, packages)
gestion des documents, Wiki
autres services aux projets
– Forums, mailing lists – sondages, news
c'est l'administrateur de chaque projet qui choisit quels services activer pour son projet
9 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Contenu d'une Forge : services transverses
carte des logiciels
outils de recherche
snippets
– morceaux de code demandes d'aide
10 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Contenu d'une Forge : services d'administration
création d'un compte utilisateur
création d'un projet
gestion d'un projet
– ajout de membres par l'administrateur – gestion des rôles des membres par l'administrateur – gestion des services associés au projet
11 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
12 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
13 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
14 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
sommaire
partie 1 outils de travail collaboratif et gestion des contributions
partie 2 expérience OW2
partie 3 expérience France Télécom
15 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
OW2 : open source middleware
Consortium créé en 2007
Fusion d'ObjectWeb (créé par INRIA, France Télécom et Bull en 1999) et OrientWare (Chine)
Objectifs
– favoriser la production de middleware en open source – encourager la création d'un écosystème business autour du
middleware libre
16 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
OW2 : services offerts aux membres
1) infrastructure technique – site web, Forge
2) gouvernance – comité de direction, comité technique
3) services de communication et marketing – service presse, participation aux congrès
3 types d'activité – 1) projets (développements logiciels) – 2) initiatives (écosystèmes business sur un thème)
– exemples SOA initiative, BI initiative – 3) chapitres locaux (présence géographique)
– Europe, China, Brazil, …
17 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
OW2 : infrastructure technique
site web statique
Forge
– instance de GForge listes de diffusion
– sympa XWiki pour éditer les site web des projets
sysadmin dédié à OW2
18 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
OW2 : en chiffres
http://www.ow2.org/view/MembershipJoining/ConsortiumMembers
– membres académiques, PME, grandes entreprises et individuels
– 14 membres stratégiques – 45 membres corporate – 981 membres individuels
140 projets dans la Forge
19 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Forge OW2
Forge en tant qu'outil offert aux projets
Base GForge
– projet de migration sur NovaForge Inclut tous les outils classiques d'une Forge
Outils spécifiques de la Forge OW2 pour la communauté
– soumission de nouveaux projets : formulaire / questionnaire customisé pour OW2 demandant de positionner le projet proposé par rapport aux autres projets d'OW2
– questionnaire d'inventaire aux projets, afin de permettre de déterminer le degré de maturité des projets (classification)
– (à l'étude) inclusion des outils d'Atlassian (JIRA, Bamboo, ...)
20 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Forge OW2 : fonctionnement
Services les plus utilisés par les projets
– SVN – livraisons
Utilisation encouragée des trackers par les responsables de projet
– feature request, afin de tracer les demandes d'évolutions – bug tracker, afin de tracer les problèmes rencontrés
tous les utilisateurs, même s'ils ne sont pas développeurs sur un projet, sont encouragés à utiliser les outils pour remonter les problèmes et les demandes
21 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Forge OW2 : gestion des contributions
la manière de gérer les contributeurs et le code contribué est laissée au libre arbitre de chaque projet
démarche typique : – 1. identification de nouveaux contributeurs via la mailing list – 2. contributions de bug report, de feature request – 3. envois de patches sur la liste de diffusion – 4. test des patches par l'équipe projet – 5. si confiance, ajout du contributeur à la liste des committers
du projet la cession du copyright dans OW2
– peut dépendre de la license (ex : GPL + licence propriétaire oblige la cession du copyright – MySQL)
– n'est pas obligatoire (ex : JOnAS contient du code à copyright multiple Bull, France Télécom, INRIA, …)
22 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Communauté OW2 : leçons apprises 1/2
λ Infrastructure
- utilisation de GForge et de tous ses outils - migration vers Subversion
λ Communauté d'utilisateurs
- un projet n'existe que s'il a des utilisateurs - fournir du support aux nouveaux utilisateurs : des listes de diffusion
actives sont synonymes d'une communauté - importance de publier des cas d'usage réels et des "success stories"
pour augmenter la crédibilité et l'attrait du logiciel - attention : il est très difficile de savoir qui utilise le logiciel et d'obtenir
des retours (1% de retour !!) - mais parfois des bonnes surprises (enquête JOnAS)
23 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Communauté OW2 : leçons apprises 2/2 λ communauté des développeurs
- Les projets vraiment libres devraient survivre au départ de leurs contributeurs d'origine
λ ceci implique des efforts significatifs de documentation, de communication, de compréhensibilité du code, de support utilisateur, …
- La publication de code source n'attire pas automatiquement des contributeurs talentueux (attention au mythe "mon projet va connaître la gloire tout seul si je le mets en open source")
- Evolution de la communauté λ pour apprendre un projet, avant de corriger des bogues et lire le
code, il faut une documentation pour les développeurs λ maintenir un log des modifications (changelog envoyé à une
liste de diffusion publique) et publier une feuille de route λ partager toutes les informations de conception, configuration ou
choix de nouvelles fonctionnalités sur des listes de diffusion publiques
λ ne pas hésiter à donner les droits d'accès aux source en écriture pour encourager les contributeurs
24 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Comment bien organiser un projet
λ Documentation - elle doit être à jour - guide utilisateur, mais aussi "white paper", documents de design,
spécifications, documentation des API (JavaDoc, PhpDoc, Doxygen, …) - Code
- partager les conventions et styles de codage λ Tests
- Publier les résultats des tests de non régression journaliers (intégration continue)
λ Packaging - Les paquets logiciels doivent être simples à installer : archives compressées,
paquets pour les distributions Linux (.deb, .rpm, JPackage.org, ...), installeurs graphiques (IzPack, BitRock, InstallAnywhere, ...)
λ Quand sortir des releases ? - “Release Often, Release Early”: pour obtenir des retours - “stable release” plus rassurantes que les “alpha”, “beta”, avec garantie de
support pérenne
25 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
sommaire
partie 1 outils de travail collaboratif et gestion des contributions
partie 2 expérience OW2
partie 3 expérience France Télécom
26 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
France Télécom
Contexte initial de développements logiciels
– nécessité d'outils de gestion des sources – demande de compatibilité avec Eclipse (IDE recommandé)
R&D
– prototypage, maquettage – développements à la demande des unités d'affaire
ROSI
– tous développements opérationnels
27 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Historique
En 2001: Des solutions dispersées – Des archives CVS, une plateforme GForge dans un
laboratoire – Première mise en place avec GForge – Implication dans le projet GForge / la communauté Debian
En 2004 – Un besoin d'industrialisation – Contrat de support/maintenance souscrit par France Télécom
auprès de Xerox Depuis 2006
– Extension grandissante vers le reste du groupe – Contributions de France Télécom aux développements de la
plate-forme logicielle Codendi
28 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Expression du besoin
Quels gains pour France Télécom ? – Assurance qualité sur les produits livrés – Capitalisation sur les livrables – Mutualisation des plateformes – Economie sur les licences (Produit Open source) – Contrôle des versions du produits / participation aux évolutions
Quels services offerts ? – Maintenance et support centralisés par le helpdesk interne – Formations à la gestion de configuration et aux outils associés. – Protection de la production contre la destruction, perte, intrusion..
Quels coûts ? – Modèle à maintenance annuelle avec Xerox – Moyens internes
29 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Les raisons du choix
Assurer la pérennité – L'usage interne que fait Xerox nous garantit une pérennité du produit – La license LGPL nous donne la liberté de changer de fournisseur – Support de qualité / indépendant des ressources internes
Economie – Mutualisation de la plateforme avec d'autres industriels – License plus facilement renégociable, mise en concurrence – Libre mais pas gratuit / Un logiciel reste un logiciel
Possibilité de contribuer – Modèle de contribution original mis en place par Xerox – Partage des coûts de développement
Un bonne adéquation à nos besoins – Profil d'utilisateurs voisin de celui de Xerox – Préoccupations communes (Suivi d'activités, Outils de suivi)
30 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Quelques statistiques (janvier 2006, après 12 mois)
Utilisateurs enregistrés : 818 (historique sur 1 an, tous utilisateurs confondus groupe FT +Externes)
Projets enregistrés: 190 Données sous CVS : 16 Go (environ 286 087 fichiers) Données sous SVN : 12 Go (environ 611 909 fichiers) CodeX downloads : 683 (fichiers partagés dans l'espace de
livraison) CodeX forums : 793 (messages échangés)/ CodeX
documentation : 267(fichiers téléchargés) CodeX CVS commit/add/checkout : 58267 / 65842 / 12113 CodeX SVN commit : 8841 Codex artifacts : 1543 (enregistrements de Tracker. Rq l'usage du
trk n'est pas systématique) Listes de diffusion utilisées: 110 représentants 7500 messages
31 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Quelques statistiques (octobre 2008)
1200 projets
– tous types de projets – développements logiciels – projet de gestion de documents
4500 utilisateurs enregistrés
– utilisateurs dans tout le Groupe France Télécom et les filiales
32 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
France Télécom et Codendi : usage
Travail collaboratif en interne à France Télécom
– dans l'esprit du travail des communautés open source Gestion des logiciels
– pour les projets de développement logiciel Mais aussi utilisation aussi comme plate-forme d'échange,
de travail collaboratif, même en absence de code
33 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Les services ombrelles
34 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Enregistrement d'un utilisateur
Gestion du compte
Page personnelle
35 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Enregistrement d'un projet
36 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Services Projets Espace de stockage FTP Site Web Gestionnaire de liste de distributions Forums de discussion Annonces Compte Shell personnel Services externes
Tous les services sont configurables via une interface
Web:
L’administrateur du projet choisi les
services dont il aura besoin
Contrôle de version (CVS, Subversion)
Tracker Universel (défauts, taches, support, patches…)
Espace de livraison Gestionnaire de documents Gestionnaire d’enquêtes Wikis
37 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Outils de gestion de projets
Gestion des permissions
– Sur tous les services
Gestionaire de documents
– Convient pour la publication de documents clés tels que guide utilisateur, guide administrateur, guide d’installation, interface de programmation.
– Le gestionnaire de document a une structure de dossiers à un seul niveau (collection)
– Niveau d’accès possible pour un document – Accessible à tous les visiteurs même anonymes – Accessible aux seuls utilisateurs enregistrés – Accessible aux seuls membres du projet (État
‘private’)
Import/Export des données
– Dans des formats standard
38 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Les services communautaires (1/2)
Chaque projet possède son site Web à l’URL:
– http : / / <nom_projet>.codex.rd.francetelecom.fr
Listes de distribution à volonté – Elles peuvent être publiques ou privées – Leur noms suit toujours le même modèle:
Les projets peuvent créer leurs propres forums
– Exemples de forums: – Help – Feature Requests – Open Discussion
39 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Les services communautaires (2/2)
Les annonces
– Evènements dans la vie d’un projet
– Nouvelle version, nouveaux venus, réunions importantes…
– Les annonces de projet et peuvent apparaître sur la page d’accueil du site CodeX pour une plus grande visibilité
Gestionnaire d'enquêtes
– Chaque projet peut créer ses propres enquêtes
Les Wikis
– Edition collaborative de documents – FAQ
– Comptes rendus de réunion [ Show me … ]
40 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
France Télécom et Codendi
Services spécifiques offerts aux projets
– extension des droits sur le tracker (granularité plus fine)
Développements et extensions réalisées à la demande de France Télécom
– Connexion annuaire LDAP Groupe – Intégration de Salomé-TMF – Connexion automatique (Kerberos)
41 diffusion libre Orange Labs - Recherche & Développement – ENVOL – 24 octobre 2008
Questions ?
diffusion libre
merci