|

Écrivez
à AILES ! |

Retour
vers le dossier
Chef de projet
|

Illustrations
|
|
|
Coach

Laurent Bossavit
s'eXPrime
[LBossavit],
[XPLB]
|
Et il a des choses à dire, Laurent,
plein de choses.
Il en a écrit une grande partie dans
[publicité
mode ON]
cette eX-cel-lente Publication
[XPLB]
que je ne peux que vous recommander vivement (non, je n'ai pas
d'intéressement... hélas... snif!)
[publicité
mode OFF],
mais il a aussi élaboré des réfleXions
Profondes sur de vastes sujets :
- le métier d'informaticien depuis ces 30 dernières
années;
- la nature humaniste du processus XP;
- et enfin la conduite de projet.
Et en plus j'arrête les jeuX de
mots Pourris avec des X et des P dedans,
promis.
Mes "questions" sont en italique rouge.
Les renseignements essentiels de cet
entretien sont en bleu.
L'entretien date du 29 juin 2002, à la
terrasse d'un petit café parisien... [c'était
l'après-midi... y faisait pas très
bô, mais au moins il faisait chaud :) voilà, voilà... ] |
Partie I : halte au cargo
!
Partie II : XP, un
processus humain pour une qualité humaine
Partie III :
les projets en SSII et XP... problèmes
 |
