Extreme Programming
Transcription
Extreme Programming
Extreme Programming
Le projet social
Angèle Batanero
Thierry Cros
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
1
Qui sommes-nous ?
Angèle Batanero
Développeur
Thierry Cros
C++
Java
Coach depuis 10 ans
http://etre-agile.com
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
2
Agenda
XP, qu'es aco ?
Valeurs, principes
Pratiques
XP, au cœur de l'Agile
Planification
Équipe
Développement
L'Intention des Anarchistes Organisationnels
XP (Agile) : le projet social
« Insurrection des consciences »
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
3
XP, cet inconnu célèbre
Idées reçues...
XP, c'est pour les Développeurs
« geeks »
XP, cela ne fonctionne que sur
des petits projets sans enjeux
XP c'est juste un complément
technique à Scrum
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
4
XP : un nom pas vraiment
marketing...
...Mais qui annonce la couleur
Extreme
Ce sont donc des
extrémistes.. Des
révolutionnaires !
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
Programming
Ah bon... On ne
conçoit pas, on
n'analyse pas...
5
« programming »
Quelles activités
apportent vraiment
une Valeur Ajoutée ?
Programming
« Coder » (Java...)
Paramétrer
Programming
= Fabriquer le produit
Remettre en cause, réduire voire éliminer
les activités « non V.A. »
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
6
« extreme »
Une fois les activités
« non VA » réduites,
quelles activités
conserver et dans
quelle proportion ?
Dialogues
Tests
Conception
Relecture
Extreme Programming
=
« Pousser à fond » activité à Valeur Ajoutée
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
7
Extreme Programming
= centré activités à Valeur Ajoutée
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
8
XP : « la » synthèse
L'originalité d'XP réside
Dans la synthèse faite de principes
et pratiques
Dans l'apport de pratiques
spécifiques (stories, TDD...)
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
9
La « constitution » XP
Valeurs
Principes
Pratiques
Rôles
Agile Tour 2010 : XP, le projet social
Cycle de Vie
http://etre-agile.com
10
Rôles essentiels
Une équipe, plusieurs rôles
Client (Product Manager)
Spécifie les demandes et les tests-client, planifie en tenant
compte de la VA des demandes
Développeur
Estime les demandes, réalise
Un point focal pour tous :
l'importance Métier
offerte par le produit
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
11
Cycle de Vie XP
1
Exploration
2
2 mois max.
Engagement
3
4
1 semaine
5
...
Pilotage par feedback
Des années !
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
n
Mort
de l'appli
12
Agenda
XP, qu'es aco ?
Valeurs, principes
Pratiques
XP, au cœur de l'Agile
Planification
Équipe
Développement
L'Intention des Anarchistes Organisationnels
XP (Agile) : le projet social
« Insurrection des consciences »
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
13
Valeurs de l' Extreme Programming
Communication
Combien d'exemples... et de contre-exemples !
Feedback (concret et rapide)
Pour piloter à partir d'éléments les plus objectifs
Simplicité
Le pari de l'Extreme Programming, pour tous, tout le temps
Courage
De changer de rôle, de vision du produit
Respect
Respecter et être respecté en tant que
personne
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
Principe Lean
14
Valeur ?
Valeur : norme de
conduite personnelle
et/ou sociale*
* http://fr.wikipedia.org/wiki/Valeur
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
15
XP : les principes
Humanisme
Flot continu
Économie
Opportunité
Bénéfices mutuels
Redondance
Autosimilarité
Échecs
Qualité
Petites étapes
Amélioration
continue
Diversité
Réflexion
Agile Tour 2010 : XP, le projet social
Responsabilité
choisie
http://etre-agile.com
16
Pourquoi des principes
Entre valeurs et pratiques, les principes
- guident l'adaptation d'XP
- sont autant d'axes d'amélioration d'un existant
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
17
Humanisme
« Le propos d'XP est le changement social »
K. Beck
Revaloriser le métier du développement
Prendre en compte la dimension humaine dans les
activités liées au logiciel
Exprimer les besoins
Développer
Avoir le droit de bien faire, s'accomplir dans son
travail, être fier de son travail
Pouvoir influencer la façon dont on travaille
Être responsable, s'auto-gérer
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
18
Humanisme :
hédonisme et responsabilité
Le plaisir de coder,
de participer au
développement du
produit
La responsabilité de la
fabrication
D'un monde centré
« pouvoir »...
… À un collectif coresponsable
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
Pas facile...
Ni pour le Manager,
ni pour le Développeur
19
Diversité
La diversité engendre l'efficacité...
… Pourvu que les différences soient vues
comme des opportunités
Jeunes et Vieux
Écoles et Universités
...
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
20
Réflexion
La vie en métaphores
Comment telle
pratique...
Association
Sport
…
… peut aider à
améliorer mon travail
Agile Tour 2010 : XP, le projet social
Amélioration continue
http://etre-agile.com
Le 12ème principe
agile
Comment
et pourquoi
je travaille
21
Agenda
XP, qu'es aco ?
Valeurs, principes
Pratiques
XP, au cœur de l'Agile
Planification
Équipe
Développement
L'Intention des Anarchistes Organisationnels
XP (Agile) : le projet social
« Insurrection des consciences »
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
22
Pratiques
de l'Extreme Programming
13 pratiques de base
1. Expression de besoins et planification
2. Le facteur humain
3. Conception
4. Coder et livrer
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
23
Histoires et Planification 1/4
Demandes ? Les besoins sont décrits sous
forme d'histoires d'utilisation*.
Le cycle est itératif incrémental, la durée par
défaut d'une itération est d'une semaine.
La vision globale est planifiée à l'échelle du
trimestre.
Une marge de sécurité permet d'absorber les
imprévus (slack).
* Ce sont les User Stories : « En tant que... je peux... pour telle V.A .... »
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
24
Facteur humain, équipe
2/4
Un plateau-projet, où nous sommes
assis ensemble
Équipe complète : esprit d'équipe,
entr'aide, y compris le Client
Espace d'information : les infos sont
affichées, disponibles directement (radiateur
d'information, transparence)
Un rythme viable pour tous les membres
de l'équipe : Développeurs, Client...
Nous codons en binôme.
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
25
Conception
3/4
Conception émergente
une règle d'or, pas de duplication de code
Attention aux couplages
Test Driven Development : d'abord
écrire le test, puis coder, puis mettre au
point, période de ½ heure.
Le refactoring est une conséquence
de « conception émergente »
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
26
Conception émergente
Itération 1
Histoires d'utilisation
A320
Itération n
Histoires du A380
Avion
A320
A320
A380
YAGNI !
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
27
TDD
User story
« en tant qu'élève je peux calculer une division »
Des classes : Calculateur, Afficheur...
TDD - ½ heure :
1) Écrire les tests
2) Coder
3) Passer les tests
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
28
Concrètement : écrire un test...
package Calculateur;
public class Calc {
public int additionner(int a, int b){
return a + b;
}
public int soustraire(int a, int b){
return a - b;
}
// Un test simple pour commencer...
Conception
@Test
public void testDivisionSimple()
{
Calc ma_calculette = new Calc();
int quotient = ma_calculette.diviser(10,2);
Assert.assertEquals(5, quotient);
}
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
29
… Puis le code
Les anciens tests passent... Le nouveau ne
passe pas, on écrit donc le code pour faire
passer le test
public int diviser(int dividende, int diviseur)
{
return dividende / diviseur;
}
Tous les tests passent (nouveau et anciens)
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
30
Et un autre test « erreur »
@Test
public void testDivisionSimple()
{
Calc ma_calculette = new Calc();
int quotient = ma_calculette.diviser(10,2);
Assert.assertEquals(5, quotient);
}
@Test(expected=ArithmeticException.class)
public void testDivisionParZero()
{
Calc ma_calculette = new Calc();
int quotient = ma_calculette.diviser(11,0);
}
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
31
Enfin...
On vérifie que tous les tests passent
Les test fournissent le « how to » de la méthode
Ils ont permis au passage de concevoir la
méthode
Et permettent de s'assurer que la méthode se
comporte comme on le souhaite
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
32
La barre verte, toujours !
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
33
Coder et livrer
4/4
Intégration continue, plusieurs fois par jour
Nous testons et intégrons très souvent, le build dure 10
minutes maximum. (Ten Minutes Building)
Le code-source et les tests sont des documents obligatoires
Le code est partagé entre tous
Gestion de configuration : une seule version officielle (qui évolue
en permanence)
Déploiement au plus tôt :
chaque nuit... chaque deux semaines ou au maximum chaque
trimestre
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
34
Intégration continue
Plusieurs « niveaux »
Chaque nuit
À la demande
Systématiquement (chaque « commit ») : 10' Building
Ressources
Serveur dédié
Gestion type Hudson
Associer
Gestion de conf
Intégration continue
et Tests
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
35
Agenda
XP, qu'es aco ?
Valeurs, principes
Pratiques
XP, au cœur de l'Agile
Planification
Équipe
Développement
L'Intention des Anarchistes Organisationnels
XP (Agile) : le projet social
« Insurrection des consciences »
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
36
XP, au cœur de l'Agile
Manifeste agile (2001)
Valeurs
Principes
Histoire du manifeste
Les Anarchistes organisationnels
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
37
Dilbert ? Non, merci.
« … l'Extreme Programming a connu
un développement dans son utilisation et son intérêt,
non pas grâce à la programmation en binôme
ou au refactoring, mais parce que,
pris dans leur ensemble, ses pratiques définissent
une communauté de développeurs
libérée des poids des sociétés "Dilbertesques". »
Histoire du Manifeste agile, Jim Highsmith
Traduction de Fabrice Aimetti
http://www.fabrice-aimetti.fr
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
38
Vous avez aimé Peter ?
Vous adorerez Dilbert !
Le principe de Dilbert est une version aggravée
du principe de Peter.
Dans le livre Le Principe de Dilbert,
Scott Adams rappelle le principe de Peter :
Tout employé tend à s'élever
à son niveau d'incompétence.
Le nouveau principe, principe de Dilbert, s'énonce ainsi :
« Les gens les moins compétents
sont systématiquement affectés
aux postes où ils risquent
de causer le moins de dégâts :
ceux de managers. »
Source : wikipedia
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
39
l'Agilité au bulldozer
Lundi, vous passez à l'agilité.
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
40
Agile, Lean : attention danger ?
Améliorer la productivité, Agile ou Lean sont
faits pour ça !
Finance
Adaptateur
« Notre premier objectif est de livrer au plus tôt et
régulièrement... » 1er principe agile
« Livrer rapidement » principe Lean
…
Agile
Donc Agile ou Lean sont une méthode pour faire
plus de profit !
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
41
Ne nous trompons pas d'objectif
Changer le système
plus que
condamner des personnes.
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
42
Agile, Lean : à la source
2 piliers
Économie : la
sobriété heureuse
« l'activité humaine
qui consiste en la
production, la
distribution, l'échange
et la consommation
de biens et de
services. »
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
Humanisme
« Respecter les
personnes »
principe Lean
« Rythme viable »
« auto-organisation »
« auto-amélioration »
principes agiles
43
Agile : l'intention
« À la base, je crois que les Méthodologistes Agiles
sont vraiment des "sentimentaux" en parlant de livrer
les bons produits aux clients et en travaillant
dans un environnement qui fait plus que parler
des "gens comme nos ressources
les plus importantes"
mais en réalité agit comme si les gens
étaient les plus importants »
Source : histoire du Manifeste
Les Anarchistes organisationnels
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
44
Anarchie ?
« L'anarchie, c'est l'ordre
sans le pouvoir. »
Léo Ferré
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
45
Une métaphore : solutions locales...
De la grosse industrie agricole
"Ceux qui sont en villeGuerre
peuvent parfaitement
se solidariser avec ceux qui
sont à la campagne,
→ Chimie
et ainsi on fait un pont
dessus
→ par
Agriculture
industrielle
toute la sphère affairiste.
→ Quels résultats ?
Et l'autonomie, c'est Aux
le maître
AMAPsmot aujourd'hui."
http://terre-humanisme.org
Rôle du trésorier dans une
AMAP ?
Pierre Rabhi
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
46
AMAP et Plateau Projet agile
AMAP
Plateau agile
Des Consommateurs
Un Product Owner
Un Paysan
Des Développeurs
Collaborent
Production
Ramasser les
légumes
Responsabilités
simples
Agile Tour 2010 : XP, le projet social
Collaborent
Production
Tester
Responsabilités
simples
Le Product Owner
est solidaire des Développeurs
http://etre-agile.com
47
Pré-requis...
Motivation
Changer ses habitudes
Question de valeurs et de prise de conscience
« j'achète plus que des légumes »
Faire confiance
Capacité à jouer son rôle
Si le Paysan ne sait pas communiquer ?
Si les Consommateurs ne voulaient plus payer ?
Le bon « staffing » : adéquation du nombre
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
48
XP : l'Humanisme en projet social
« Le propos d'XP est le changement social » K. Beck
Revaloriser le métier du développement
… Et des Utilisateurs !
Prendre en compte la dimension humaine dans les activités
liées au logiciel
Exprimer les besoins
Développer
Avoir le droit de bien faire
S'accomplir dans son travail - Être fier de son travail
Pouvoir influencer la façon dont on travaille
Être responsable, auto-géré
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
49
Autrement dit...
D'un monde, piloté par l'argent,
où l'on travaille pour « gagner »
sa vie...
… à un monde où l'on participe
à l'inter-dépendance dans un rôle de
- Développeur
- Utilisateur
l'argent étant un moyen.
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
50
« Insurrection des consciences »
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
51
Utopie ?
« L'utopie est simplement
ce qui n'a pas encore
été essayé ! »
Théodore Monod
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
52
Quelques pistes
S'informer, parler, échanger
Métaphores
Solutions locales...
Je, Équipe, projet, organisation
Les Utilisateurs solidaires des Développeurs
AMAP
Managez votre manager
Plan Do Check Act, Go & See
Se forger sa propre opinion, concrètement
Être so-li-dai-re : asso, syndicat
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
53
« Imagine
an Agile
World »
Localement
agile
!
Agile Tour 2010 - Toulouse
.
Agile Tour 2010 : XP, le projet social
http://etre-agile.com
54