l'intégration continue & agilité…

26
L’Intégration Continue & Agilité… " …des outils efficaces. " 17/03/2010 Agile Nantes Agile NANTES - Mars 2010

Upload: dominh

Post on 05-Jan-2017

236 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: L'Intégration Continue & Agilité…

L’Intégration Continue & Agilité…

" …des outils efficaces. "

17/03/2010 Agile Nantes

Agile NANTES-

Mars 2010

Page 2: L'Intégration Continue & Agilité…

Introduction

Fabian PIAU – [email protected]énieur développement chez NETAPSYSDiplômé MIAGE Nantes 2009

Sébastien ROUL – [email protected] NETAPSYS Atlantique15 ans de développementCo-fondateur : www.nantes-jug.org

17/03/2010 Agile Nantes 2|26

Qui sommes nous ?

Page 3: L'Intégration Continue & Agilité…

Sommaire

Problématique

Agilité et Intégration ContinueLes conceptsFonctionnement généralLes outils utilisés chez Netapsys

Retour d’expérienceVision DéveloppeurVision Chef de projet

Conclusion

17/03/2010 Agile Nantes 3|26

Page 4: L'Intégration Continue & Agilité…

17/03/2010 Agile Nantes 4|26

De qualitéAvec le moins de bogues possibles (encore moins des régressions…)Complètement testé (idéalement…)En assurant une maintenance facile à long terme

Dans un temps restreintLe plus rapidementMise en commun du développement Plusieurs personnes Besoin d’intégrerRéutiliser des composants existants Développement modulaire

Avec un suivi rigoureuxTransparence pour le clientRétroaction

Livrer un logiciel

Problématique

Page 5: L'Intégration Continue & Agilité…

17/03/2010 Agile Nantes 5|26

Des principesAccepter le changement et l’accueillir favorablementApprendre à apprendreViser l’excellence techniqueRemettre en cause les pratiques régulièrement

Des valeursLa communication et la transparenceLe courage et la responsabilitéLa solidarité et l’esprit d’équipeL’humilitéLa rétroactionLa simplicité

Un outil : L’Agilité

Outils

Page 6: L'Intégration Continue & Agilité…

17/03/2010 Agile Nantes 6|26

Une méthode agile ☺Principe: plus l’intégration est fréquente, moins elle est longue

Sans IC

Avec IC

Un autre outil : l’intégration Continue (IC)

Outils

Page 7: L'Intégration Continue & Agilité…

17/03/2010 Agile Nantes 7|26

Fonctionnementgénéral

Tout changement du code d’un logiciel est immédiatement pris en compte par une construction automatique d’intégration

Intégration Continue

Page 8: L'Intégration Continue & Agilité…

17/03/2010 Agile Nantes 8|26

Chargement de la dernière version du projet depuis le gestionnaire de version

Compilation

Exécution des tests unitaires

Inspection du code (en vue de générer les métriques de qualité)Génération de la documentation, des rapports, des notes de release (par exemple la Javadoc, rapport Checkstyle)

Construction de la release

Déploiement de l’application sur l'environnement d’intégration

Exécution des tests d'intégration

Construire des builds tous les jours…

Intégration Continue

Page 9: L'Intégration Continue & Agilité…

17/03/2010 Agile Nantes 9|26

Build local / privéJ’exécute un build sur ma machine

CompilationTests unitaires

Build d’intégrationLe serveur d’intégration exécute un build

Idem build local

Build de nuitLe serveur exécute un build complet

+ Tests d’intégration+ Documentation, rapports, métriques+ Release / Déploiement

…Mais des builds différents!

Intégration Continue

Page 10: L'Intégration Continue & Agilité…

17/03/2010 Agile Nantes 10|26

Un gestionnaire de versions SVN

Gestionnaire de dépendances, buildingMaven

Tests unitairesjUnit, Mockito, Eclemma

Un serveur d’intégration continueHudson

Repository managerArtifactory

Outils de qualimétrieSonar

Les outils utilisés

Exemples d’outils

Page 11: L'Intégration Continue & Agilité…

17/03/2010 Agile Nantes 11|26

Hudson, la « météo » de l’intégration continueUn onglet = un projetDifférents types de build par projet

Hudson

Les outils utilisés

Page 12: L'Intégration Continue & Agilité…

17/03/2010 Agile Nantes 12|26

Hudson

Le plugin Chuck…

Page 13: L'Intégration Continue & Agilité…

17/03/2010 Agile Nantes 13|26

Configuration d’un buildScrutage du SVN

Hudson

Les outils utilisés

Page 14: L'Intégration Continue & Agilité…

17/03/2010 Agile Nantes 14|26

Configuration d’un buildLa commande Maven à lancer, les notifications par email, etc.

Hudson

