SlideShare une entreprise Scribd logo
Agilistes :
n'oubliez pas la technique !
Xavier NOPRE – 25/04/2013
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE2
Préambule
 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 Scrum
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE3
Qui suis-je ?
@xnopre xnopre.blogspot.com
 Moi :
 Introduction & mise en situation
 Rappels sur l'agilité & Scrum
 Analyse d'une situation
 Exploration des outillages et méthodes
 Conclusion
 Nous :
 Echanges autour de questions/réponses
Mix-IT 2013 : "Agilistes : n'oubliez pas la technique !" - Xavier NOPRE5
Au programme
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE6
Introduction
 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 Java
7
Contexte pour cette session ?
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
 "Ensemble de pratiques et d'outillages du génie logiciel
permettant 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 : n'oubliez pas la technique ! - Xavier NOPRE
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE9
Mise en situation
 Contexte :
 Nouveau projet
 Migration vers l'agilité
 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
10
Situation : prenons une équipe …
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE11
Rappels sur l'agilité & Scrum
12
Rappels > Cycle Scrum
Vision
Carnet
de produit
Carnet
d'itération
Itération
2 à 4 semaines
1 jour
Produit partiel
Potentiellement
utilisable
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
13
Rappels > Cycle Scrum
Specs Archi Développements Tests
• Méthodes séquentielle classique :
• Scrum :
Sprint 1
 Specs
 Archi
 Dévt
 Tests
Sprint 2
 Specs
 Archi
 Dévt
 Tests
Sprint 3
 Specs
 Archi
 Dévt
 Tests
Sprint 4
 Specs
 Archi
 Dévt
 Tests
...
Temps
BDD Serveur IHM
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
14
Rappels > Incrémental / Itératif
http://www.infoq.com/news/2008/01/iterating-and-incrementing
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
15
Rappels > Incrémental et Itératif
http://itsadeliverything.com/revisiting-the-iterative-incremental-mona-lisa
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE16
Retour sur la
Mise en situation
&
analyses
 L'agilité :
 facile à comprendre, difficile à mettre en œuvre
17
Analyse > Généralités
 Scrum :
 n'est pas une "méthode" mais un cadre à adapter
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
18
Analyse > Raisons d'échecs
 Très nombreuses raisons d'échec :
 Méthode trop adaptée = éloignement des valeurs et principes
 Manque de formation / d'informations (équipe et autour)
 Rôles mal définis ou mal respectés
 Mauvaise collecte des besoins
 Mauvaise gestion du "terminé"
 Facteurs humains
 etc …
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
 Et les aspects techniques !
19
Analyse > Et côté développement
 Une "vision" du produit mais pas de détails anticipés
 Besoin d'une architecture évolutive (agile)
 Plus techniques de specs techniques
 Autonomie technique, initiative, responsabilisation
 Toutes les 3 semaines, livraison d'un produit partiel et
utilisable
 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 : n'oubliez pas la technique ! - Xavier NOPRE
20
Analyse > Bilan
Gestion "agile" de projet  OK
Ingénierie agile  ? …
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE21
Outils et méthodes :
feuille de route
?
?
?
?
?
?
?
?
?
?
22
Feuille de route
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
Effort
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
x
 "Equipe" = Travail collaboratif :
 Equipe pluri-disciplinaire
 Le code appartient à tous, Partage du code
 Gestion centralisée, Suivi des versions
23
Partage des sources
 Logiciel de gestion de version (Version Control System) :
 Git, Mercurial, …
 Subversion (SVN), ClearCase, CVS, …
* * * * *
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
1
 Code communs et partagé :
 Ecrit par les uns, lus par les autres
 Modifié par tous
24
Rè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 : n'oubliez pas la technique ! - Xavier NOPRE
2
 Travail itératif en cycle court :
 Packaging et livraisons fréquentes
 Voire déploiement continue
25
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
* * * * *
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
3
 Industrialisation  versionning & dépendances :
 "Artifacts" : livrables identifiés (groupId + artifactId + version)
 "repositories" : dépôts pour récupérer et déposer des livrables
26
Dépôts (repositories)
 Gestionnaire de repositories :
 Artifactory, Nexus, Archiva
 Intérêts d'un dépôt interne :
 Proxy des dépôts publics internet
 Déploiement (Maven) de ses propres artifacts
 "Mavenisation" de livrables "non Maven"
