Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ingénierie agile : N’oubliez pas vos développeurs

1,889 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Ingénierie agile : N’oubliez pas vos développeurs

  1. 1. Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs ! Xavier NOPRE – 08/11/20121
  2. 2. Qui suis-je ? Xavier NOPRE :  Développeur logiciel Java & Web passionné depuis ~ 20 ans  Pratique et partage l’agilité depuis 2007 Indépendant. Missions :  Développements sur mesure et accompagnement de projet  En mode agile  Coaching en agilité, Scrum, et ingénierie agile @xnopre xnopre.blogspot.com 2 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  3. 3. Et vous ? Agilité : novice ou expert ? 1. Je découvre, je ny connais rien 2. Je connais les bases, je ne pratique pas encore 3. Je pratique un peu 4. Je pratique régulièrement (ex: un des rôles de Scrum) 5. Je maitrise, jexplique, je forme et accompagne Profils :  Développeur  Manager  Formateur / coach  Autre ? 3 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  4. 4. Au programme Moi : (diapos)  Introduction 3  Rappels sur lagilité 6  Mise en situation et suivi des étapes Exploration des outillages et méthodes 17 Nous :  Echanges autour de questions/réponses 4 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  5. 5. Pourquoi cette session ? Issue de :  Vécu personnel en tant que développeur  Retour dobservations en tant que consultant  Réflexions personnelles et échanges divers   la technique est négligée dans les transitions agiles Contexte évoqué :  Secteur du développement logiciel  Ecosystème Java 5 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  6. 6. Mes objectifs du jour Mettre en garde Pointer les difficultés (actuelles ou à venir) Lister une dizaine doutils et pratiques Répondre à des attentes comme :  "Je veux me lancer avec un maximum de chances"  "Je sens que lagilité ne fonctionne pas mais pourquoi ?"  "Cest quoi TU, TDD, IoC, CI, … ?"  "Comment tout cela peut-il sarticuler ?"  "Par quoi je commence ?"  "Combien ça coûte ?" 7 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  7. 7. Ingénierie agile : késako ? "Ensemble de pratiques et doutillages du génie logiciel permettant de faire du développement agile" (XN)  Tout ce qui est lié à la technique et aux pratiques :  Tests unitaires  TDD  Intégration continue  Industrialisation  … 8 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  8. 8. Situation Contexte :  Nouveau projet et migration à lagilité Scrum est en place : Choix des acteurs PO et SM Formations et coaching Equipe stable et informée Supports : backlogs, scrum board, … Cérémonies : sprint planning, revue, démo, rétro Mais … ça ne marche pas !  9 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  9. 9. Analyse Lagilité : facile à comprendre, difficile à mettre en œuvre Scrum : nest pas une "méthode" mais un cadre à adapter Très nombreuses raisons déchec :  Méthode trop adaptée = éloignement des valeurs et principes  Manque dinformations (équipe et autour)  Facteur humain  Aspects techniques ! Gestion "agile" de projet : OK Ingénierie agile ? … 10 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  10. 10. Rappels > Cycle Scrum Carnet Carnet de produit ditération Vision Itération 2 à 4 semaines Produit partiel 1 jour Potentiellement utilisable11 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  11. 11. Rappels > Cycle Scrum • Méthodes séquentielle classique : Specs Archi Développements Tests BDD Serveur IHM Temps • Scrum : Sprint 1 Sprint 2 Sprint 3 Sprint 4  Specs  Specs  Specs  Specs  Archi  Archi  Archi  Archi t t t t ...  Dév  Dév  Dév  Dév  Tests  Tests  Tests  Tests Temps12 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  12. 12. Rappels > Itératif et incrémental http://www.infoq.com/news/2008/01/iterating-and-incrementing13 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  13. 13. Feuille de route ? ***** ? ***** ? ***** ? ***** ? ***** ? ***** ? ***** ? ***** ? ***** ? ***** Effort14 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  14. 14. 1/10  "Equipe" = Travail collaboratif :  Equipe pluri-disciplinaire  Le code appartient à tous  Partage du code  Gestion centralisée  Suivi des versions Partage des sources *****  Logiciel de gestion de version (Version Control System) :  Subversion (SVN), ClearCase, CVS, …  Git, Mercurial, … 15 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  15. 15. 2/10  Code communs et partagé :  Ecrit par les uns, lus par les autres  Modifié par tous Règles communes *****  Règles communes de codage :  Ecriture du code  Formatage des sources  Normes de nommages  Outillage  Sonar 16 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  16. 16. Feuille de route Gestion de versions (SNV) ***** Règles communes ***** ? ***** ? ***** ? ***** ? ***** ? ***** ? ***** ? ***** ? ***** Effort17 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  17. 17. 3/10  Travail itératif :  Déploiement pour tests intégration et fonctionnels  Packaging et livraisons fréquentes Industrialisation *****  Outil de build pour industrialiser et automatiser :  Ant + Ivy  Maven :  Gestion précise des dépendances et des versions  Cycle de production intrinsèque  Nombreux plugins  Intégration IDE et autre outils 18 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  18. 18. 4/10  Industrialisation et dépendances :  "Artifacts" : livrables identifiés (groupId + artifactId + version)  "repositories" : dépôts pour récupérer et déposer des livrables Artifacts et repositories *****  Gestionnaire de repositories :  Artifactory, Nexus, Archiva  Intérêts dun dépôt interne :  Proxy des dépôts publics internet  Deploiement (Maven) de ses propres artifacts  "Mavenisation" de livrables "non Maven" 19 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  19. 19. Feuille de route Gestion de versions (SNV) ***** Règles communes ***** Industrialisation (Maven) ***** Repositories (Artifactory) ***** ? ***** ? ***** ? ***** ? ***** ? ***** ? ***** Effort20 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  20. 20. Précisions Développement "itératif" et "incrémental" :  Développement "minimum" :  Satisfaire les histoires de litération courante  Prendre en compte la "vision" à long terme  Suivre larchitecture "grande échelle" (modules, composants)  Mais pas danticipations sur les besoins futurs  Développements suivants :  Satisfaire les histoires de la nouvelle itération  Modifier le code existant pour quil puisse recevoir les nouveautés  Implémenter les nouvelles fonctionnalités Refactoring … 21 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  21. 21. 5/10  Besoin de remanier son code (refactoring) :  Renommages  Extraction de méthodes, de classes  Suppression de variables locales, de codes inutiles, …  Prendre le moins de risque possibles … IDE *****  Un "bon" outil dédition (IDE) :  Eclipse, NetBeans, MS Visual Studio, IntelliJ IDEA, …  Doit convenir à lensemble de léquipe et correspondre aux besoins  Doit être bien configuré, pour tous les membres de léquipe 22 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  22. 22. Feuille de route Gestion de versions (SNV) ***** Règles communes ***** Industrialisation (Maven) ***** Repositories (Artifactory) ***** IDE (Eclipse) ***** ? ***** ? ***** ? ***** ? ***** ? ***** Effort23 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  23. 23. 6/10  Refactoring :  Ne pas casser lexistant , éviter les régressions  Nouvelles fonctionnalités :  Etre sûr de répondre au besoin  Productivité et qualité :  Tester rapidement des situations aux limites Test unitaires *****  Tests unitaires :  Faire les "bons" tests  Penser ROI !  Voir les tests dintégration et tests fonctionnels 24 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  24. 24. 7/10  Tests unitaires :  "Impossible sur mon code"  Architecture et conception adaptée Code testable *****  Code testable :  Principe "1 classe 1 rôle"  architecture très découpée  Couplage lâche  Injection de dépendances (outils ou manuelle)  Interfaces & Mocks 25 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  25. 25. 8/10  Tests unitaires : cest dur !  Mon code nest pas testable  Je ne sais pas comment tester TDD *****  TDD = "Test Driven Development"  Principe = Ecrire les tests avant tout code de production ("Tests first")  Plus facile décrire les tests avant que après le code de prod  Permet de valider la compréhension du besoin  Guide vers un code forcément "testable" 26 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  26. 26. Feuille de route Gestion de versions (SNV) ***** Règles communes ***** Industrialisation (Maven) ***** Repositories (Artifactory) ***** IDE (Eclipse) ***** Tests unitaires ***** Code testable ***** TDD ***** ? ***** ? ***** Effort27 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  27. 27. 9/10  Les retours :  "Tout ça nest pas facile"  "Par où commencer ?"  "Jai un bon exemple mais …" Pair-programming *****  Pair-programming :  Principe : 2 développeurs devant 1 poste de travail  Apports :  Entraide, cohésion déquipe  Partage de connaissances, transferts de compétences  Gain de productivité, qualité, meilleures solutions  A bon escient, un peu chaque jour 28 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  28. 28. 10/10  Constats et situations :  Chaque développeur oublie de rejouer tous les tests unitaires avant son commit : investissement  autant les jouer souvent  Mon Product Owner veut un logiciel disponible très souvent  Les intégrateurs me demandent dautomatiser le déploiement en prod Intégration continue * * * * *  Intégration continue :  Outils : Jenkins, Hudson, CruiseControl, Continuum, …  Usages :  Build (compile et tests) toutes les 15  Build complet nocturne  Autres opérations sur déclenchements manuels 29 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  29. 29. Feuille de route Gestion de versions (SNV) ***** Règles communes ***** Industrialisation (Maven) ***** Repositories (Artifactory) ***** IDE (Eclipse) ***** Tests unitaires ***** Code testable ***** TDD ***** Pair-programming ***** Intégration continue ***** Effort30 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  30. 30. Conclusion Agilité  = révolution culturelle de lentreprise  = changements des rôles et de lorganisation  = changements des habitudes et des relations  Mais = aussi changements des pratiques et outillages techniques  Noubliez pas vos développeurs !  31 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  31. 31. En résumé (technique)Thème ConseilPratiques :Règles communes, pair-programming, Simple  Ne pas hésiter !coding-dojo, temps libre, …Outillage :IDE correct, configuré et maitrisé, Bon ROI  Investirgestionnaire de sources, industrialisation,intégration continue, …Tests : Indispensable mais nécessite temps,Unitaires, TDD, code testable, code patience, formation, accompagnementpropre, architecture évolutive, … 32 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
  32. 32. Questions ?!33 Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE

×