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

Documents pareils