En gros, quel est votre
parcours ?
En fait, je viens du monde des start-up avec son
cortège de "projet commandos".
Mais avant ce parcours professionnel, j'ai eu
une expérience pré-professionnelle. En 1989, j'ai programmé
pour un certain Bertrand
Meyer, celui avec des notions claires et
précises sur la programmation orientée-objet, claire,
raisonnée, s'appuyant sur un paradigme
complet...
Et puis après, j'ai débuté
professionnellement en... C! Ou en assembleur, ou en Pascal.
Et les ennuis ont commencé. |
Heu... quels
ennuis ?
Vu mon parcours (start-up), j'ai été
soumis a de multiples contrastes forts entre ma toute première
expérience (la programmation objet rigoureuse de Meyer) et :
- des langages de plus bas niveau (C, assembleur, ...);
- des rythmes de travail insensés et peu maîtrisés ;
- des habitudes de travail en solo (surtout lorsque je bossais
pour une petite start-up californienne qui comptait 2 personnes,
moi et le fondateur, chacun séparé par un océan).
Tous ces contrastes participeront à pousser
plus loin ma découverte d'XP, mais avant il y a eu le culte
du cargo.
Le culte du cargo ???
Dans votre site, vous avez un ingénieur
de 30 ans qui affirme que cela fait 30 ans que l'on fait la
même chose. Il parle des domaines fonctionnels, du métier
(banque, assurance) dont l'activité demeure constante sur 30
ans, même si l'informatique qui soutient ces activités est en
constante évolution.
C'est bien.
Mais le drame, c'est la façon dont nous
informaticiens faisons notre métier. Certes les technologies
évoluent mais nous nous y prenons toujours de la même façon,
comme par une sorte de vénération aveugle à un culte du cargo
: on analyse (au sens "expression des besoins"), on
rédige un cahier
des charges, on passe à la conception
technique et au codage...
avant de tenter désespérément de tester
le biniou... si on a le temps. Évidemment, les délais sont
très fréquemment dépassés. Bref, aucune vraie innovation
dans notre savoir-faire...
Alors, c'est quoi, ce culte ?
Le culte du cargo fait référence à
certaines tribus polynésiennes qui, durant la seconde guerre
mondiale, voyaient les blancs (américains) construire des
pistes d'atterrissage et des tours de contrôle. Une fois ces
installations construites, ... magie : des avions-cargo atterrissaient
avec vivres et divers richesses. Ces tribus se sont donc
logiquement mises à construire des pistes d'atterrissage et des
tours de contrôle factices en bois... en espérant
bénéficier de la venue des mêmes avions !
Jusque ici, cela prête à sourire. Mais là
où l'on ne rigole plus du tout, c'est lorsque l'on réalise que
ces tribus, voyant bien l'échec de leurs démarches, s'en sont
bien vite retourné à leur mode vie initial.
Les informaticiens ont formalisé en 1970 une
"méthodologie" rigide connue plus tard sous le nom de
Waterfall,
ou "développement en cascade" (d'abord l'analyse, puis
la conception, puis le développement,
puis les tests...). Et depuis 30 ans, ils ont le plus
grand mal à vraiment changer de mode de fonctionnement !
Ce Waterfall fait référence à
l'article du professeur Royce
Winston, non ?
Non, il fait référence à l'image que les
informaticiens se sont faite de cet article. Royce décrit un
processus beaucoup plus orienté itératif,
mais il illustre aussi son process de références liées au
monde industriel du hardware dont il est issu. Ainsi, il insiste
sur l'importance de la documentation qu'il estime devoir être
10 fois plus importante pour un software que pour un hardware
(soit 240 pages de documentations par millions de $).
Il prévoit déjà l'existence des prototypes
et du prototypage. Il insiste aussi sur la nécessité
d'impliquer le client ! alors que, justement, le Waterfall est
souvent utilisé pour ne pas impliquer le client, en lui
proposant une simple façade de milestones au sein d'un
processus "bien défini". [c'est
le principe de la boite noire, par opposition à une boite
blanche d'un modèle cybernétique à la XP, évoqué plus
bas]
Et surtout, il insiste sur
l'importance à donner aux tests, pour lesquels il faut prévoir
le budget ou les ressources les plus importantes, car il s'agit
d'un "goulot d'étranglement" très probable.
Le problème vient de l'origine et des
références industrielles qui sous-tendent la démarche de
Royce : dans l'industrie, le feedback itératif intervient peu
en cours de production et l'on est tenté de poursuivre
l'analogie hardware vers software en raisonnant en terme de
"phases industrielles" (conception puis
développement puis tests...) bien trop rigides,
passant à côté de l'apport majeur de l'article de Royce. Il
dénonce en effet un Waterfall "pur", qui serait (je cite) "risqué, et voué à l'échec" en précisant que sans prototypage, on risque d'avoir un retour en arrière
brutal, de la phase de test à celle de la conception voire d'expression des besoins.
Quelle est
la conséquence d'une façon de travailler "à la
Waterfall" depuis 30 ans ?
Elle est fondamentale et constitue une des
origines de XP :
Personne n'est
content.
- Le client n'est pas content parce qu'il n'a
pas ce qu'il veut dans les temps et souvent ce qu'il souhaite ne
correspond plus à son souhait d'origine ! [Cela
rejoint en effet la Loi n°1
des grands projets informatiques...
ou encore les remarques du slide
n° 12 de la présentation
"Prestataire en SSII"]
- le management du projet (la société, le
chef de projet, les commerciaux qui ont vendu le projet) ne
sont pas contents, car leurs objectifs ne sont pas atteints ;
- les prestataires informaticiens ne sont pas
contents, car ils détestent la façon dont se pratique leur
métier. Or le drame, c'est qu'ils sont venus à ce métier, et y
restent... par passion ! (cf. Nature
et objet d'une organisation et
Informaticien
et Français ? - Verticalement - Dur!).
Évidemment, les 2 sentiments (passion
et mécontentement) entrent en conflit et se créent leurs
propres problèmes... ce qui, par analogie, illustre la fameuse
citation qui affirme que "l'informatique a besoin de plus
en plus de puissance de calcul pour résoudre les problèmes
qu'elle a elle-même contribué à créer. [Cela
rejoint aussi la conclusion ironique de notre ingénieur
de 30 ans qui rappelle que ce
métier contribue à sa propre continuation en se créant
toujours plus de complexité ! Autre exemple de projet
"trop complexifié" avec cet ingénieur.] |
Partie I
: halte au cargo !
Partie II : XP, un processus humain pour une
qualité humaine
Partie III :
les projets en SSII et XP... problèmes
Alors, maintenant que
l'on a vu ce qui a pu te pousser vers XP (travail en solo,
paradigme de bas niveau, process à la Waterfall, ...), sur quoi
se base XP ?
Avant tout, XP
se base sur l'humain. A l'inverse de ce qui vient
d'être décrit, tout le monde doit être content.
En particulier, le prestataire informaticien
doit être fier de ce qu'il fait.
Pour arriver à ce - petit - miracle, XP
propose un processus piloté par "l'analyse",
c'est-à-dire par l'examen du problème et l'expression des
besoins du client .
Plus simplement, est jugé "allant dans
la bonne direction" tout ce qui satisfait le client...
simple, non ?
Il s'agit donc de faire enfin du travail de
qualité ! |
 |
