A compter du 16 mars 2009, accédez directement au site Être Agile :
http://etreagile.thierrycros.net
qui est maintenant à la fois la partie "articles" et la partie blog.
Agile, Scrum, Extreme Programming... Modélisation.
Maintenant ici :
Être Agile.
A compter du 16 mars 2009, accédez directement au site Être Agile :
http://etreagile.thierrycros.net
qui est maintenant à la fois la partie "articles" et la partie blog.
Le quatrième principe XP est celui de l'autosimilarité. Ce principe est celui de la copie de ce qui marche, à différents niveaux, dans différentes situations.
Kent Beck exprime l'autosimilarité dans XP :
Une carte bristol ou un post-it sont utilisés pour rédiger les histoires, de la même façon, ces otils peuvent être réutilisés dans d'autres situations : tests-client, activités de l'équipe...
D'une certaine manière, le codage d'objets métier est une autosimilarité : les relations qui existent vraiment entre objets réels du métier se retrouvent dans le codage.
Les fractales sont un exemple d'autosimilarité.
Scrum de scrum est aussi une autosimilarité.
Dans XP, la notion de "chef de projet" au sens habituel disparait. En effet, l'équipe s'auto-gère et plusieurs pratiques de management, bien plus contraignantes et disciplinées que dans la plupart des projets, sont mises en place, du stand up meeting quotidien aux réunions de planification de releases. Le Coach XP est là pour susciter, déclencher, provoquer, aider... pas pour manager.
Que devient alors le manager ? Il me semble que c'est le rôle habituel de Directeur de Projet qui s'en approche le plus, dans l'ancien monde du développement. Il alloue puis enlève des ressources au "projet".
Il joue un rôle capital de couverture aérienne. Autrement dit, il anticipe des situations qui sont d'ores-et-déjà actées. Par exemple le fait qu'une version est demandée début septembre par le Client et que la moitié de l'équipe a posé ses congés en août.
Ce rôle prend acte de l'auto-gestion de l'équipe, il demande un certain courage au Manager. Le courage de faire confiance et respecter.
Après l'Humanisme - premier des principes de l'Extreme Programming - voici l'économie. Produire un logiciel, c'est produire de la valeur ajoutée. Au delà de l'aspect "retour sur investissement" du produit informatique, la rapidité de cette valeur ajoutée est aussi un aspect d'XP.
Les demandes du "métier" - les exigences - sont des histoires d'utilisation en XP. Chacune de ces histoires est caractérisée par la valeur ajoutée qu'elle apporte.
La science de l'économie - en Extreme Programming - s'appuie sur deux leviers :
Humanisme et science de l'économie sont les deux premiers principes d'XP.
Agile processes promote sustainable development.Une livraison par semaine peut être viable - durable à long terme - pour l'équipe qui développe... et insupportable pour l'équipe d'exploitation ou les Utilisateurs eux-mêmes. Ce principe agile, décliné en pratique Rythme viable est une déclinaison concrète du principe XP d'Humanité.
The sponsors, developers, and users should be able
to maintain a constant pace indefinitely.
Si les processus et outils sont importants, les personnes et leurs échanges le sont encore plus.
... Rather, it is time to come to the team and say "I don't know how I let it get like this, but now I have to do XXX... Humility est the rule of the day for an intervention.Attention toutefois à la définition de l'humilité que l'on se donne dans une équipe. Loin des définitions un brin teintées de culture judéo-chrétienne (voir par exemple le wiktionnaire), l'Humilité est simplement cette qualité qui consiste à dire que nous en saurons demain plus qu'aujourd'hui sur notre boulot, que l'on soit Développeur, Manager ou Product Owner. C'est une force et non une faiblesse. C'est cette capacité à changer notre savoir-faire, à s'améliorer. C'est le pouvoir de changer la vision du produit et de son développement et non pas seulement nos pratiques.
At regular intervals, the team reflects on howAinsi, nous devenons plus naturels, moins formatés par des attitudes convenues. Plus libres, nous devenons meilleurs.
to become more effective, then tunes and adjusts
its behavior accordingly.
At regular intervals, the team reflects on howAjuster les comportements consiste à faire évoluer les process. Une attention particulière est donc portée sur le contenu du plan qualité et son process d'évolution.
to become more effective, then tunes and adjusts
its behavior accordingly.
Simplicity--the art of maximizing the amount
of work not done--is essential.
Il existe une différence entre agile et Extreme Programming. Si XP peut être représenté (XP v1 du moins) par ces trois fameux cercles de Ron. Jeffries, l'Agile se concentre sur le premier, tout comme Scrum d'ailleurs :
Or, XP va beaucoup plus loin, le produit est de la pâte à modeler qui s'adapte, via TDD + Conception émergente + Refactoring, aux besoins avérés. C'est YAGNI au niveau du produit. Et de ce point de vue, le nom software me semble plus réaliste que logiciel, cartésien, c'est à dire inhumain.
Le soft n'est pas le hard. Et malheureusement, bien des cycles de vie de production de soft se calquent sur des cycles de production de hard. Quel dommage !
Dans cet article, paru en septembre 2000 dans "Langages et Systèmes", j'écrivais page 6 "Adopter XP implique des mutations". Il me semble que cela s'applique à l'agilité de façon plus générale.
Que la mise en oeuvre d'une approche agile tienne compte du contexte, de l'environnement, me parait être une nécessité. C'est d'ailleurs un principe d'XP : adaptation locale.
D'un autre côté, être agile correspond à un changement de rôles d'identités des personnes actives du projet. Le Chef de Projet MOA devient par exemple "Client" XP ou Product Owner Scrum. Ce n'est pas le même rôle. Dans cet ordre d'idée, laisser à penser qu'un Chef de Projet MOE se transforme naturellement en ScrumMaster ou Coach agile est à mon sens démagogique. Un peu comme un bon technicien ou ingénieur qui deviendrait naturellement bon manager... Ou un bon mathématicien qui deviendrait bon prof de mathématiques. D'autant plus que cela ne facilite pas la prise de conscience de la différence des rôles.
Cette différence de rôles, de pratiques, de responsabilités... est due à un autre changement, encore plus profond : le projet lui-même change, dans le cadre d'une transition vers l'Agile. Pour être clair, le point focal n'est pas le projet, plutôt le produit. Habituellement, nous avons deux phases macro pour un produit :
Dans une approche agile, centrée sur le système et les livraisons fréquentes, le schéma est :
Si l'Agile s'adapte au contexte, ce contexte - et les personnes qui le composent - s'adaptent à l'Agile. Il s'agit de "virer sa cutie" : de CP MOA on devient Product Owner, de Développeur on devient Extreme Developpeur, etc.
Un lien vers un billet posté sur le site de l'asso SIGMAT : Agile... ou pas ?
Que signifie "être agile" ? Comment juger de la pertinence, de l'efficacité, de l'agilité si elle n'est pas véritablement déployée ?
L'agilité consiste en un changement de vision, de perception de ce qu'est un logiciel, de ce qu'est un "projet" de développement, de ce qu'est notre rôle dans ce "projet". Cela ne se fait pas simplement en le décretant ! D'où l'importance de bien démarrer, de bien comprendre les enjeux, les changements et la conduite de ces changements.
J'aurai le plaisir de participer à cette soirée, organisée par ViaXoft le 17 mars à partir de 18h00. Toutes les infos sur le blog "Esprit agile".
Ce sera une bonne occasion de présenter l'Extreme Programming, Claude Aubry présentera Scrum. Ces deux méthodes « phares » se consolident mutuellement : en 1996, Scrum apparaît avec une idée-force : « Un processus de développement de systèmes est imprévisible ». De fait, Scrum est alors un cycle itératif incrémental « court » : un mois. C'est tout Scrum.
L'Extreme Programming apparaît en 1999, via l'ouvrage phare de Kent Beck : Extreme Programming Explained. Si XP s'inspire de Scrum (itératif court), cette nouvelle approche est un véritable système, une constitution :
- Rôles, Droits de chacun
- Valeurs (Communication, Feedback, Simplicité, Courage, Respect) et Principes (adaptation locale, assumer la simplicité, voyager léger...)
- Pratiques, qui se déclinent en :
- Planification (Equipe complète, User stories, Tests-Client...)
- Développement collectif (Rythme durable, intégration continue, métaphore...)
- Fabrication du système (TDD, refactoring, conception émergente).
Scrum s'inspire alors de XP, une nouvelle version apparaît en 2004, qui intègre plusieurs apports.
Aujourd'hui, l'Extreme Programming offre cette palette de pratiques, pour la plupart indispensables à une véritable mise en oeuvre "agile" : tests-client, intégration continue...
Un article du site consacré à la Conception objet avec UML .
Un programme « objet » est constitué d'objets qui communiquent. Chacun assume une certaine responsabilité dans ces échanges. C'est cela l'objet.
Cet article : Expression de besoins agile du site Être Agile présente un processus d'expression de besoins basé sur les cas d'utilisation de l'UML. Le maintien du modèle (dans un modeleur) les différents rôles est également traité.
Les niveaux de cas d'utilisation, tels que formalisés par A.Cockburn, sont étudiés.


