Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

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

  • 434 views
Uploaded 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 !

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 !

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
434
On Slideshare
430
From Embeds
4
Number of Embeds
1

Actions

Shares
Downloads
10
Comments
0
Likes
0

Embeds 4

https://twitter.com 4

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Agilistes :noubliez pas la technique !Xavier NOPRE – 25/04/2013
  • 2. Agilistes : noubliez pas la technique ! - Xavier NOPRE2Préambule
  • 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.  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. Agilistes : noubliez pas la technique ! - Xavier NOPRE6Introduction
  • 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.  "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. Agilistes : noubliez pas la technique ! - Xavier NOPRE9Mise en situation
  • 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. Agilistes : noubliez pas la technique ! - Xavier NOPRE11Rappels sur lagilité & Scrum
  • 11. 12Rappels > Cycle ScrumVisionCarnetde produitCarnetditérationItération2 à 4 semaines1 jourProduit partielPotentiellementutilisableAgilistes : noubliez pas la technique ! - Xavier NOPRE
  • 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. 14Rappels > Incrémental / Itératifhttp://www.infoq.com/news/2008/01/iterating-and-incrementingAgilistes : noubliez pas la technique ! - Xavier NOPRE
  • 14. 15Rappels > Incrémental et Itératifhttp://itsadeliverything.com/revisiting-the-iterative-incremental-mona-lisaAgilistes : noubliez pas la technique ! - Xavier NOPRE
  • 15. Agilistes : noubliez pas la technique ! - Xavier NOPRE16Retour sur laMise en situation&analyses
  • 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. 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. 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. 20Analyse > BilanGestion "agile" de projet  OKIngénierie agile  ? …Agilistes : noubliez pas la technique ! - Xavier NOPRE
  • 20. Agilistes : noubliez pas la technique ! - Xavier NOPRE21Outils et méthodes :feuille de route
  • 21. ??????????22Feuille de route* * * * ** * * * ** * * * ** * * * ** * * * ** * * * ** * * * ** * * * ** * * * ** * * * *EffortAgilistes : noubliez pas la technique ! - Xavier NOPREx
  • 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.  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.  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.  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.  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.  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.  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.  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.  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.  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.  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.  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. 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. 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.  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. 38Questions ?!Agilistes : noubliez pas la technique ! - Xavier NOPRE