* * * * *
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
4
 Développement "itératif" et "incrémental" :
 Développement "minimum" pour l'itération courante :
 Satisfaire les histoires de l'itération courante
 Prendre en compte la "vision" à long terme
 Suivre l'architecture "grande échelle" (modules, composants)
 Mais pas d'anticipations sur les besoins futurs
 Développements lors des itérations suivantes :
 Satisfaire les histoires de la nouvelle itération
 Modifier le code existant pour qu'il puisse recevoir les nouveautés
 Implémenter les nouvelles fonctionnalités
27
Précisions
Refactoring …
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
 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 : n'oubliez pas la technique !" - Xavier NOPRE28
Refactorings
 Besoin de Refactoring, notamment niveau 1
 Prendre le moins de risque possibles …
 Respecter les Règles communes
29
Un "bon" IDE
 Un "bon" outil d'édition (IDE) :
 Eclipse, NetBeans, MSVisual Studio, IntelliJ IDEA, …
 Doit convenir à l'ensemble de l'équipe et correspondre aux
besoins
 Doit être bien configuré, pour tous les membres de l'équipe
* * * * *
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
5
 Refactoring, notamment niveau 2 :
 Ne pas casser l'existant , éviter les régressions
 Nouvelles fonctionnalités : sûr de répondre au besoin
 Productivité et qualité : tester rapidement des situations
aux limites
30
Test unitaires
automatisables
 Tests unitaires :
 Faire les "bons" tests
 Automatisables, indépendants,
rapides, …
* * * * *
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
6
 Notes
 Penser ROI !
 Voir les tests d'intégration
et tests fonctionnels
 Tests unitaires :
 "Impossible sur mon code", "mon contexte ne le permet pas", …
 Architecture et conception inadaptées
31
Code 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 : n'oubliez pas la technique ! - Xavier NOPRE
7
 Tests unitaires : c'est dur !
 Difficile sur du code existant, difficile à écrire après le code de
production, code non testable, …
32
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"  design
* * * * *
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
8
 Tests : apprentissage difficile
 Besoin de fédérer une équipe pluri-disciplinaire
33
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, à temps partiel, un peu chaque jour
* * * * *
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
9
 Les tests ne sont pas rejoués systématiquement
 Il faut livrer et packager souvent
 Voire déployer fréquemment
34
Inté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 : n'oubliez pas la technique ! - Xavier NOPRE
10
Gestion de versions (Git)
Règles communes
Industrialisation (Maven)
Repositories (Artifactory)
IDE (Eclipse)
Tests unitaires
Code testable
TDD
Pair-programming
Intégration continue
35
Feuille de route
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
Effort
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
36
En résumé (technique)
Thème Conseil
Pratiques :
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
 Investir
Tests :
Unitaires,TDD, code testable, code
propre, architecture évolutive, …
Indispensable mais nécessite temps,
patience, formation, accompagnement
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
 Je n'ai pas parlé de …
 Agilité
 = révolution culturelle de l'entreprise
 = changements des rôles et de l'organisation
 = changements des habitudes et des relations humaines
 Mais = aussi changements des pratiques et outillages techniques
37
Conclusion
 N'oubliez pas la technique ! 
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
38
Questions ?!
Agilistes : n'oubliez pas la technique ! - Xavier NOPRE

Contenu connexe

PDF
Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013
Xavier NOPRE
 
PDF
Ingénierie agile : N’oubliez pas vos développeurs
Xavier NOPRE
 
ODP
Agile Tour 2010 - Mise en place d'un projet agile
Laurent Deséchalliers
 
PPTX
Architecture express pour petits projets
CGI Québec Formation
 
PDF
Méthodes agiles & Scrum
Valentin Bourgoin
 
PDF
Qualité de code, sonar, la dette
Novencia Groupe
 
PDF
Solutions Linux2008 Construire Sa Vision Qualite
francois.le.droff
 
PPTX
Gestion de projets agiles avec scrum actiskills
Pierre E. NEIS
 
Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013
Xavier NOPRE
 
Ingénierie agile : N’oubliez pas vos développeurs
Xavier NOPRE
 
Agile Tour 2010 - Mise en place d'un projet agile
Laurent Deséchalliers
 
Architecture express pour petits projets
CGI Québec Formation
 
Méthodes agiles & Scrum
Valentin Bourgoin
 
Qualité de code, sonar, la dette
Novencia Groupe
 
Solutions Linux2008 Construire Sa Vision Qualite
francois.le.droff
 
