At2008 Grenoble Hugonnet Sanlaville Public

58
Mise en place d'outils d'ing Mise en place d'outils d'ing Mise en place d'outils d'ing Mise en place d'outils d'ingé é énierie logicielle pour nierie logicielle pour nierie logicielle pour nierie logicielle pour industrialiser le d industrialiser le d industrialiser le d industrialiser le dé é éveloppement Agile chez Orange veloppement Agile chez Orange veloppement Agile chez Orange veloppement Agile chez Orange Labs Labs Labs Labs Emmanuel Hugonnet Architecture J2EE Silverpeas [email protected] +33-(0)476248658 Rémy Sanlaville Expert Senior en Ingénierie Logicielle Orange Labs [email protected]

description

Orange Labs - Retour d'expérience Agile Tour 2008

Transcript of At2008 Grenoble Hugonnet Sanlaville Public

Page 1: At2008 Grenoble Hugonnet Sanlaville Public

Mise en place d'outils d'ingMise en place d'outils d'ingMise en place d'outils d'ingMise en place d'outils d'ingéééénierie logicielle pour nierie logicielle pour nierie logicielle pour nierie logicielle pour industrialiser le dindustrialiser le dindustrialiser le dindustrialiser le dééééveloppement Agile chez Orange veloppement Agile chez Orange veloppement Agile chez Orange veloppement Agile chez Orange LabsLabsLabsLabs

Emmanuel Hugonnet

Architecture J2EE

Silverpeas

[email protected]

+33-(0)476248658

Rémy Sanlaville

Expert Senior en Ingénierie Logicielle

Orange Labs

[email protected]

Page 2: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 2

Introduction

Page 3: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 3

Pourquoi des outils d’ingénierie logicielle à Orange Labs

Services

2006

1982

Infrastructure

2001

1994

1988

Professionnalisation du développement pour

offrir des services reconnus et de qualité�

Page 4: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 4

Outils d’ingénierie logicielle et agilité ?

Page 5: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 5

Outils d’ingénierie logicielle et agilité ?

L’humain est au premier plan mais il a besoin d’outils pour réaliser

au mieux ses tâches.

Les outils ne sont qu’un moyen et pas un but

Les outils pour une démarche d’amélioration continue

Page 6: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 6

Build

Page 7: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 7

Build - Définition

Le build peut aller de la compilation

(incrémentale) à la génération d’un package en

passant par la génération de fichiers de source,

le lancement de tests (unitaires, d’intégration…),

l’analyse du code source, la génération d’un site

web et de rapports…

D’une certaine manière, le build englobe

l’ensemble des actions souhaitées prenant en

entrée des fichiers sources pour produire un

résultat souhaité.

Généralement, nous attendons d’un outil de build qu’il puisse automatiser

et optimiser ces actions.

Pas de définition précise…

Page 8: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 8

Build - Problématique

Reproductibilité dans le temps et dans l’espace (sans modification du source…)

Les builds aux temps t0, t1, ti… doivent être identiques

Par exemple, il faut pouvoir à tout moment

reproduire le build d’une version taggée

Les builds sur les postes p0, p1, pj, pic… doivent être identiques

Par exemple, il faut pouvoir reproduire le build sur

l’ensemble des postes de l’équipe, du serveur

d’intégration continue…

Il faut aussi définir ce que veut dire identique…

dans le tempst1 tit0

p0

dans l’espace

p1

pj

pic

Page 9: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 9

Build - Problématique

Cela paraît simple mais dans les faits c’est une problématique compliquée et nous ne

disposons toujours pas de solution qui permette d’assurer cela…

QuQuQuQu’’’’estestestest----ce qui influence le ce qui influence le ce qui influence le ce qui influence le buildbuildbuildbuild ????

Reproductibilité dans le temps et dans l’espace (sans modification du source…)

artefactsartefactsartefactsartefactsbuildbuildbuildbuild

DDDDéééépendancespendancespendancespendances

Outils de Outils de Outils de Outils de buildbuildbuildbuild

options de compilation options de compilation options de compilation options de compilation

compilateurcompilateurcompilateurcompilateur…………

