agilistes : n'oubliez pas la technique ! - agile france - 23/05/2013

43
Agilistes : n'oubliez pas la technique ! par Xavier NOPRE 23/05/2013 - 16h-17h - Salle 6 #AgileFrance

Upload: xavier-nopre

Post on 07-Jul-2015

334 views

Category:

Technology


3 download

DESCRIPTION

Diaporama de ma session "Agilistes : n'oubliez pas la technique !" lors de la conférence Agile France 2013

TRANSCRIPT

Page 1: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Agilistes :

n'oubliez pas la technique !

par Xavier NOPRE

23/05/2013 - 16h-17h - Salle 6

#AgileFrance

Page 2: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE 2

Préambule

Page 3: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Xavier NOPRE :

Développeur Agiliste Indépendant

Développeur :

Applications Java-WEB SaaS sur mesure

Clients finaux

Contrat agile

Formations, coaching, accompagnement :

Ingénierie agile, agilité, Scrum

Développement Java & WEB (HTML, CSS, JS, …)

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE 3

Qui suis-je ?

@xnopre xnopre.blogspot.com

Page 4: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Agilité : novice ou expert ?

1. Je découvre, je n'y 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, j'explique, je forme et accompagne

Profils :

Développeur

ScrumMaster ou Product Owner

Manager

Formateur / coach

Autre ?

4

Et vous ?

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE

Page 5: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Moi :

Introduction

Rappels sur l'agilité & Scrum

Mise en situation et Analyse

Exploration des outillages et méthodes

Conclusion

Nous :

Echanges autour de questions/réponses

Mix-IT 2013 : "Agilistes : n'oubliez pas la technique !" - Xavier NOPRE 5

Au programme

Page 6: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE 6

Introduction

Page 7: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Basée sur :

Mon expérience personnelle

Accompagnement d'équipes

Constat :

La technique est négligée dans les transitions agiles

Contexte technique :

Développement logiciel & écosystème Java

Sur mon blog : "Développement logiciel agile : informations sur l'outillage" :

http://xnopre.blogspot.fr/2012/09/developpement-logiciel-agile_13.html

7

Contexte pour cette session ?

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE

coach

dev

Page 8: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

"Ensemble de pratiques et d'outillages

dans l'édition logicielle

permettant de faire du développement agile"

Xavier NOPRE

8

"Ingénierie agile" : késako ?

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE

Page 9: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE 9

Rappels sur l'agilité & Scrum

Page 10: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

10

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

!!! !!!

!!!

Page 11: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

11

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

Page 12: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

12

Rappels > Incrémental / Itératif 1/2

http://www.infoq.com/news/2008/01/iterating-and-incrementing

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE

Page 13: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

13

Rappels > Incrémental et Itératif 2/2

http://itsadeliverything.com/revisiting-the-iterative-incremental-mona-lisa

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE

Page 14: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE 14

Mise en situation

&

analyses

Page 15: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

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

15

Situation : prenons une équipe …

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE

Page 16: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

L'agilité :

facile à comprendre, difficile à mettre en œuvre

16

Analyse > Généralités

Scrum :

n'est pas une "méthode" mais un "cadre" à adapter

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE

Page 17: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

17

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 …

etc …

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE

Et les aspects techniques !

Page 18: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

18

Analyse > Et côté développement 1/3

Une "vision" du produit mais pas de détails anticipés

Plus de cahier des charges (initial et fixe)

Plus de specs détaillées

Ne pas anticiper les "détails"

Besoin d'une conception évolutive (agile)

Faire émerger une architecture

Pas de régressions

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE

Page 19: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

19

Analyse > Et côté développement 2/3

Toutes les 3 semaines, livraison d'un produit partiel et

utilisable

Développement incrémental :

on avance par petits blocs fonctionnels

Développement itératif :

un bloc fonctionnel est finalisé sur plusieurs itérations

Développement transversal

quotidiennement, on implémente sur toutes les couches

Livraisons fréquentes

Packaging facile

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE

Page 20: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

20

Analyse > Et côté développement 3/3

Equipe auto-organisée et pluri-disciplinaire

Plus de chef,

"Plus de responsable"

Plus de spécialistes (technos, couches, qualité, tests, …)