Gestion de projets agiles avec scrum actiskills
Pierre E. NEIS
 

Tendances (18)

PPT
Scrum les principes de base
Sirine Barguaoui
 
PDF
Scrum - Une méthode agile sous la loupe ...
Bilel McSam
 
PPT
Introduction scrum
Minyawi Amino
 
PPTX
Gestion de projets agiles avec scrumv2
Pierre E. NEIS
 
PPTX
Scrum xp
Abdelhakim Bachar
 
PPTX
Gestion de projets agiles avec scrum
Pierre E. NEIS
 
KEY
Genielogiciel
Jean David Olekhnovitch
 
PPTX
Mesurer scrum avec Roboscrum
Pierre E. NEIS
 
PDF
Solutions Linux 2010 - Maîtrise du développement PHP
Jean-Marc Fontaine
 
PPT
20mn scrum
Olivier Patou
 
PDF
Revues de code - Forum PHP 2010
Jean-Marc Fontaine
 
PDF
Toulouse 25 octobre 2012 : quel chemin vers l'agilité ?
thierrycros
 
PPTX
DevExp 2012 methodes agiles SCRUM jesnault
Jérôme Esnault
 
PPTX
Du Manifeste Agile à Scrum
Xavier Warzee
 
PPTX
Agile tour 2015 alliés contre les défauts
Julien Jakubowski
 
PDF
Crise agile chez les développeurs (frug agile 2020)
Guillaume Saint Etienne
 
PDF
Methode Agile
JEAN-GUILLAUME DUJARDIN
 
PDF
La revue de code : agile, lean, indispensable !
Lucian Precup
 
Scrum les principes de base
Sirine Barguaoui
 
Scrum - Une méthode agile sous la loupe ...
Bilel McSam
 
Introduction scrum
Minyawi Amino
 
Gestion de projets agiles avec scrumv2
Pierre E. NEIS
 
Gestion de projets agiles avec scrum
Pierre E. NEIS
 
Mesurer scrum avec Roboscrum
Pierre E. NEIS
 
Solutions Linux 2010 - Maîtrise du développement PHP
Jean-Marc Fontaine
 
20mn scrum
Olivier Patou
 
Revues de code - Forum PHP 2010
Jean-Marc Fontaine
 
Toulouse 25 octobre 2012 : quel chemin vers l'agilité ?
thierrycros
 
DevExp 2012 methodes agiles SCRUM jesnault
Jérôme Esnault
 
Du Manifeste Agile à Scrum
Xavier Warzee
 
Agile tour 2015 alliés contre les défauts
Julien Jakubowski
 
Crise agile chez les développeurs (frug agile 2020)
Guillaume Saint Etienne
 
Methode Agile
JEAN-GUILLAUME DUJARDIN
 
La revue de code : agile, lean, indispensable !
Lucian Precup
 
Publicité

En vedette (20)

PPT
Sistemas de rep pp
dariotecnica1
 
PDF
Modulo i. iniciacion a la informatica
Punto Vuela Guadalinfo Sanlucar la Mayor
 
PPT
Ich Und Du
PGCEMaster
 
PPS
Monostorok
zsoltslideshare
 
PPT
Dispositivos Inalambricos
marce005
 
DOC
Me tenès podrido, Argentina (y A Mí también) - Lic.Gigli Box
Celeste Box
 
PPTX
Macaron Linked In
Michel Goulet
 
PPT
Moritz - das Seminarkrkodil will zu Ihnen!
Fromm Ingo
 
PPTX
La Matinale X-PRIME Groupe - Google Analytics
X-PRIME GROUPE
 
PPT
NSK
NSKSTATE
 
PPS
¡Que Buena Idea!
guest081dd56
 
PDF
Word Media - La visibilité sur le web (référencement et moteurs de recherche)
WordMedia
 
PPT
Word media - Présentation agence - 2011
WordMedia
 
PDF
What's Hot ?! - Septembre 2015
onepoint x weave
 
PPS
Perlas
hojitadepapel
 
PPT
PresentacióN1
programanatacion2009
 
PPS
Te quiero decir que
hojitadepapel
 
PPT
Ausrichtung auf neue mobile Geschäftsbedürfnisse in der Stadt Winterthur
Christoph Zech
 
KEY
No dejes tu fe en el closet
Frank Pool
 
Sistemas de rep pp
dariotecnica1
 