Plateforme dPlateforme dPlateforme dPlateforme d’’’’exexexexéééécutioncutioncutioncution

OSOSOSOS

Variables Variables Variables Variables

dddd’’’’environnementenvironnementenvironnementenvironnement

Fichiers sourcesFichiers sourcesFichiers sourcesFichiers sources

code sourcecode sourcecode sourcecode source

ressourcesressourcesressourcesressources

Facteurs humainsFacteurs humainsFacteurs humainsFacteurs humains

Ressources externesRessources externesRessources externesRessources externes

xmlxmlxmlxml schschschschéééémamamama…………

wsdlwsdlwsdlwsdl

RepositoriesRepositoriesRepositoriesRepositories mavenmavenmavenmaven

Base de donnBase de donnBase de donnBase de donnééééeseseses…………

…………

Page 10: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 10

Build – Pourquoi Maven 2 ?

Conventions plutôt que configurationConventions plutôt que configurationConventions plutôt que configurationConventions plutôt que configurationStandardisation du système de fichiers

Facilite le passage d’un projet à un autre,

la communication…

Les fichiers sources du projet

Les fichiers générés du projet

Le fichier de description du projet (POM)

code source java

tests unitaires

Page 11: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 11

Build – Pourquoi Maven 2 ?

Conventions plutôt que configurationConventions plutôt que configurationConventions plutôt que configurationConventions plutôt que configurationStandardisation du système de fichiers

Standardisation du cycle de vieFacilite le passage d’un projet à un autre,

la communication…

Page 12: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 12

Build – Pourquoi Maven 2 ?

Conventions plutôt que configurationConventions plutôt que configurationConventions plutôt que configurationConventions plutôt que configurationStandardisation du système de fichiers

Standardisation du cycle de vie

Standardisation du site web du projet

...

Facilite le passage d’un projet à un autre,

la communication…

Page 13: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 13

Build – Pourquoi Maven 2 ?

ModModModModéééélisation du lisation du lisation du lisation du buildbuildbuildbuild

Modélisation vs scripting décrivez ce que vous voulez faire (le quoi) pas

le comment !

Maven suit une approche déclarative et se

focalise sur une abstraction de haut niveau du

projet appelé le Project Object Model (POM).

Un conducteur n'a pas à

connaître la mécanique de sa

voiture pour conduire

POM

Page 14: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 14

Build – Pourquoi Maven 2 ?

Problématique complexe et qui n’est pas toujours bien maîtrisée voir abordée

=> le changement de version d’une dépendance directe peut devenir une tâche complexe.

Maven 2 apporte une aide précieuse même s’il ne résout pas tous les problèmes

Graphe de dépendances du plugin scmchangelog-maven-plugin

Gestion des dGestion des dGestion des dGestion des déééépendancespendancespendancespendances

Page 15: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 15

Build – Pourquoi Maven 2 ?

RepositoriesRepositoriesRepositoriesRepositories

Release, Snasphot

Automatise la récupération des

dépendances, facilite l’intégration

continue (les dernières versions

sont tout de suite disponibles)…

RRRRééééutilisationutilisationutilisationutilisation

Plugins

Template de projet (archétypes)

Améliore la productivité, mise en

place de recommandations

d’entreprise…

…………

Page 16: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 16

Central

Build – Plateforme Maven 2 à Orange Labs

Central snapshot

Codehaus

pom.xml

<project>

</project>

<repository>

<id>codehaus</id>

<name>codehaus repository</name>

<url>http://repository.codehaus.org/</url>

</repository>

<repositories>

<repository>

<id>apache.snapshot</id>

<name>apache.snapshot repository</name>

<url>http://people.apache.org/maven-snapshot-repository/</url>

</repository>

</repositories>

[…]

[…]

Page 17: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 17

Proxy Maven 2

Central

Build – Plateforme Maven 2 à Orange Labs

Central snapshot

Codehaus

pom.xml

<project>

</project>

Central

setting.xml

<settings>

<mirrors>

<mirror>

<id>FranceTelecomMaven2Proxy</id>

<mirrorOf>central</mirrorOf>

<name>France Telecom Maven2 repositories</name>

