Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013

648 views
557 views

Published on

Diaporama de ma présentation "Agilistes : n'oubliez pas la technique" le 25/04/2013 à Mix-IT 2013. N'hésitez pas à me faire des retours et me contacter !

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
648
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013

  1. 1. Agilistes :noubliez pas la technique !Xavier NOPRE – 25/04/2013
  2. 2. Agilistes : noubliez pas la technique ! - Xavier NOPRE2Préambule
  3. 3.  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 ingénierie agile, agilité et ScrumAgilistes : noubliez pas la technique ! - Xavier NOPRE3Qui suis-je ?@xnopre xnopre.blogspot.com
  4. 4.  Moi : Introduction & mise en situation Rappels sur lagilité & Scrum Analyse dune situation Exploration des outillages et méthodes Conclusion Nous : Echanges autour de questions/réponsesMix-IT 2013 : "Agilistes : noubliez pas la technique !" - Xavier NOPRE5Au programme
  5. 5. Agilistes : noubliez pas la technique ! - Xavier NOPRE6Introduction
  6. 6.  Pourquoi cette session ? Constat : la technique est négligée dans les transitions agiles Pour qui ? Tous profils et tous niveaux, sauf … Mes objectifs : Pointer les difficultés, mettre en garde, être pratique, répondreà des interrogations, … Contexte technique : Développement logiciel & écosystème Java7Contexte pour cette session ?Agilistes : noubliez pas la technique ! - Xavier NOPRE
  7. 7.  "Ensemble de pratiques et doutillages du génie logicielpermettant de faire du développement agile" (X. N.) Tout ce qui est lié à la technique et aux pratiques : Tests unitaires TDD Intégration continue Industrialisation …8"Ingénierie agile" : késako ?Agilistes : noubliez pas la technique ! - Xavier NOPRE
  8. 8. Agilistes : noubliez pas la technique ! - Xavier NOPRE9Mise en situation
  9. 9.  Contexte : Nouveau projet Migration vers lagilité Scrum est en place :Choix des acteurs PO et SMFormations et coachingEquipe stable et informéeSupports : backlogs, scrum board, …Cérémonies : sprint planning, revue, démo, rétro10Situation : prenons une équipe …Agilistes : noubliez pas la technique ! - Xavier NOPRE
  10. 10. Agilistes : noubliez pas la technique ! - Xavier NOPRE11Rappels sur lagilité & Scrum
  11. 11. 12Rappels > Cycle ScrumVisionCarnetde produitCarnetditérationItération2 à 4 semaines1 jourProduit partielPotentiellementutilisableAgilistes : noubliez pas la technique ! - Xavier NOPRE
  12. 12. 13Rappels > Cycle ScrumSpecs Archi Développements Tests• Méthodes séquentielle classique :• Scrum :Sprint 1 Specs Archi Dévt TestsSprint 2 Specs Archi Dévt TestsSprint 3 Specs Archi Dévt TestsSprint 4 Specs Archi Dévt Tests...TempsBDD Serveur IHMAgilistes : noubliez pas la technique ! - Xavier NOPRE
  13. 13. 14Rappels > Incrémental / Itératifhttp://www.infoq.com/news/2008/01/iterating-and-incrementingAgilistes : noubliez pas la technique ! - Xavier NOPRE
  14. 14. 15Rappels > Incrémental et Itératifhttp://itsadeliverything.com/revisiting-the-iterative-incremental-mona-lisaAgilistes : noubliez pas la technique ! - Xavier NOPRE
  15. 15. Agilistes : noubliez pas la technique ! - Xavier NOPRE16Retour sur laMise en situation&analyses
  16. 16.  Lagilité : facile à comprendre, difficile à mettre en œuvre17Analyse > Généralités Scrum : nest pas une "méthode" mais un cadre à adapterAgilistes : noubliez pas la technique ! - Xavier NOPRE
  17. 17. 18Analyse > Raisons déchecs Très nombreuses raisons déchec : Méthode trop adaptée = éloignement des valeurs et principes Manque de formation / dinformations (équipe et autour) Rôles mal définis ou mal respectés Mauvaise collecte des besoins Mauvaise gestion du "terminé" Facteurs humains etc …Agilistes : noubliez pas la technique ! - Xavier NOPRE Et les aspects techniques !
  18. 18. 19Analyse > Et côté développement Une "vision" du produit mais pas de détails anticipés Besoin dune architecture évolutive (agile) Plus techniques de specs techniques Autonomie technique, initiative, responsabilisation Toutes les 3 semaines, livraison dun produit partiel etutilisable Développement itératif, incrémental, et transversal Plus de "responsable" qualité Responsabilisation collective et individuelle La qualité devient un problème de tous les jours …Agilistes : noubliez pas la technique ! - Xavier NOPRE
  19. 19. 20Analyse > BilanGestion "agile" de projet  OKIngénierie agile  ? …Agilistes : noubliez pas la technique ! - Xavier NOPRE
  20. 20. Agilistes : noubliez pas la technique ! - Xavier NOPRE21Outils et méthodes :feuille de route
  21. 21. ??????????22Feuille de route* * * * ** * * * ** * * * ** * * * ** * * * ** * * * ** * * * ** * * * ** * * * ** * * * *EffortAgilistes : noubliez pas la technique ! - Xavier NOPREx
  22. 22.  "Equipe" = Travail collaboratif : Equipe pluri-disciplinaire Le code appartient à tous, Partage du code Gestion centralisée, Suivi des versions23Partage des sources Logiciel de gestion de version (Version Control System) : Git, Mercurial, … Subversion (SVN), ClearCase, CVS, …* * * * *Agilistes : noubliez pas la technique ! - Xavier NOPRE1
  23. 23.  Code communs et partagé : Ecrit par les uns, lus par les autres Modifié par tous24Règles communes Règles communes de codage : Ecriture du code, Formatage des sources, Normes de nommages Configurations identiques des outils (IDE) Outillage : Sonar peut aider à vérifier les règles communes* * * * *Agilistes : noubliez pas la technique ! - Xavier NOPRE2
  24. 24.  Travail itératif en cycle court : Packaging et livraisons fréquentes Voire déploiement continue25Industrialisation 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* * * * *Agilistes : noubliez pas la technique ! - Xavier NOPRE3
  25. 25.  Industrialisation  versionning & dépendances : "Artifacts" : livrables identifiés (groupId + artifactId + version) "repositories" : dépôts pour récupérer et déposer des livrables26Dépôts (repositories) Gestionnaire de repositories : Artifactory, Nexus, Archiva Intérêts dun dépôt interne : Proxy des dépôts publics internet Déploiement (Maven) de ses propres artifacts "Mavenisation" de livrables "non Maven"* * * * *Agilistes : noubliez pas la technique ! - Xavier NOPRE4
  26. 26.  Développement "itératif" et "incrémental" : Développement "minimum" pour litération courante : 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 lors des itérations suivantes : Satisfaire les histoires de la nouvelle itération Modifier le code existant pour quil puisse recevoir les nouveautés Implémenter les nouvelles fonctionnalités27PrécisionsRefactoring …Agilistes : noubliez pas la technique ! - Xavier NOPRE
  27. 27.  Niveau 1 : "cosmétique" & lisibilité : Renommages, extraction de méthodes Suppression de variables locales, de codes inutiles, … Niveau 2 : "package" & testabilité : Extraction de classes et interfaces Déplacement de méthodes, … Niveau 3 : "architectural" & évolutivité agile Modification des grands principes retenus Révision des modules ou composants, …Mix-IT 2013 : "Agilistes : noubliez pas la technique !" - Xavier NOPRE28Refactorings
  28. 28.  Besoin de Refactoring, notamment niveau 1 Prendre le moins de risque possibles … Respecter les Règles communes29Un "bon" IDE Un "bon" outil dédition (IDE) : Eclipse, NetBeans, MSVisual Studio, IntelliJ IDEA, … Doit convenir à lensemble de léquipe et correspondre auxbesoins Doit être bien configuré, pour tous les membres de léquipe* * * * *Agilistes : noubliez pas la technique ! - Xavier NOPRE5
  29. 29.  Refactoring, notamment niveau 2 : Ne pas casser lexistant , éviter les régressions Nouvelles fonctionnalités : sûr de répondre au besoin Productivité et qualité : tester rapidement des situationsaux limites30Test unitairesautomatisables Tests unitaires : Faire les "bons" tests Automatisables, indépendants,rapides, …* * * * *Agilistes : noubliez pas la technique ! - Xavier NOPRE6 Notes Penser ROI ! Voir les tests dintégrationet tests fonctionnels
  30. 30.  Tests unitaires : "Impossible sur mon code", "mon contexte ne le permet pas", … Architecture et conception inadaptées31Code testable Code testable : Principe "1 classe 1 rôle"  architecture très découpée Couplage lâche Injection de dépendances (par framework ou manuelle) Interfaces & Mocks Apprentissage long* * * * *Agilistes : noubliez pas la technique ! - Xavier NOPRE7
  31. 31.  Tests unitaires : cest dur ! Difficile sur du code existant, difficile à écrire après le code deproduction, code non testable, …32TDD 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"  design* * * * *Agilistes : noubliez pas la technique ! - Xavier NOPRE8
  32. 32.  Tests : apprentissage difficile Besoin de fédérer une équipe pluri-disciplinaire33Pair-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, à temps partiel, un peu chaque jour* * * * *Agilistes : noubliez pas la technique ! - Xavier NOPRE9
  33. 33.  Les tests ne sont pas rejoués systématiquement Il faut livrer et packager souvent Voire déployer fréquemment34Intégration continue Intégration continue : Outils : Jenkins, Hudson, CruiseControl, Continuum, … Usages (pour commencer) : Build (compile et tests) toutes les 15 Build complet nocturne Autres opérations sur déclenchements manuels* * * * *Agilistes : noubliez pas la technique ! - Xavier NOPRE10
  34. 34. Gestion de versions (Git)Règles communesIndustrialisation (Maven)Repositories (Artifactory)IDE (Eclipse)Tests unitairesCode testableTDDPair-programmingIntégration continue35Feuille de route* * * * ** * * * ** * * * ** * * * ** * * * ** * * * ** * * * ** * * * ** * * * ** * * * *EffortAgilistes : noubliez pas la technique ! - Xavier NOPRE
  35. 35. 36En résumé (technique)Thème ConseilPratiques :Règles communes, pair-programming,coding-dojo, temps libre, …Simple  Ne pas hésiter !Outillage :IDE correct, configuré et maitrisé,gestionnaire de sources, industrialisation,intégration continue, …Faible investissement et bon ROI InvestirTests :Unitaires,TDD, code testable, codepropre, architecture évolutive, …Indispensable mais nécessite temps,patience, formation, accompagnementAgilistes : noubliez pas la technique ! - Xavier NOPRE
  36. 36.  Je nai pas parlé de … Agilité = révolution culturelle de lentreprise = changements des rôles et de lorganisation = changements des habitudes et des relations humaines Mais = aussi changements des pratiques et outillages techniques37Conclusion Noubliez pas la technique ! Agilistes : noubliez pas la technique ! - Xavier NOPRE
  37. 37. 38Questions ?!Agilistes : noubliez pas la technique ! - Xavier NOPRE

×