Autonomie technique & initiatives

Responsabilisation collective et individuelle

Choix techniques et technologiques

La qualité devient un problème de tous les jours

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE

Page 21: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

21

Analyse > Bilan

Gestion "agile" de projet OK

Ingénierie agile ? …

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE

Page 22: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE 22

Outils et méthodes :

feuille de route

Page 23: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Que puis-je apporter à mon équipe "qui n'a rien" ?

Choix d'une dizaine d'outils et pratiques "de base"

Mix-IT 2013 : "Agilistes : n'oubliez pas la technique !" - Xavier NOPRE 23

Feuille de route : objectif

coach dev

Page 24: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

?

?

?

?

?

?

?

?

?

?

24

Feuille de route : format

* * * * *

* * * * *

* * * * *

* * * * *

* * * * *

* * * * *

* * * * *

* * * * *

* * * * *

* * * * *

Effort

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE

x

Page 25: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

"Equipe" = Travail collaboratif :

Equipe pluri-disciplinaire

Le code appartient à tous, Partage du code

Gestion centralisée, Suivi des versions

25

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

coach dev

Page 26: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Code communs et partagé :

Ecrit par les uns, lus par les autres

Modifié par tous

26

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

coach dev

Page 27: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Travail itératif en cycle court :

Packaging et livraisons fréquentes

Voire déploiement continue

27

Industrialisation/

Automatisation

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

coach dev

Page 28: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Industrialisation versionning & dépendances :

"Artifacts" : livrables identifiés (groupId + artifactId + version)

"repositories" : dépôts pour récupérer et déposer des livrables

28

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

coach dev

Page 29: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Mix-IT 2013 : "Agilistes : n'oubliez pas la technique !" - Xavier NOPRE 29

Pause "précisions"

Page 30: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

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

30

Précisions

Refactoring …

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE

Page 31: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

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 NOPRE 31

Refactorings

Page 32: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Mix-IT 2013 : "Agilistes : n'oubliez pas la technique !" - Xavier NOPRE 32

On reprend …

Page 33: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Besoin de Refactoring, notamment niveau 1

Prendre le moins de risque possibles …

Respecter les Règles communes

33

Un "bon" IDE

Un "bon" outil d'édition (IDE) :

Eclipse, NetBeans, MS Visual Studio, IntelliJ IDEA, …

Doit convenir à l'ensemble de l'équipe et correspondre aux

besoins ( IDE unique …)

Doit être bien configuré, pour tous les membres de l'équipe

* * * * *

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE

5

coach dev

Page 34: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

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

34

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

coach dev

Page 35: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Tests unitaires :

"Impossible sur mon code", "mon contexte ne le permet pas", …

Architecture et conception inadaptées

35

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

coach dev

Page 36: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Tests unitaires : c'est dur !

Difficile sur du code existant, difficile à écrire après le code de

production, code non testable, …

36

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

coach dev

Page 37: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Tests : apprentissage difficile

Besoin de fédérer une équipe pluri-disciplinaire

37

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

coach dev

Page 38: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Les tests ne sont pas rejoués systématiquement

Il faut livrer et packager souvent

Voire déployer fréquemment

38

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

coach dev

Page 39: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Gestion de versions (Git)

Règles communes

Industrialisation (Maven)

Repositories (Artifactory)

IDE (Eclipse)

Tests unitaires

Code testable

TDD

Pair-programming

Intégration continue

39

Feuille de route

* * * * *

* * * * *

* * * * *

* * * * *

* * * * *

* * * * *

* * * * *

* * * * *

* * * * *

* * * * *

Effort

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE

Page 40: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

40

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

Page 41: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

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

41

Conclusion

N'oubliez pas la technique !

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE

Page 42: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

Je n'ai pas parlé de :

Revue de code

Coding-dojo (Kata et Randori)

Frameworks et Librairies

Temps libre R&D

Prototype vs Produit

Autres langages et autres éco-système (ex : JavaScript)

Bug tracker

Réduction dette technique

42

Et encore …

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE

Page 43: Agilistes : n'oubliez pas la technique ! - Agile France - 23/05/2013

43

Questions ?!

Agilistes : n'oubliez pas la technique ! - Xavier NOPRE