Modulo i. iniciacion a la informatica
Punto Vuela Guadalinfo Sanlucar la Mayor
 
Ich Und Du
PGCEMaster
 
Monostorok
zsoltslideshare
 
Dispositivos Inalambricos
marce005
 
Me tenès podrido, Argentina (y A Mí también) - Lic.Gigli Box
Celeste Box
 
Macaron Linked In
Michel Goulet
 
Moritz - das Seminarkrkodil will zu Ihnen!
Fromm Ingo
 
La Matinale X-PRIME Groupe - Google Analytics
X-PRIME GROUPE
 
¡Que Buena Idea!
guest081dd56
 
Word Media - La visibilité sur le web (référencement et moteurs de recherche)
WordMedia
 
Word media - Présentation agence - 2011
WordMedia
 
What's Hot ?! - Septembre 2015
onepoint x weave
 
PresentacióN1
programanatacion2009
 
Te quiero decir que
hojitadepapel
 
Ausrichtung auf neue mobile Geschäftsbedürfnisse in der Stadt Winterthur
Christoph Zech
 
No dejes tu fe en el closet
Frank Pool
 
Publicité

Similaire à Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013 (20)

PDF
Tester du legacy code, mission impossible ?
CGI Québec Formation
 
ODP
AT2010 Mise place d'un projet Agile
Normandy JUG
 
PPTX
presentationSCRUM.pptx
FaouziRBEIHI
 
PPTX
a Supply Chain a pour mission de gérer de bout en bout les flux
DanielMohamed4
 
PPTX
20131024 qualité de code et sonar - mug lyon
Clement Bouillier
 
PDF
Cours Devops Sparks.pptx.pdf
boulonvert
 
PPT
Développement en méthode agile
laurent bristiel
 
PDF
Usine Logicielle 2013
Stéphane Liétard
 
PDF
Lunch learn 5 sep2013
Marc-Eric LaRocque
 
PPTX
Le rôle de l’architecte Agile - Mathieu Boisvert
Pyxis Technologies
 
PDF
Unified Modeling Language (Diagram Sequence/ Use Case / Class)
MeryemOnzy
 
PPTX
Unified Modeling Langage Course : Different diagrams and Exemples
MeryemOnzy
 
ODP
Introduction a l_agilite_iut_lyon_1_decembre2011
agnes_crepet
 
PPTX
Agile Data Warehousing - 7 pillars - Procima Experts
Marc-Eric LaRocque
 
PPTX
Human Talks Grenoble - 11/12/2012 - TDD
Xavier NOPRE
 
PDF
Cleancode / Tocea / Introduction
Sylvain Leroy
 
PPT
Agilite togo jug_final
agnes_crepet
 
PPTX
Radical Quality From Toyota to Tech - Devoxx France.pptx
Flavian Hautbois
 
PPTX
Scrum@epitech
Pierre E. NEIS
 
PDF
La revue de code : facile !
Lucian Precup
 
Tester du legacy code, mission impossible ?
CGI Québec Formation
 
AT2010 Mise place d'un projet Agile
Normandy JUG
 
presentationSCRUM.pptx
FaouziRBEIHI
 
a Supply Chain a pour mission de gérer de bout en bout les flux
DanielMohamed4
 
20131024 qualité de code et sonar - mug lyon
Clement Bouillier
 
Cours Devops Sparks.pptx.pdf
boulonvert
 
Développement en méthode agile
laurent bristiel
 
Usine Logicielle 2013
Stéphane Liétard
 
Lunch learn 5 sep2013
Marc-Eric LaRocque
 
Le rôle de l’architecte Agile - Mathieu Boisvert
Pyxis Technologies
 
Unified Modeling Language (Diagram Sequence/ Use Case / Class)
MeryemOnzy
 
Unified Modeling Langage Course : Different diagrams and Exemples
MeryemOnzy
 
Introduction a l_agilite_iut_lyon_1_decembre2011
agnes_crepet
 
Agile Data Warehousing - 7 pillars - Procima Experts
Marc-Eric LaRocque
 
Human Talks Grenoble - 11/12/2012 - TDD
Xavier NOPRE
 
Cleancode / Tocea / Introduction
Sylvain Leroy
 
Agilite togo jug_final
agnes_crepet
 
Radical Quality From Toyota to Tech - Devoxx France.pptx
Flavian Hautbois
 
Scrum@epitech
Pierre E. NEIS
 