<url>https://maven2.rd.francetelecom.fr/proxy/</url>

</mirror>

</mirrors>

[…]

</settings>

Central snapshot

Codehaus

inhouse

inhousesnapshot

<parent>

<groupId>com.francetelecom</groupId>

<artifactId>corporate</artifactId>

<version>1.4</version>

</parent>

[…]

Page 18: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 18

Build – Plateforme Maven 2 à Orange Labs

Page 19: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 19

Build – Plateforme Maven 2 à Orange Labs

Page 20: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 20

Build – Plateforme Maven 2 à Orange Labs

Page 21: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 21

Build – Plateforme Maven 2 à Orange Labs

Page 22: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 22

Build – Plateforme Maven 2 à Orange Labs

Page 23: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 23

Build – Plateforme Maven 2 à Orange Labs

Page 24: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 24

Build – Plateforme Maven 2 à Orange Labs

Page 25: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 25

Build – Bilan

Maven 2 • On a toujours réussi à mettre en place le processus build même pour des contextes

très complexes

• Adoption de plus en plus forte de Maven 2 au sein de France Télécom. Les utilisateurs

de Maven 2 ne souhaitent pas revenir en arrière

• Site web du projet à jour (généré par le serveur d'intégration continue)

• Bonnes pratiques plus facile à divulguer (pom, archetypes…)

Plate-forme Maven 2 du Groupe France Télécom• Industrialisation réussie : proxy Maven 2, site web, forum actif, support en place…

• Utilisation quotidienne par de nombreux projets

• Pas de soucis particuliers (montée en charge, disponibilité… ) juste des demandes

d'évolution

• Devenu une recommandation au niveau Groupe

Utilisation de la plate-forme Maven 2 sur plusieurs projets industriels et avec de nombreuses

technologies (Java/ J2EE, JMS, Web Services, Castor, SSO, IMS, SIP, Osgi, Smart Environment…)

Aspects positifs :

Page 26: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 26

Build – Bilan

Difficultés rencontrés :

Maven 2 • Documentation pas toujours suffisante

• Tests d'intégration pas bien pris en compte avec Maven 2.0.x

• Gestion des projets multi-modules (release, site web)

• Intégration avec Eclipse (difficulté de synchronisation, problème de

reproductibilité…)

• Philosophie et manière de travailler pas toujours bien comprises/acceptées

(problème plutôt humain que technique)

Plate-forme Maven 2 de France Télécom• Industrialisation de Maven 2 : on est parti de zéro sans référence dans le domaine

(architecture physique, sauvegarde, proxy Maven 2, contrôle d'accès pour le déploiement,

site web codex, support…)

• Conflits d'intérêt : vision projet (vision locale) vs cohérence de la plate-forme (vision

globale)

• Problématique liée à l'évolution de la plate-forme (assurer la compatibilité ascendante)

• Ouverture de la plate-forme pour les sociétés externes (Propriété Intellectuelle)

Utilisation de la plate-forme Maven 2 sur plusieurs projets importants et avec de nombreuses

technologies (Java/ J2EE, JMS, Web Services, Castor, SSO, IMS, SIP, Osgi, Smart Environment…)

Page 27: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 27

Intégration Continue

Page 28: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 28

L’Intégration Continue

… une pratique de développement logiciel où les

membres d’une équipe intègrent leur travail

fréquemment, habituellement chacun au moins

une fois par jour – ce qui entraine plusieurs

intégrations par jour. Chaque intégration est

validée par un ‘build’ automatique (ce qui inclut les

tests) pour détecter les erreurs d’intégration aussi

vite que possible ...

http://www.martinfowler.com/articles/continuousIntegration.html Martin FowlerMartin FowlerMartin FowlerMartin Fowler

Page 29: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 29

Intégration Continue - Problématique

Source: http://www.agitar.com/solutions/why_unit_testing.html

Les 5% de bugs découverts après la release représentent 95% des coûts de correction

Module1Module1Module1Module1

Module2Module2Module2Module2

ModuleiModuleiModuleiModulei

DDDDééééveloppementveloppementveloppementveloppement IntIntIntIntéééégrationgrationgrationgration