Heu... mais
justement, la "qualité", c'est quoi ?
La réponse facile serait : "la
qualité, c'est la conformité aux exigences". Celui
qui affirmerait cela serait l'équivalent moderne d'un Ponce
Pilate : il se laverait les mains des vrais enjeux de la
qualité. C'est évident : on ne peut parler d'exigence sans se
poser la question : "les exigences de qui ???"
Si l'on part sur une définition plus
humaniste de la qualité, on obtient naturellement : "ce
qui est apprécié par une personne", mais cela ne suffit
toujours pas : quelle est cette personne, quand et comment se
manifeste son appréciation ???
Pour répondre aux critères de qualité, il
faut donc tester au près du client :
- si les résultats obtenus sont satisfaisant ,
- ce que l'on veut définir ou redéfinir comme résultat à
atteindre.
Il faut également ce demander, une fois ces
"intentions" précisées, si l'on sait comment s'y
diriger pour satisfaire à ces intentions.
Et c'est là la subtilité de la qualité
version XP : on ne se rend pas vers un
objectif fixe, on se dirige vers un ou plusieurs buts qui
forment la "zone de satisfaction du client",
zone sans cesse raffinée avec lui (le client). [on
retrouve une définition plus affinée de la qualité lorsque
l'on aborde plus bas dans l'entretien l'aspect projet.
Rq : Colin LORRAIN, un jeune développeur, insiste également
sur l'implication du client
dans son témoignage.
Laurent inclut la notion de qualité dans la définition
d'un Bug]
Une zone ??? Mais pourquoi ne pas
définir simplement un objectif précis ?
Parce que la satisfaction du client dépend
de critères multiples, définissant chacune une
"dimension". On en connaît, les plus classiques de
ces dimensions : le coût et les délais. Mais il y en a plein
d'autres : la qualité de service (performance, temps
d'indisponibilité minimal, etc...). Pour réussir à définir
une solution unique qui répond du premier coup à tout ces
critères revient à vouloir définir un point et un chemin
précis dans un univers (ou hypercube) à n-dimension : c'est
vachement compliqué. Il est plus simple de se mettre d'accord
sur une "zone" générale de ce même hypercube (dont
chacune des dimensions représente un axe binaire de critère de
satisfaction client), et de viser cette zone en se définissant
un "vecteur" dont on raffinera régulièrement la
direction.
XP propose donc, pour mettre en oeuvre une
telle qualité, de communiquer avec le client, avoir le courage
de prendre une direction générale pour aller simplement vers
cette zone et vérifier régulièrement auprès du client si
l'on va toujours dans le sens qu'il souhaite.
De cette dernière phrase découlent les 4
valeurs fondamentales d'XP : la communication, le courage, la
simplicité et le feedback.
Ce dernier terme - feedback - joue un rôle
important dans la définition de la qualité selon XP.
Feedback et qualité ?
Oui, la qualité revient donc à placer en
objectif prioritaire le fait que quelqu'un apprécie son
travail. Cette appréciation est mise dans un mécanisme de
feedback, sachant que le contenu même du travail reste libre :
on fait ce que l'on veut pourvu que l'on ait un retour régulier
et une appréciation positive. Si l'appréciation n'est pas
positive, il ne faut pas avoir peur du changement. "Embrace
change", comme ils disent.
Plus simplement, on brise le mythe de
conception qui définirait la solution atteignable que
via un "process balistique" (on vise, on tire... et on
espère atteindre l'objectif initialement visé!) : XP
voit la qualité comme un process de pilotage "à tête chercheuse".
Mais pourquoi ne pas définir la
solution lors de la conception ?
On rejoint la difficulté de définir un
point dans un espace de contraintes à n dimension. C'est
tellement compliqué que cela rappelle la petite nouvelle de
Jorge Luis Borges publiée en 1941 et décrivant la mise à
disposition de toute la connaissance humaine sous la forme d'une
immense librairie sphérique aux chambres hexagonales. La
complexité d'un tel classement serait énorme (et c'est
un euphémisme).
 cf.
illustrations |
[On trouvera dans la page des
illustrations
une "image fictive" de cette bibliothèque ainsi
que la description de son agencement qui devrait, en
théorie, permettre de localiser dans cet espace toute
connaissance humaine donnée jamais référencée...]
|
A la place, il faut mettre en place une
architecture qui, à partir de l'espace de conception
initial va le partitionner de manière binaire en fonction des
contraintes.
 cf.
illustrations |
[On trouvera dans la page des
illustrations
un autre exemple de "partitionnement", issu du travail graphique
(et architectural, justement!) de l'artiste Daniel Buren]
|
Les contraintes caractérisent l'architecture
choisie et sont arbitraires, mais elles permettent de redéfinir
le problème sous un angle qui permet d'obtenir facilement un
retour du client : s'il a approuvé les différentes contraintes
mises en lumière par l'architecture, il n'aura aucun mal à
juger, pour un contrainte donnée, si elle est respectée ou non,
à condition qu'il tienne toujours compte du niveau de service
attendu. [exact, pour une contrainte
binaire comme la "performance", un consultant me
faisait remarquer que cette performance brute ne représente
rien si elle n'est pas associé à un niveau de service. Ainsi
prenait-il comme exemple la restauration. Manger à un
restaurant prend du temps alors que manger chez soi est beaucoup
plus rapide... mais pas toujours avec la même qualité ni les
mêmes services - il faut mettre la table, faire la vaisselle,
etc... - !]
Alors, si XP n'apporte pas de
"réponse", qu'apporte-t-elle ?
Mais des rôles, bien sûr.
Et parmi les plus évidents de ces rôles, on
trouve celui qui doit être content du résultat, et celui qui
doit faire le travail. Mais encore une fois, ce travail ne doit
pas être vide de sens, et doit apporter une légitime fierté,
sinon on retombe dans le syndrome du "Personne n'est
content" exposé plus haut.
Cette notion de feedback est donc
capitale ?
Oui et ce n'est pas nouveau. Cela rejoint le
modèle cybernétique, déjà présent dans de nombreux
domaines.

cf. illustrations
|
[On trouvera dans la page des
illustrations
quelques considérations sur l'origine
de la cybernétique, mais aussi sa place dans le domaine
informatique.
En bonus, pour tous nos fans de Star Trek (TM),
une petite image des sympathiques borg - vus dans le premier
épisode de StarTrek Deep Space 9, puis StarTrek Voyager]
|
Dans un modèle cybernétique, on passe du
mode "boite noire" (si facile à mettre en place dans
un processus de type Waterfall, [comme
évoqué plus haut])
à une boite blanche, où tout le monde est impliqué, a une
meilleure visibilité et une réelle influence sur le
déroulement du processus.
Ah okok... heu... et RUP alors ???
Une première réponse, un peu cynique,
serait de considérer XP comme une instance du process de
Rational (RUP = Rational Unified Process). C'est cynique parce
que cela sous-entend que RUP peut, de par sa taille énorme et
ses capacités "infinies" de configuration et
d'adaptation, instancier à peu près n'importe quel autre
process ! Rational
lui-même parle de dX (retournez le symbole graphique "Xp"
à l'envers... et vous obtenez "dX" ! humour...),
comme un process minimal du RUP.
Mais tout cela cache mal les désaccords
fondamentaux qui séparent ces 2 processus (même s'ils sont
tout deux itératifs)
:
- la dimension humaine, présente dans XP, est difficile à
retrouver dans les dizaines "d'artefact" du RUP;
- la démarche d'XP de "maîtrise du chaos" s'oppose
fortement à la culture de "process répétable",
"maîtrisable", sous forme de recettes et "best
practices".
XP voit le projet comme une culture, un
phénomène social qui, de par sa nature même n'est pas
répétable !
Partie I
: halte au cargo !
Partie II : XP,
un processus humain pour une qualité humaine
Partie III : les projets en SSII
et XP... problèmes

|
Les projets,
justement parlons-en. "XP" dans la vraie vie, soit dans
votre cas, dans l'univers des régies et forfaits des SSII,
est-ce "ça marche" ?
Les problèmes ne viennent pas de XP en
soi, mais bien de la culture "projet" des SSII
(pas
toutes, mais beaucoup!). Elles ont tendance à
tout accepter sans en valider correctement les besoins [cf.
blagues sur la genèse d'un projet
et sur ses planifications].
Et souvent, la SSII est contactée par un client pour faire
un projet pour un autre client ! Du coup :
- personne ne voulait vraiment faire ce projet ;
- il est réalisé par des gens que cela n'intéresse pas
vraiment ;
- il est plein de promesses illusoires de récompense ;
- il est rarement vendu au client d'origine, donc il faut
le refourguer à tout prix et à n'importe qui. |
Mmmm... oui, mais quels sont les problèmes, alors ?
Le premier problème concerne l'écoute du
client. Et cela est nuisible pour un process qui se veut
justement asservi au besoin du client. On se focalise trop sur
les résultats à atteindre en oubliant l'intérêt technique et le travail de qualité que doit produire un projet
géré selon XP.
Comme le client est rarement le client final,
il se créé rapidement un problème de désir qui
est pourtant le moteur du feedback XP. Il ne peut y avoir de
retour de qualité que si les 2 partenaires ont envie. Envie, pour
le prestataire, d'écouter son client. Envie, pour le client, de
donner son point de vue sur l'évolution d'un produit qui
l'intéresse. Cela rejoint la définition de la qualité
évoquée précédemment : encore une fois, il ne s'agit
de satisfaire les besoins du client, mais bien de répondre à
ses désirs ! Donc, si cela est bien fait, ... d'y laisser un
petit goût de "revenez-y"! A ce sujet, il serait
intéressant de mesurer le taux de fidélité client des SSII,
je suis sûr que cela serait instructif!

cf. illustrations
|
[On trouvera dans la page des
illustrations
l'origine étymologique du mot
satisfaire, afin d'éviter que les désirs du client... ne
se réduisent comme une peau de chagrin ! (d'où l'âne,
puisque le chagrin (du turc çâgri, croupe) est une peau,
celle d'un âne ou d'un mulet, prise sur sa croupe!)]
|
Ce que j'entends souvent et qui me fait bondir :
« si on remplit le
contrat, bien sûr que le client sera content ». C'est faux, bien
entendu. D'abord parce que le client a rarement lu le contrat, ensuite parce que
je suis content quand on me donne ce que je veux
maintenant, pas quand on me refourgue ce que j'ai dit il y a six mois que je voulais
("satisfaction" purement contractuelle) et qui n'est plus ce que je veux...
Enfin, il reste le problème de l'implication
du management de la SSII dans le process XP : il faut briser le
mythe du manager qui "dirige", au sens
"interventionniste" du terme. Les dirigeants doivent
approuver et valider un process et déléguer, sans intervenir
directement.
Pourquoi ? Vous avez un exemple ?
Oui, tout simple : piquer un membre de
l'équipe pour le mettre en urgence sur un autre projet. C'est
typique de la vision très "ressource humaine" qu'ont
les SSII
de leurs collaborateurs. Pour eux, une équipe est
souvent composée d'un senior et d'un junior (pour bénéficier
d'une formation sur le tas). Et en cas d'inter-contrat, on
arrive à toute sorte d'aberration de style "marchand de
viande". [un autre cas très
similaire est signalé par Colin
LORRAIN]
C'est oublier la vision organique
de l'équipe dans un process XP. Priver l'équipe d'un de ses
collaborateur, c'est comme priver un corps humain d'un de ses
membres : ça n'est pas anodin. J'ai constaté cette attitude de
"marchand de viande" même entre forfaits... entendez
par là que tout se fait selon un "prisme" régie,
même pour des forfaits : on fournit de la main d'œuvre sur une
mission donnée, sans que le collaborateur ait vraiment
l'opportunité de s'investir sur un résultat : pour
lui, mission (régie) ou projet
(forfait) devient alors du
pareil au même : il change juste de local, de groupe et de
responsable !
Et pour vous, tout cela (groupe, local,
responsable) ne permet pas de faire un projet ?
Ce n'est pas la même approche ni la même
culture : pour moi, XP doit mettre en place une vraie synergie [non,
cette fois, ce terme n'est pas utilisé pour jeter de la poudre
au yeux ou pour jouer au Business Loto
:) .Pour l'anecdote, on avait organisé un "Bullshit Bingo" au
discours de fin de XP2002. Nos 5 panélistes, dont l'illustre Kent Beck, ont joué sans le savoir...
Par contre on a eu beaucoup de peine à le gagner !]
Une équipe n'est pas
qu'un "groupe" de développeurs, c'est un tout qui vaut
plus que la somme de ses parties. L'illustration la plus
frappante de cette approche reste le "pair
programming", qui n'aurait aucun sens si c'était
uniquement pour produire juste 2 fois plus de travail qu'avec
une seule personne. En plus de la productivité accrue, il y a
échange de connaissance entre les binômes, et en plus chaque
développeur change régulièrement de binôme.
Et tout ça en 40 heures par semaine
???
40 heures, 39 heures, 35 heures, 50 heures...
Peu importe. XP préconise avant tout un "rythme
durable", c.à.d. une durée journalière et
hebdomadaire qui permettent à l'équipe de bien fonctionner.
Chaque semaine, on se réunit pour décider si le rythme de
travail des jours précédents est tenable pour produire un
travail de qualité. Même un "temps de présence
faible" est acceptable, car on part du principe que le
développeur fait le maximum tout le temps, même chez lui.
Pourquoi ? Parce que son intérêt
(apprendre et se maintenir à niveau) rejoint celui de son
employeur (gagner des sous au travers de la réalisation de
projet). Même s'il ne travaille pas directement sur le
projet, il a encore suffisamment d'énergie pour apprendre chez
lui.
Évidemment, ce n'est
pas très bien accepté par le management. Je me souviens
avoir un fois permis à un développeur de rentrer plus
tôt chez lui un vendredi. J'estimais qu'il avait fourni un super
boulot et ne voyais pas l'utilité de le retenir pour une
nouvelle tâche... et je me suis fait remonter les bretelles par
la direction!
Merci beaucoup pour toutes ces
opinions, M. Bossavit.
Rappelons que ce qui précède ne fait qu'effleurer certains
aspects d'XP, "cet ensemble de pratique qui couvre une
grande partie de la réalisation d'un logiciel". Pour en
savoir (beaucoup) plus, vous pouvez utilement vous référer à
[XPLB],
le livre qu'il a co-écrit sur XP avec Jean-Louis Bénard,
Régis Médina et Dominic Williams.
|
|