La revue de code : facile !
Lucian Precup
 

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

  • 1. Agilistes : n'oubliez pas la technique ! Xavier NOPRE – 25/04/2013
  • 2. Agilistes : n'oubliez pas la technique ! - Xavier NOPRE2 Pré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 Scrum Agilistes : n'oubliez pas la technique ! - Xavier NOPRE3 Qui suis-je ? @xnopre xnopre.blogspot.com
  • 4.  Moi :  Introduction & mise en situation  Rappels sur l'agilité & Scrum  Analyse d'une situation  Exploration des outillages et méthodes  Conclusion  Nous :  Echanges autour de questions/réponses Mix-IT 2013 : "Agilistes : n'oubliez pas la technique !" - Xavier NOPRE5 Au programme
  • 5. Agilistes : n'oubliez pas la technique ! - Xavier NOPRE6 Introduction
  • 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 Java 7 Contexte pour cette session ? Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
  • 7.  "Ensemble de pratiques et d'outillages du génie logiciel permettant 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 : n'oubliez pas la technique ! - Xavier NOPRE
  • 8. Agilistes : n'oubliez pas la technique ! - Xavier NOPRE9 Mise en situation
  • 9.  Contexte :  Nouveau projet  Migration vers l'agilité  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 10 Situation : prenons une équipe … Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
  • 10. Agilistes : n'oubliez pas la technique ! - Xavier NOPRE11 Rappels sur l'agilité & Scrum
  • 11. 12 Rappels > Cycle Scrum Vision Carnet de produit Carnet d'itération Itération 2 à 4 semaines 1 jour Produit partiel Potentiellement utilisable Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
  • 12. 13 Rappels > Cycle Scrum Specs Archi Développements Tests • Méthodes séquentielle classique : • Scrum : Sprint 1  Specs  Archi  Dévt  Tests Sprint 2  Specs  Archi  Dévt  Tests Sprint 3  Specs  Archi  Dévt  Tests Sprint 4  Specs  Archi  Dévt  Tests ... Temps BDD Serveur IHM Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
  • 13. 14 Rappels > Incrémental / Itératif http://www.infoq.com/news/2008/01/iterating-and-incrementing Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
  • 14. 15 Rappels > Incrémental et Itératif http://itsadeliverything.com/revisiting-the-iterative-incremental-mona-lisa Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
  • 15. Agilistes : n'oubliez pas la technique ! - Xavier NOPRE16 Retour sur la Mise en situation & analyses
  • 16.  L'agilité :  facile à comprendre, difficile à mettre en œuvre 17 Analyse > Généralités  Scrum :  n'est pas une "méthode" mais un cadre à adapter Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
  • 17. 18 Analyse > Raisons d'échecs  Très nombreuses raisons d'échec :  Méthode trop adaptée = éloignement des valeurs et principes  Manque de formation / d'informations (équipe et autour)  Rôles mal définis ou mal respectés  Mauvaise collecte des besoins  Mauvaise gestion du "terminé"  Facteurs humains  etc … Agilistes : n'oubliez pas la technique ! - Xavier NOPRE  Et les aspects techniques !
  • 18. 19 Analyse > Et côté développement  Une "vision" du produit mais pas de détails anticipés  Besoin d'une architecture évolutive (agile)  Plus techniques de specs techniques  Autonomie technique, initiative, responsabilisation  Toutes les 3 semaines, livraison d'un produit partiel et utilisable  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 : n'oubliez pas la technique ! - Xavier NOPRE
  • 19. 20 Analyse > Bilan Gestion "agile" de projet  OK Ingénierie agile  ? … Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
  • 20. Agilistes : n'oubliez pas la technique ! - Xavier NOPRE21 Outils et méthodes : feuille de route
  • 21. ? ? ? ? ? ? ? ? ? ? 22 Feuille de route * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Effort Agilistes : n'oubliez pas la technique ! - Xavier NOPRE x
  • 22.  "Equipe" = Travail collaboratif :  Equipe pluri-disciplinaire  Le code appartient à tous, Partage du code  Gestion centralisée, Suivi des versions 23 Partage des sources  Logiciel de gestion de version (Version Control System) :  Git, Mercurial, …  Subversion (SVN), ClearCase, CVS, … * * * * * Agilistes : n'oubliez pas la technique ! - Xavier NOPRE 1
  • 23.  Code communs et partagé :  Ecrit par les uns, lus par les autres  Modifié par tous 24 Rè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 : n'oubliez pas la technique ! - Xavier NOPRE 2
  • 24.  Travail itératif en cycle court :  Packaging et livraisons fréquentes  Voire déploiement continue 25 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 * * * * * Agilistes : n'oubliez pas la technique ! - Xavier NOPRE 3
  • 25.  Industrialisation  versionning & dépendances :  "Artifacts" : livrables identifiés (groupId + artifactId + version)  "repositories" : dépôts pour récupérer et déposer des livrables 26 Dépôts (repositories)  Gestionnaire de repositories :  Artifactory, Nexus, Archiva  Intérêts d'un dépôt interne :  Proxy des dépôts publics internet  Déploiement (Maven) de ses propres artifacts  "Mavenisation" de livrables "non Maven" * * * * * Agilistes : n'oubliez pas la technique ! - Xavier NOPRE 4
  • 26.  Développement "itératif" et "incrémental" :  Développement "minimum" pour l'itération courante :  Satisfaire les histoires de l'itération courante  Prendre en compte la "vision" à long terme  Suivre l'architecture "grande échelle" (modules, composants)  Mais pas d'anticipations sur les besoins futurs  Développements lors des itérations suivantes :  Satisfaire les histoires de la nouvelle itération  Modifier le code existant pour qu'il puisse recevoir les nouveautés  Implémenter les nouvelles fonctionnalités 27 Précisions Refactoring … Agilistes : n'oubliez 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 : n'oubliez pas la technique !" - Xavier NOPRE28 Refactorings
  • 28.  Besoin de Refactoring, notamment niveau 1  Prendre le moins de risque possibles …  Respecter les Règles communes 29 Un "bon" IDE  Un "bon" outil d'édition (IDE) :  Eclipse, NetBeans, MSVisual Studio, IntelliJ IDEA, …  Doit convenir à l'ensemble de l'équipe et correspondre aux besoins  Doit être bien configuré, pour tous les membres de l'équipe * * * * * Agilistes : n'oubliez pas la technique ! - Xavier NOPRE 5
  • 29.  Refactoring, notamment niveau 2 :  Ne pas casser l'existant , éviter les régressions  Nouvelles fonctionnalités : sûr de répondre au besoin  Productivité et qualité : tester rapidement des situations aux limites 30 Test unitaires automatisables  Tests unitaires :  Faire les "bons" tests  Automatisables, indépendants, rapides, … * * * * * Agilistes : n'oubliez pas la technique ! - Xavier NOPRE 6  Notes  Penser ROI !  Voir les tests d'intégration et tests fonctionnels
  • 30.  Tests unitaires :  "Impossible sur mon code", "mon contexte ne le permet pas", …  Architecture et conception inadaptées 31 Code 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 : n'oubliez pas la technique ! - Xavier NOPRE 7
  • 31.  Tests unitaires : c'est dur !  Difficile sur du code existant, difficile à écrire après le code de production, code non testable, … 32 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"  design * * * * * Agilistes : n'oubliez pas la technique ! - Xavier NOPRE 8
  • 32.  Tests : apprentissage difficile  Besoin de fédérer une équipe pluri-disciplinaire 33 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, à temps partiel, un peu chaque jour * * * * * Agilistes : n'oubliez pas la technique ! - Xavier NOPRE 9
  • 33.  Les tests ne sont pas rejoués systématiquement  Il faut livrer et packager souvent  Voire déployer fréquemment 34 Inté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 : n'oubliez pas la technique ! - Xavier NOPRE 10
  • 34. Gestion de versions (Git) Règles communes Industrialisation (Maven) Repositories (Artifactory) IDE (Eclipse) Tests unitaires Code testable TDD Pair-programming Intégration continue 35 Feuille de route * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Effort Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
  • 35. 36 En résumé (technique) Thème Conseil Pratiques : 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  Investir Tests : Unitaires,TDD, code testable, code propre, architecture évolutive, … Indispensable mais nécessite temps, patience, formation, accompagnement Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
  • 36.  Je n'ai pas parlé de …  Agilité  = révolution culturelle de l'entreprise  = changements des rôles et de l'organisation  = changements des habitudes et des relations humaines  Mais = aussi changements des pratiques et outillages techniques 37 Conclusion  N'oubliez pas la technique !  Agilistes : n'oubliez pas la technique ! - Xavier NOPRE
  • 37. 38 Questions ?! Agilistes : n'oubliez pas la technique ! - Xavier NOPRE