Page 30: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 30

Intégration Continue - Problématique

DDDDéééétecter au plus tôt les tecter au plus tôt les tecter au plus tôt les tecter au plus tôt les

problproblproblproblèèèèmes pour les corriger au mes pour les corriger au mes pour les corriger au mes pour les corriger au

plus tôtplus tôtplus tôtplus tôt

Les 5% de bugs découverts après la release représentent 95% des coûts de correction

Module1Module1Module1Module1

Module2Module2Module2Module2

ModuleiModuleiModuleiModulei

DDDDééééveloppementveloppementveloppementveloppement IntIntIntIntéééégrationgrationgrationgration

Intégration Continue

Module1Module1Module1Module1

Module2Module2Module2Module2

ModuleiModuleiModuleiModulei

IntIntIntIntéééégrationgrationgrationgration IntIntIntIntéééégrationgrationgrationgration

DDDDééééveloppementveloppementveloppementveloppement

IntIntIntIntéééégrationgrationgrationgration IntIntIntIntéééégrationgrationgrationgrationIntIntIntIntéééégrationgrationgrationgration IntIntIntIntéééégrationgrationgrationgration

Page 31: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 31

Intégration Continue - Les enjeux

� Corriger les bugs au plus tôt

S’assurer que l’intégration de code ‘nouveau’ ne casse pas le

composant logiciel.

� Améliorer la qualité du code et la cohérence de l’équipe

Toute l’équipe avance en parallèle et chacun suit les apports

des autres.

� Voir en ‘temps réel’ l’état du projet

En produisant des rapports et en les diffusant à chaque

‘commit’ toute l’équipe peut suivre l’état d’avancement du

projet.

� Avoir un logiciel prêt à être déployé

Obtenir des ‘builds’ répétables et reproductibles dans le temps

et l’espace.

Page 32: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 32

Intégration Continue - Concepts

Evènements de déclenchement

SCM

Modifications au niveau du gestionnaire de configuration (SCM) Modifications au niveau du gestionnaire de configuration (SCM) Modifications au niveau du gestionnaire de configuration (SCM) Modifications au niveau du gestionnaire de configuration (SCM)

le SCM est scruté périodiquement par le serveur d'IC ("polling" )

le serveur d'IC attend un évènement envoyé par le SC

Intervention humaine sur le serveur d'intIntervention humaine sur le serveur d'intIntervention humaine sur le serveur d'intIntervention humaine sur le serveur d'intéééégration continue (IC)gration continue (IC)gration continue (IC)gration continue (IC)

PPPPéééériodiquementriodiquementriodiquementriodiquement

En cascade (le En cascade (le En cascade (le En cascade (le buildbuildbuildbuild d'un projet lance le d'un projet lance le d'un projet lance le d'un projet lance le buildbuildbuildbuild d'un d'un d'un d'un

ou plusieurs autres projets)ou plusieurs autres projets)ou plusieurs autres projets)ou plusieurs autres projets)

API Distante (Web Service, API Distante (Web Service, API Distante (Web Service, API Distante (Web Service, JabberJabberJabberJabber...)...)...)...)

Page 33: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 33

Intégration Continue - Concepts

Appel d’actionsEvènements de déclenchement

Outils de build

OutilsOutilsOutilsOutils de build de build de build de build

(Ant, Maven 1, Maven 2(Ant, Maven 1, Maven 2(Ant, Maven 1, Maven 2(Ant, Maven 1, Maven 2…………))))

Scripts shell, bashScripts shell, bashScripts shell, bashScripts shell, bash

Page 34: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 34

Intégration Continue - Concepts

Evènements de déclenchement

Rapports

Artéfacts

Notifications

Appel d’actions

Comment Comment Comment Comment : Mail, Messagerie instantanée, Flux RSS, Widgets, …

Page 35: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 35

Intégration Continue - Concepts

Evènements de déclenchement

Comment Comment Comment Comment : Mail, Messagerie instantanée, Flux RSS, Widgets, …

QuandQuandQuandQuand : Systématiquement après chaque build, Conditionnel (échec, qualité de code…)

