Ingénierie agile,        outils et bonnes pratiques :    noubliez pas vos développeurs !                Xavier NOPRE – 08/...
Qui suis-je ?       Xavier NOPRE :           Développeur logiciel Java & Web passionné depuis ~ 20 ans           Pratiq...
Et vous ?       Agilité : novice ou expert ?        1.    Je découvre, je ny connais rien        2.    Je connais les bas...
Au programme       Moi :                                                                        (diapos)           Intro...
Pourquoi cette session ?       Issue de :           Vécu personnel en tant que développeur           Retour dobservatio...
Mes objectifs du jour       Mettre en garde       Pointer les difficultés (actuelles ou à venir)       Lister une dizai...
Ingénierie agile : késako ?       "Ensemble de pratiques et doutillages du génie logiciel        permettant de faire du d...
Situation       Contexte :           Nouveau projet et migration à lagilité       Scrum est en place :            Choix...
Analyse    Lagilité : facile à comprendre, difficile à mettre en œuvre    Scrum : nest pas une "méthode" mais un cadre à...
Rappels > Cycle Scrum               Carnet           Carnet              de produit       ditération     Vision           ...
Rappels > Cycle Scrum     • Méthodes séquentielle classique :            Specs            Archi                    Dévelop...
Rappels > Itératif et incrémental         http://www.infoq.com/news/2008/01/iterating-and-incrementing13        Ingénierie...
Feuille de route         ?                                                        *****         ?                         ...
1/10      "Equipe" = Travail collaboratif :          Equipe pluri-disciplinaire          Le code appartient à tous     ...
2/10      Code communs et partagé :          Ecrit par les uns, lus par les autres          Modifié par tous           ...
Feuille de route         Gestion de versions (SNV)                                *****         Règles communes           ...
3/10      Travail itératif :          Déploiement pour tests intégration et fonctionnels          Packaging et livraiso...
4/10      Industrialisation et dépendances :          "Artifacts" : livrables identifiés (groupId + artifactId + version...
Feuille de route         Gestion de versions (SNV)                                *****         Règles communes           ...
Précisions    Développement "itératif" et "incrémental" :        Développement "minimum" :            Satisfaire les hi...
5/10      Besoin de remanier son code (refactoring) :          Renommages          Extraction de méthodes, de classes  ...
Feuille de route         Gestion de versions (SNV)                                *****         Règles communes           ...
6/10      Refactoring :          Ne pas casser lexistant , éviter les régressions      Nouvelles fonctionnalités :     ...
7/10      Tests unitaires :          "Impossible sur mon code"          Architecture et conception adaptée             ...
8/10      Tests unitaires : cest dur !          Mon code nest pas testable          Je ne sais pas comment tester      ...
Feuille de route         Gestion de versions (SNV)                                *****         Règles communes           ...
9/10      Les retours :          "Tout ça nest pas facile"          "Par où commencer ?"          "Jai un bon exemple ...
10/10     Constats et situations :         Chaque développeur oublie de rejouer tous les tests unitaires          avant ...
Feuille de route         Gestion de versions (SNV)                                *****         Règles communes           ...
Conclusion    Agilité        = révolution culturelle de lentreprise        = changements des rôles et de lorganisation ...
En résumé (technique)Thème                                                 ConseilPratiques :Règles communes, pair-program...
Questions ?!33   Ingénierie agile, outils et bonnes pratiques : noubliez pas vos développeurs - Xavier NOPRE
Prochain SlideShare
Chargement dans…5
×

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

1 460 vues

Publié le

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 460
Sur SlideShare
0
Issues des intégrations
0
Intégrations
5
Actions
Partages
0
Téléchargements
34
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

×