Agile Tour 2008, étape toulousaine : c'est fait. L'amphi archi-plein, les horaires respectés, des préz vraiment intéressantes (que vous pouvez retrouver sur le site du groupe SIGMAT).

- Ne pas confondre cas d'utilisation et fonction (un cas est un ensemble d'interactions)
- Une classe ne représente pas la dynamique du système et ne se réduit pas à des données
- Les collaborations entre objets forment le coeur du système
- L'unité dans UML est le modèle et pas le diagramme
- Organiser un modèle n'est pas une mince affaire...

Bonjour,
je présentais récemment l'Extreme Programming, en utilisant le
diaporama du site. Ce diaporama sera d'ailleurs prochainement
mis à jour pour intégrer l'aspect "Développement Responsable".
La présentation était suivie d'un Xp Game de 3 heures.
http://agile.thierrycros.net/formation/presentationXP/img0.html
J'ai donc repris la notion d'apprentissage qui me semble tout à
fait typique de la mise en oeuvre d'XP.
http://agile.thierrycros.net/formation/presentationXP/img21.html
On retrouve cet apprentissage concrètement dans le cadre d'un XP
Game, ce "jeu" montre bien la courbe d'apprentissage du
réalisateur en termes d'estimation, du client, en termes
d'optimisation de sa valeur ajoutée, en tenant compte de
"yesterday weather" autrement dit de ce qui s'est effectivement
passé lors de l'itération précédente.
Un autre atout de l'XP Game réside dans l'apprentissage du
travail collaboratif. par exemple, j'entendais certains, lors du
jeu, dire "il ne faut pas dire que l'on n'est pas d'accord".
il est possible de dire "je ne suis pas d'accord", simplement
cela se situe dans un attitude assertive et non agressive.
Je suis amené, dans le cadre de ma mission en cours, à présenter
l'avancement du projet à un panel de managers.
Certains aspects du projet sont préoccupants, dans les deux sens
du terme :
- étymologique : je préfère m'en occuper "en avance de phase"
- tout simplement "problématiques".
Habituellement, je communiquai ces aspects sous forme de
"risques", en précisant bien que certaines stratégies de gestion
de projet sont très prophylactiques (voir en particulier :
http://agile.thierrycros.net/docs/agileRisques.pdf )
Or, le terme "risque" est souvent perçu négativement : il y a
des risques donc "ça va mal" alors qu'en fait, il s'agit bien au
contraire d'être proactif, dans une véritable gestion des
risques.
J'utilise aussi l'expression point de vigilance qui offre une
connotation plus positive : une certaine configuration du projet
mérite notre vigilance. Notez que nous parlons de la même chose
: la gestion d'un risque passe par la mise en place d'une
surveillance, d'une vigilance face aux causes du risque et
également par la mise en place d'actions de diminution du
risque.
Je relatai cet exemple simplement pour pointer du doigt
l'importance de notre langage, de notre terminologie dans la
sphère professionnelle. Sans être naïf, inconséquent, utiliser
un terme plus positif ou tout simplement neutre est très
important car il donne une couleur plus efficace aux échanges,
aux réunions.
Autrement dit, le même sujet est traité, dans une ambiance
plus confortable et positive, donc pertinente.
Happy Modeling & Extreme Programming.




Points de difficulté
Bilan
Notre vie est gaspillée par les détails,
simplifiez, simplifiez, simplifiez!
Je vous dis, ayez deux ou trois affaires
et pas cent ou mille.
Henry David Thoreau

La ressource primordiale à utiliser dans la relation avec soi-même est la bienveillance.
Francis Delval

Je présente dans modèle SCOPE ma façon de mettre en oeuvre le modèle SCORE dans une équipe. Concrètement, il s'agit simplement de guider une réunion de travail dont le but est d'éclaircir puis améliorer une situation jugée inconfortable.
L'environnement, les invités à la réunion
Une salle de réunion, un tableau, une table de réunion. Les invités sont directement concernés par la situation, tous les membres d'une équipe ne pouvant être présents, un délégué spécialement adoubé pour cette réunion fut envoyé.
Déroulement de la session
Je (en tant qu'animateur de la réunion) présente SCOPE/M et les cartes support. Un embryon de diagramme d'idées est dessiné au tableau ; au centre, dans un cercle, le libéllé de la problématique et une ligne courbée pour chacune des 5 positions de base : S C O P E.
Il s'agit ensuite de passer par les 5 + 1 postures. La confusion sur la nature des éléments est assez fréquente, est-ce un symptôme, une cause... attention à rester cohérent, tout simplement. Autre point, dégager un plan d'action fut assez laborieux. Il s'agit d'être vigilant sur la qualité des actions décrites, ne pas rester dans les voeux pieux et déclarations de bonnes intentions. Les actions sont concrètes : l'action, qui en est le responsable, quelle est la date d'échéance a minima.
Améliorations à noter
- Passer 2 fois si possible sur les 6 postures : une première fois pour dégrossir, une position meta, puis reboucler sur les différents axes
- Si possible prendre une photo du tableau pour l'utiliser dans le compte-rendu
- Considérer cette réunion comme "exceptionnelle" en termes d'attitude, d'importance, bref, ce n'est pas une réunion d'avancement classique, c'est un peu comme si cette réunion se déroulait au Louvre (photo www.folp.free.fr).


Après Londres, Bruxelles, Rotterdam, Karslruhe, la conférence "XP Day" a désormais sa version française. XP Day France s'adresse aux professionnels du logiciel, quel que soit leur niveau de connaissance de l'Extreme Programming.Je ne pourrai pas y être et c'est bien dommage, les premiers XP Day en France, cela fait bien plaisir, il y a bien loin depuis la création de l'asso XP France en 2000...
Thierry Gabriel Cros
Calendrier
17 mars : Conférence à Marseille
27 mars : SIGMAT à Toulouse
Mai 2009 : XpDays à Paris