QuiQuiQuiQui : Liste de destinataires, plusieurs listes possibles; le(s) dernier(s) comiters

Appel d’actions

Rapports

Artéfacts

Notifications

Page 36: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 36

Intégration Continue - Concepts*

Evènements de déclenchement Appel d’actions

Rapports

Artéfacts

Notifications

Page 37: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 37

Intégration Continue - Workflow

Développeur

checkout, update

Intégration Continue

construitdéploietesteanalyse

informe

Rapports

Artéfacts

Notifications

développetestecompile

Outils de build

checkout, commit, update, merge

SCM

Page 38: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 38

Intégration Continue - Problématique

ProblProblProblProbléééématique : ammatique : ammatique : ammatique : amééééliorer la productivitliorer la productivitliorer la productivitliorer la productivitéééé des ddes ddes ddes dééééveloppeursveloppeursveloppeursveloppeurs

2'

4'

1'

10'

x'

compilation

tests unitaires

packaging

site web

8'tests d'intégration

2'

4'

1'

10'

x'

compilation

tests unitaires

packaging

site web

8'tests d'intégration

2'

4'

1'

10'

x'

compilation

tests unitaires

packaging

site web

8'tests d'intégration

x 40

x 20

x 1

x 0

x 0

x …

x 25

x 25

x 1

x 1

x 2

x …

x 45

x 10

x 1

x 0

x 0

x …

2'

4'

1'

10'

x'

compilation

tests unitaires

packaging

site web

8'tests d'intégration

2'

4'

1'

10'

x'

compilation

tests unitaires

packaging

site web

8'tests d'intégration

2'

4'

1'

10'

x'

compilation

tests unitaires

packaging

site web

8'tests d'intégration

x 30

x 15

x 5

x 2

x 2

x …

x 20

x 20

x 3

x 1

x 4

x …

x 35

x 5

x 5

x 0

x 0

x …

2'

4'

1'

10'

x'

compilation

tests unitaires

packaging

site web

8'tests d'intégration

x 20

x 20

x 15

x 2

x 15

x …

Intégration Continue

Page 39: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 39

Intégration Continue à Orange Labs

� Objectifs

– Choix d'un serveur d'intégration continue à recommander

– Mise en place de bonnes pratiques ainsi qu'un support

– Mise en pratique sur les projets

– Faciliter la mise en place d'un serveur d'intégration continue dès le

lancement du projet

Page 40: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 40

Intégration Continue à Orange Labs

� Choix d'un serveur d'intégration continue

– Réalisation d'une grille d'évaluation

– Audits de 10 projets pour remplir la grille et pour identifier les

différentes pratiques

Hudson

Page 41: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 41

Intégration Continue à Orange Labs

� Assurer la traçabilité

– Lancer le build à chaque modification du SCM pour savoir quel est le commit qui a

posé problème

– Commiter très fréquemment (une modification = un commit) pour identifier quelle

modification, quel(s) fichier(s) sont à l'origine du problème

– Disposer de builds rapides (max 15 minutes)

– Disposer d'un serveur puissant : gains partagés par l’ensemble de l’équipe

� Assurer la reproductibilité

– La référence est la machine d’intégration : plus de « ça marche chez moi » !!!

– Mise en place d'un " Nightly Build" qui repart de zéro (checkout complet du SCM,

suppression du repository local de maven 2…)

� Avoir le souci du produit fini

– Valoriser les rapports et intégrer la qualité dans la notion de "terminé"

– Artéfacts prêts à être déployés et validés sur l(es)'environnement(s) cible(s)

– Disposer d'une version de démonstration la plus à jour possible

Bonnes pratiquesBonnes pratiquesBonnes pratiquesBonnes pratiques

Page 42: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 42Orange Labs - Recherche & Développement - titre de la présentation – date

Retour Projets

Page 43: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 43

Retour d'expériences – Améliorer la qualité

• Détecter les problèmes au plus tôt pour les corriger au plus tôt

• Améliorer la qualité

Page 44: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 44

Retour d'expériences – Améliorer la qualité

Page 45: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 45

Retour d'expériences – Améliorer la qualité