Les outils utilisés

Page 15: L'Intégration Continue & Agilité…

17/03/2010 Agile Nantes 15|26

Build de nuitUtilisé pour la génération du Maven site

Maven

Les outils utilisés

Page 16: L'Intégration Continue & Agilité…

17/03/2010 Agile Nantes 16|26

Sonar – Suivi qualité

Sonar

Les outils utilisés

Page 17: L'Intégration Continue & Agilité…

17/03/2010 Agile Nantes 17|26

Sonar

Page 18: L'Intégration Continue & Agilité…

17/03/2010 Agile Nantes 18|26

Sonar

Page 19: L'Intégration Continue & Agilité…

Réduction du temps de correction des boguesOn intègre nos modifications régulièrementEn cas de build en échec, la portion de code à débugger est faible

Amélioration du travail collaboratifLa fin du « Ca marche sur mon poste pourtant ! »Confiance entre le développeur et le logiciel

Le code et le design de l’application répondent aux exigences des standards, le résultat du build est un produit complètement fonctionnel et testable

L’IC encourage des bonnes habitudes de test

17/03/2010 Agile Nantes 19|26

Vision Développeur

IC au quotidien

Page 20: L'Intégration Continue & Agilité…

L’exécution régulière des tests et des outils d’inspection permettent de recueillir les informations pour l’évaluation de la complexité, la détection des codes potentiellement « malicieux »,…

Taux de couvertureTaux de duplicationRespect des conformités de Checkstyle

Sonar génère une compilation de tous ces rapports en prenant en compte la notion d’historique

17/03/2010 Agile Nantes 20|26

Vision Développeur

Checkstyle, PMD Respect des règles de codage et des bonnes pratiquesCPD, Simian Contrôle l’absence de copier/collerJDepend Analyse de dépendance et respect des règles

d’architectureJNCSS Contrôle de la complexité cyclomatique et de la

documentation technique

IC au quotidien

Page 21: L'Intégration Continue & Agilité…

L’intégration continue permet d’obtenir automatiquement des indicateurs d’avancement et d’état qualitatif d’un projet en cours de développement

L’objectif de la construction d’intégration est de produire un logiciel exécutable qui peut être déployé et testé fonctionnellement. Une démonstration avec le client est toujours possible

Les outils d’assurance qualité participent au contrôle des risques :► Risque de faible qualité logiciel► Risque de découverte tardive des défauts

17/03/2010 Agile Nantes 21|26

Vision Chef de projet

IC au quotidien

Page 22: L'Intégration Continue & Agilité…

Sonar, un outil central

► Permet d’avoir une meilleure visibilité du projet. Il participe à la rétroaction

► Synthétise les indicateurs d’assurance qualité produits par la construction Maven et fournit une vision chronologique de l’évolution du logiciel

► Sonar est le tableau de bord de l’état technique et qualitatif de l’ensemble des projets de l’entreprise

17/03/2010 Agile Nantes 22|26

Vision Chef de projet

IC au quotidien

Page 23: L'Intégration Continue & Agilité…

Exemple de graphiques

17/03/2010 Agile Nantes 23|26

Page 24: L'Intégration Continue & Agilité…

17/03/2010 Agile Nantes 24|26

Pilotage / Suivi► L’intégration continue est devenue un outil fondamental pour le pilotage

de nos projets : elle nous apporte plus de visibilité

Qualité / Productivité► L’intégration continue est un formidable levier d’amélioration de notre

niveau d’expertise technique : elle est l’un des moteurs de nos gains en termes de qualité et de productivité

Transparence / Rétroaction► L’intégration continue est un élément différenciant par rapport à nos

concurrents : elle est révélatrice de notre positionnement stratégique

Vision Chef de projet

IC au quotidien

Page 25: L'Intégration Continue & Agilité…

Au sein de Netapsys

Agile Nantes

Intégration continue mis en place depuis deux ans sur l’ensemble des projets.

Tous les nouveaux projets sont systématiquement « mavenisés » et mis sous Hudson.

Une fois mise en place, l’intégration continue n’est pas quelque chose de « figée »

Evolution sur l’intégration continue en 2010 : Actuellement: tests unitaires avec JUnit sur les projetsMise en place de tests intégration et scénarios métier avec Sélénium

17/03/2010 25|26

La suite

Page 26: L'Intégration Continue & Agilité…

Le mot de la fin

Agile Nantes

Pour aller plus loin

http://martinfowler.com/articles/continuousIntegration.htmlhttps://hudson.dev.java.net/http://sonar.codehaus.org/http://maven.apache.org/

Vous pouvez consulter un dossier sur l’IC sur mon blog technique :http://carmaworld.free.fr/blog/?p=49

Vos questions

17/03/2010 26|26