Page 46: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 46

Retour d'expériences - Documentation à jour

Page 47: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 47

Retour d'expériences - Documentation à jour

Page 48: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 48

Retour d'expériences - Documentation à jour

Page 49: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 49

Bilan et Perspectives

Page 50: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 50

Bilan - Agilité

On passe de la compilation continue On passe de la compilation continue On passe de la compilation continue On passe de la compilation continue

àààà llll’’’’exexexexéééécution continue cution continue cution continue cution continue

vers la production continuevers la production continuevers la production continuevers la production continue

Manifesto for Agile Software Development

�Automatisation des tâches répétitivesIndividuals and interactions over processes and tools

�Le logiciel est bien validé et testé en exécutionWorking software over comprehensive documentation

�Transparence et visibilité : des rapports visibles par tousCustomer collaboration over contract negotiation

�Intégration continue des changements en réduisant les risquesResponding to change over following a plan

�La qualité est traitée comme un élément à part entièreCraftmanshipover Execution

Page 51: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 51

Bilan – Oranges Labs

� Industrialisation d’outils d’ingénierie logicielle (build, intégration

continue, gestion de configuration…) réussie

� Recommandation au niveau du groupe France Télécom (Orange

Labs, ROSI, Orange Business Services…)

� Mise en place de bonnes pratiques qui sont suivies et qui ont une

influence bénéfique sur les projets

� Les projets sont demandeurs pour utiliser ce qui a été mis en place et

souhaitent aller plus loin

� Initialisation d'une chaîne globale d’outils d’ingénierie logicielle

1 outil + 1 outil > 2 outils

� L’ingénierie logicielle rentre dans la culture d’entreprise

Aspects positifsAspects positifsAspects positifsAspects positifs

Page 52: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 52

Bilan – Oranges Labs

� Beaucoup de travaux à mener en parallèle et à coordonner (Build,

Intégration Continue, Analyse statique de code, Gestion de

configuration, Virtualisation, Tests, Gestion des exigences….)

� Certains sujets comme les rapports/métriques sont difficiles à

conceptualiser et demandent beaucoup de temps et d’expériences

� Industrialiser un outil demande un travail important et beaucoup de

compétences

� Prise en compte de l’ensemble des contraintes du groupe France

Télécom

DifficultDifficultDifficultDifficultéééés rencontrs rencontrs rencontrs rencontrééééssss

Page 53: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 53

Perspectives

Développeur

Outils de build

Intégration Continue

Configurations optimisées pour les tâches d'intégration

packaging, tests d'intégration, métriques, site web du projet…

Configurations optimisées pour les tâches du développeur

hot-deploy, tests unitaires, analyse statique de code…

SCM

Commit par issue

Tracker

Page 54: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 54

Perspectives

Développeur

Intégration Continue

SCM TrackerOutils de build

le SCM est utilisé commesimple support d'archivage. Le projet n'est pas dans un état stable et ceci est la dernière préoccupation des développeurs.

les échecs sontimmédiatement corrigés, commits fréquents.

http://www.agile-swiss.org/wiki/index.php?title=Integration_continue

Mise en place de sondes/capteurs PrPrPrPréééévenir plutôt que guvenir plutôt que guvenir plutôt que guvenir plutôt que guéééérirrirrirrir

Est-ce que les développeurs commits régulièrement ?

Page 55: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 55

Perspectives

Développeur

Intégration Continue

SCM TrackerOutils de build

Mise en place de sondes/capteurs PrPrPrPréééévenir plutôt que guvenir plutôt que guvenir plutôt que guvenir plutôt que guéééérirrirrirrir

Page 56: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 56

Développeur

Intégration Continue

SCM TrackerOutils de build

Perspectives

Mise en place d'un tableau de bord projet MaMaMaMaîîîîtrise de son projet trise de son projet trise de son projet trise de son projet

avancement, qualité…

Page 57: At2008 Grenoble Hugonnet Sanlaville Public

Oui c’est possible !!!

Page 58: At2008 Grenoble Hugonnet Sanlaville Public

Orange Labs - Agile Tour Grenoble 200809 Octobre 2008 58

Questions?