Adapt what is useful, reject what is useless, and add what is specifically your own.
Carnet de route : Agile France 2014 (3/4)
Suite du compte rendu d’Agile France, après la journée de Jeudi disponible ici et ici.
De bon matin…
De bon matin, ce n’est pas moi. J’arrive à temps pour le café et discuter un peu avec les autres. Mais quand j’arrive, un petit groupe se livre déjà à des exercices de Qi Gong.

Je retrouve les autres dans la salle commune. On discute, Alex Tweet. Business as usual…

Assez plaisanté ! La journée va commencer, place à la keynote !
Coaching Teams Through Change
Rachel Davies nous avait déjà gratifié d’une session il y a peu lors du ScrumDay. Fort heureusement, ce ne fut pas la même. J’ai d’ailleurs préféré cette keynote.
Rachel travail pour Unruly, une société spécialisée dans le « social media advertising ». C’est un domaine où les spécifications changent véritablement tous les jours. L’objectif est ainsi de déployer effectivement tous les jours !

Le début d’un changement
Au début les départements produit et développement étaient deux directions séparées. C’est le départ du directeur produit qui a permit d’enclencher un changement de structure.
Ce changement, c’est l’organisation en équipes de 3 à 5 personnes pour développer le produit. Et pas seulement développer : ces équipes prennent en charge la totalité des activités entourant le développement : l’écriture des user stories, les tests, etc. Ce sont eux qui vont solliciter les différents interlocuteurs (produit, marketing, commercial) quand cela s’avère nécessaire. Pas de product Owner qui est la seule voix du client, l’équipe va parler directement à tous les interlocuteurs ! Parmi ces interlocuteurs, nombre d’entre-eux ne sont accéssibles qu’à distance : l’équipe utilise Google Hangout pour communiquer. La conversation s’engage avec les interlocuteurs pour trouver la plus petite chose utile à construire, ce qui nécessite de prendre en compte tous les point de vue.
Lone rangers et development owners
Tout le développement est réalisé en binômes. Mais les équipes sont constituées d’un nombre impair de personnes ! En fait, par rotation, l’une d’entre-elle est le « lone ranger ». Elles s’occupe de diverse choses dans l’équipe, mais pas du code de production. C’est aussi à cette personne que les intervenants extérieurs à l’équipe s’adressent, afin de ne pas perturber les binômes en train de travailler.
L’équipe a aussi développé l’idée de « owner of the development area » : un développeur plus expert au sein d’un sous-ensemble fonctionnel. C’est lui qui élabore une proposition par rapport à un besoin exprimé.
Les propositions sont traitées en planning meeting. Celui-ci n’est pas un planning meeting classique XP : seule la priorisation des propositions y est traitée, il n’y a pas d’engagement de charge. Ces planning sont donc très courts : ils n’excèdent pas 30 minutes !
Gold card
A l’image de ce que Kniberg décrit pour Spotify, Unruly fait des efforts particuliers par rapport au bien être des équipes. Outre divers évènements sociaux, la société applique la politique du 20% free time inspirée de Google (bien qu’elle disparaisse progressivement de Google, justement). Ici elle s’appelle « gold card day » et sert de sources d’inspiration pour creuser de nouvelles idées.
Ce que j’en ai pensé
Sans être exceptionnelle, cette présentation nous offre l’opportunité d’avoir un retour sur une organisation d’équipe différente de ce que l’on voit aujourd’hui :
- Les itérations s’estompent au profit de la déliverie continue, mais des points de priorités réguliers contrebalancent l’effet « court terme » du flux.
- Pas de « product owner » ici : c’est l’équipe qui fait le lien avec les divers interlocuteurs. Le périmètre de responsabilité de l’équipe s’accroit, mais on évite ainsi l’effet paravent du PO !
Je change mon programme à la dernière minute. Je choisis en 15 secondes d’aller à une présentation résolument technique. Grand bien m’en a pris !
Le mythe du framework agile
Jean-Baptiste Dusseault vient mettre fin à quelques idées reçues concernant ces frameworks qui doivent nous agilifier / faciliter la vie. Au départ de ce « ras le bol » un titre de livre : Agile Web Developement with Rails ! Même co-écrit par l’un des signataires du manifeste agile (et par l’auteur de Rails), ll y a un problème ici. Probablement plusieurs même. Le premier est la taille du livre : près de 500 pages !
Le framework maison
Mais commençons par le commencement. Et le commencement, puisque nous parlons ici de frameworks « full stack », c’est le fameux framework d’entreprise. Un bon point : nous n’avons que trop rencontré ces pantalonnades. Lâchons-nous, ça va faire du bien !

Le but de ces frameworks, c’est d’avoir le « meilleur du moment », tout bien branché ensemble. On met les pantoufles, on débranche le cerveau, et l’on peut tranquillement produire plein d’applications en un tournemain !
Sauf que ça ne se passe pas comme ça. Ces braves frameworks transforment notre vie en enfer !
Citons dans le désordre :
- Prévus pour être simples, ils s’avèrent en fait ultra-compliqués ! Peut-être leur conception et leur réalisation par des « équipes transverses » explique-t-elle quelque chose ?
- Ils sont difficiles à tester et très bugués. Là encore, leur réalisation détachée des projets n’a pas contribué à leur testabilité. Utilisés uniquement par quelques projets de l’entreprise (au mieux) le « durcissement » du framework n’a jamais vraiment eu lieu…
- pas de support : souvent les équipes ayant réalisé le framework sont parties depuis longtemps…
Qu’en est-il des « full stack » reconnus ?
Ici on parle des rails, Play, etc… Ils nous font la même promesse d’accélérer les développement du sol au plafond. En vérité, ils prennent des décisions d’architecture pour nous ! Jean-Baptiste va plus loin : en déléguant les choix d’architecture au framework, on laisse celui-ci nous utiliser !
Nous n’utilisons pas les frameworks “full stack” : ce sont eux qui nous utilisent.
Ce biais a des conséquences, on va le voir bientôt.
D’où vient leur succès ? Ils permettent de faire très vite 80% de l’application. Mais on galère sur les 20% restant ! Généralement, la réalisation en suivant le tutorial va vraiment vite.
Hélas, ils encouragent certains comportement. La partie « basse » entité et persistance est plus ou moins câblée. Il n’est pas possible d’y intervenir facilement. Et les entités ressemblent beaucoup aux tables de la base de données (ça rappelle les outils RAD client/serveur). On hérite donc d’un couplage vertical sur la base de données.
En fait, le seul endroit où l’on peut réellement raccrocher du code, c’est le contrôleur ! On l’accroche comme on peut. Et si des comportements communs apparaissent dans le code tartiné sur deux contrôleurs, le seul moyen efficace de le partager est le copié-coller ! Beurk !
Bref nous obtenons :
- Des architectures monolithiques.
- Des frameworks optimisés pour l’écriture de code … mais pas pour sa maintenance !
- Des couplages forts avec la représentation et la base de données.
- De grosses difficultés pour sortir des clous via des « plugins » et autres joyeusetés du genre qui ont de grosses courbes d’apprentissage.
- Une testabilité rarement au rendez-vous.
Mais alors, c’est quoi un framework agile ?
Plutôt que de framework agile, parlons d’architecture agile, et des propriétés qu’elle devrait avoir.
- Elle doit nous permettre de retarder les décisions
- Elle minimise les couplages.
- Elle est facile à changer.Elle est testable (via TDD et ATDD)
Une proposition et des inspirations
Pour Jean-Baptiste Dusseault, une telle architecture c’est :
- Au centre un véritable modèle du domaine d’inspiration DDD, comme les proposent l’architecture hexagonale d’Alistair Cockburn ou la Clean Architecture de Bob Martin. Ce modèle ne dépend de rien et ne connait pas la persistence ni aucun système tiers, mais expose une API métier.
- Une couche « commandes » implémentant les cas d’utilisation du modèle du domaine. Des idées que l’on retrouve dans la Lean Architecture de Jim Coplien.
- Au-dessus un couche d’accès type CQRS dialoguant en asynchrone avec la couche commande et routant différemment les évènements commande (vers la couche commande) des requêtes qui sont adressées directement à la couche d’accès à la base de données.
Bien sûr le postulat de cette architecture, c’est que le métier est au centre des préoccupations. On n’évoque pas non plus l’architecture en micro-services qui me semble pourtant adaptée mais peut-être pas facile à concilier avec une architecture hexagonale…
La présentation de Jean-Baptiste est évidemment en HTML5 et elle est accessible en ligne ici.
Ce que j’en ai pensé
Cette session est une agréable surprise. Si le bashing des « frameworks agile » ne fait que confirmer ce que je pensais, les idées développées sur l’architecture agile me font beaucoup plus réfléchir, pour ne pas dire qu’elles soulèvent mon enthousiasme !
Comment j’ai développé mon muscle de l’amélioration continue en faisant mes courses
Ayant décidé de bouleverser mon programme, je n’ai de nouveau que 2 minutes pour changer mon programme. De nouveau, c’est une bonne pioche avec la session de Cyrille Deruelle !
Tout d’abord : pourquoi faire des exercices d’amélioration ? Pour que cela devienne une habitude, rendre cela naturel. Et Cyrille s’est livré à cet exercice en faisant ses courses du Samedi : c’est drôle et instructif !

Bien sûr tout ça n’a pas très bien marché du premier coup (d’où la nécessité de s’améliorer). Au départ, Cyrille a essayé d’impliquer son épouse (Product Owner des courses) dans la résolution des problèmes qu’il rencontrait. C’est une première leçon :
Les gens se foutent de la manière dont nous résolvons les problèmes.
Au hasard des améliorations, on va trouver :
- « t’as rien oublié » … où comment suivre que l’on a tout acheté ? A l’aide d’une liste de courses et d’un gros feutre noir (le stylo fin ne convient pas).
- Grouper les courses par catégorie : afin d’optimiser le parcours dans le magasin.
- Prendre une photo des rayonnages pour les produits compliqués … afin de permettre à son épouse d’indiquer le produit souhaité. Le choix de la lessive a été vaincu ainsi !
- Gérer les dates limites de consommation en les pré-calculant par rapport aux courses suivantes : afin d’éviter les erreurs pendant les courses.
- Sortir des éléments du process : Les packs d’eau, c’est ingérable ! Alors on ne les sort du processus standard et on fait de temps en temps des ravitaillements en eau (en grande quantité) !
Les conclusions de Cyrille
- Mes problèmes sont mes problèmes : Il n’est pas possible de s’en décharger sur d’autres personnes.
- Il n’y a pas de choses simples : l’amélioration continue est une quête !
- Les actions d’amélioration sont fragiles et difficiles ; c’est une discipline de tous les jours.
- Mesurer l’impact d’un problème, c’est déjà 50% de la résolution
Enfin parfois, les améliorations ne sont pas possible, c’est le CCMCCC : C’est Con Mais C’est Comme Ca !
Grâce aux actions d’amélioration, Cyrille n’a pas seulement rendu son processus de meilleure qualité et plus efficace, il l’a aussi rendu fun !
Ce que j’en ai pensé
Une très bonne session : amusante et instructive. Bravo !
Refactorer du Legacy
Pas besoin de changer de salle pour la session de Johan Martisson. J’ai rencontré Johan lors du ScrumDay 2014. Ou plus exactement, Jean-Laurent de Morlhon me l’avait présenté. D’ailleurs Jean-Laurent était là à cette session résolument intimiste orientée craftmanship, avec des vrais morceaux de « live coding ».

Johan nous parle et nous démontre son approche de la reprise en main du code legacy, à l’aide de la librairie ApprovalTests. Pour résumer l’approche en quelques points :
- On construit un harnais de tests résolument temporaires de manière rustique mais rapide.
- On construit de manière assez brutale des combinaisons de conditions d’entrée pour couvrir une combinatoire de cas couvrant l’espace du problème.
- On exécute une première fois les tests pour constituer la référence, sans se soucier de la justesse des résultats : il s’agit juste du comportement courant de la librairie.
- On vérifie la stabilité du comportement du soft en comparant les résultats par rapport à la référence.
- Au fur et à mesure du refactoring, on construit des tests unitaires définitifs. On peut envisager de se débarrasser définitivement des tests temporaires, de manière progressive.

Ce que j’en ai pensé
Au début de la présentation, je mes suis demandé où Johan essayait de nous emmener et j’ai pris conscience avec un peu de retard de l’efficacité et de la rapidité avec laquelle Johan mettait en place son harnais de tests ! Je dois dire que c’est très convainquant. Une petite vidéo pour vous en convaincre.
J’avais prévu d’être un peu plus long sur le descriptif de ce que Johan nous a montré avec l’outil, mais il le fait mieux que moi sur son blog. Je vous invite donc à le lire.
Pause déjeuner
Par une curieuse coïncidence, c’est de nouveau avec Jean-Luc Lambert que j’ai échangé lors de cette pause. Et nous avons parlé éducation et « génération Y ». Jean-Luc évoque avec enthousiasme le challenge que représente l’enseignement avec cette population.
- Elle ne prend pas pour acquis les propos de l’enseignant. Le cours magistral a une vertu pour le moins limitée.
- Ils sont « multi-tâches ». C’est assez déroutant, mais il faut faire avec !
- Ils sont réceptifs aux jeux et aux exercices libres. Les techniques type « from the back of the room » leur sont bien adapté.
- Ils ont beaucoup d’autonomie et sont entreprenant.
- Ils ne se sentent pas beaucoup d’attache ni de fidélité pour la société pour laquelle ils travaillent.
Voilà pour cette dernière matinée. Je vous retrouve très bientôt pour la dernière partie de cet Agile France 2014 !
Les 3 rôles de Scrum
Irène Doan nous propose cette très belle animation de 5 minutes pour présenter les 3 rôles de Scrum. Je ne peux m’empêcher de penser aux vidéo dont nous gratifie Henrik Kniberg de temps autres : c’est clair, intéressant et concis !
There are a million ways to lose a work day, but not even a single way to get one back.

Ma galerie de photo du Printemps Agile 2014
Je vous avais asséné il y a quelques temps deux posts (ici et ici) sur le Printemps Agile qui s’est déroulé à Caen le 20 Mars. Voici la galerie de toute les photos que j’ai prises durant cette journée. Ce n’est hélas pas la couverture photos dont je suis le plus satisfait, loin s’en faut.
printemps agile 2014, un album sur Flickr.
Note de lecture : Deal with It, par Gavin Davies
Note 6 ; L’attitude avant l’aptitude et l’hygiène de vie du développeur
Ce livre est plutôt un « mini livre » car il ne totalise que 60 pages ! Cet essai se lit donc rapidement, il m’a pris moins de 2 heures. Car non seulement le nombre de pages est compté mais il n’est constitué que d’articles (qui ressemblent plutôt à des blog post qui tiennent tous sur une page, titre compris ! Et encore, on parle là d’une page pas bien grande.
C’est aussi la qualité de cet opuscule car il s’agit là en fait d’une contrainte de taille que s’est donné l’auteur lui-même. Chaque sujet devant alors être exposé avec le maximum d’efficacité. Une sorte de « lean » de l’écriture, si on veut bien.
Intéressons-nous maintenant au contenu. Ce mini-livre est découpé en 5 parties.
La première partie « overall attitude » regroupe 11 essais. L’auteur développe ici les question d’état d’esprit : être courageux, ne pas avoir honte de son ignorance, être curieux et savoir chercher, etc…
La seconde partie « tools, learning et techniques » concerne plus un savoir « tactique pour faire face aux différentes situations. On y parle tests, déploiement et … lire des livres ! Par exemple… Ce sont 13 essais qui forment cette partie
La troisième partie « wisdom for the Long Haul » comporte 7 essais. Il évoque les questions de relations entre personnes et d’hygiène de vie. En fait : comment tenir la distance !
La quatrième partie « communication is key » comporte juste 7 essais. Zut, justement un des essais nous apprend à ne pas utiliser le mot « juste » ! On y évoque la documentation, les emails et les relations entre les managers, mais finalement peu de choses sur les relations entre collègues. Donc c’est un peu décevant.
La cinquième partie « closing advices » ne compte que 5 essais. C’est un peu dans le style « allez en paix ».
L’auteur m’avait prévenu : je ne serais pas d’accord avec tout et ce serait même curieux que je le sois. Cela a bien été le cas, mais j’avoue être en accord avec une grande partie de ses positions. Ce livre s’adresse sans ambiguïté aux développeurs. Et pourtant, l’auteur focalise son propos sur les « savoir être » plutôt que sur les « savoir faire » ! A ce titre, il me rappelle un peu le « pragmatic programmeur » d’Andrew Hunt et Dave Thomas. Rappel justifié, car l’auteur y fait référence vers la fin de son texte.
Au final, il ne s’agit pas d’une lecture indispensable. Elle est juste intéressante : la concision de l’expression de l’auteur et la rapidité avec laquelle on avale le texte sont des plus. Je la classerais en lecture d’agrément en sus de textes plus solides tels que le Pragmatic Programmer suscité, ou encore les Clean Code / Clean Coder de Robert Martin et quelques autres.

Référence complète : Deal with It, attitude for coders – Gavin Davies – Leanpub 2012
I suppose leadership at one time meant muscles; but today it means getting along with people.
Mohandas Karamchand Gandhi
Carnet de route : Agile France 2014 (2/4)
Suite de notre première journée d’Agile France.
On se dirige tout doucement vers l’activité de l’après-midi. Toutefois, nous allons avant cela prendre 10 minutes pour une photo de groupe !

Une formule inédite pour cette première après-midi : elle est entièrement consacrée à un open-space ! Cela rapelle un peu la formule du ScrumDay, elle-même inspirée d’Agile Grenoble. Mais peu importe qui emprunte à qui !
Open-space : ouverture !
Pour cette ouverture, nous nous retrouvons tous dans la grande salle Belvédère.

Ca fait du monde, vous en serez peut-être plus convaincus avec la vue panoramique ?

L’ouverture de cet open-space ressemble d’autant plus à celui du ScrumDay que c’est de nouveau Raphael Pierquin que l’on retrouve aux commandes !

Il n’est pas seul, Lan Levi lui donne la réplique.

Nous avons de la chance en ce Jeudi après-midi : la météo est avec nous ! On pourra se mettre à l’intérieur des salles et dehors. Dans ces conditions, le Chalet de la Porte Jaune est tout simplement l’endroit idéal pour faire un open-space. La place de marché nous permet d’utiliser tous ces lieux.

Qu’est-ce qu’un manager agile ?
J’ai trainé un moment du côté de la session proposée par Alain Buzzacaro sur le manager agile, avec l’envie de confronter mon expérience avec celle des autres, mais aussi d’avoir la perception d’un membre de Codir (ce qui est le cas d’Alain). J’ai vite été déçu par la teneur des échanges. En fait, il m’est apparu qu’une bonne partie de l’assistance n’avait aucune expérience du management. Ca n’empêche pas d’exprimer un avis, visiblement…

Parmi les quelques points relevés (histoire que vous ne pensiez pas que je n’ai rien relevé) :
- L’agilité est un style de management.
- Le manager est en partie un coach pour son équipe.
- Son travail est de faire grandir son équipe. Merci Alain !
- Donner du sens est une dimension importante de son travail.
J’applique la loi des deux pieds et vais voir ailleurs.
L’assertivité
Dommage que je n’ai pu assister depuis le début à la session animée par Mathilde Remy ! Arriver en cours de route m’empêche de bien raccrocher les wagons. Mathilde anime cette session sous forme d’un jeu de rôle.

Doublement dommage, d’ailleurs, car Farid se livre à l’exercice : son calme et son rationalisme sont terriblement efficace. J’en sais quelque chose, je l’avais moi-même recruté dans mon équipe il y a quelques années…
Je sens que vous voulez un nouveau petit panoramique ! Allez, hop !

Ah oui, n’oublions pas non plus le travail des scribers !

Comment amener mon directeur à l’agilité
Cette session est du vécu, un cas réel. Cela m’a semblé intéressant de m’y pencher. Disons, pour diverses raisons…
Au départ, il s’agissait de confronter les expériences, mais finalement nous sommes arrivés à réfléchir autour de ce cas particulier ! Le constat n’apporte pas beaucoup d’espace de manoeuvre :
- Ce manager n’a pas de problème : pourquoi devrait-il changer ? Rien d’étonnant à ce que l’argumentaire ne porte pas.
- Est-ce important que ce manager aille dans ce sens ? Ne peut-on « vivre avec » ? C’est hélas important : cette attitude a un impact notable sur l’équipe : démoralisation, départs…
Je ne suis de toute façon pas très bon à cet exercice. S’il fut un temps lointain où je m’y livrais, j’ai abandonné de puis très, très longtemps l’idée de chercher à convaincre des personnes qui n’ont pas envie de l’être.
En fait aujourd’hui je ne cherche plus à convaincre du tout. Ca ne m’intéresse pas, je n’ai pas une vocation de martyre. Je préfère travailler avec des gens qui ont envie d’avancer dans le même sens que moi, avec qui je pourrais me poser des question, que je pourrais aider.
De nouveau, nous avons été scribés en live avec talent !

Ces fresques valent largement ma prose, je vous laisse en profiter.

Et aussi…

Les accords Toltèque
Depuis le temps que j’en entend parler… Je n’ai pas hésité longtemps à rejoindre le petit groupe se formant autour de Frédéric Dufau-Joël sur ce sujet.
Les accords Toltèque nous viennent du peuple éponyme d’Amérique Centrale. Ces accords sont au nombre de 4 :
- Que votre parole soit impeccable.
- Quoi qu’il arrive, n’en faites pas une affaire personnelle.
- Ne faites pas de suppositions.
- Faites toujours de votre mieux.
Je trahis certainement un peu la chose en disant qu’il s’agit d’une sorte de manifeste de la facilitation … ou même d’une discipline de vie, si j’en crois ce que disent certaines personnes du cercle !

Frédéric anime la discussion autour de deux livres écrits par un Chamane Mexicain, Miguel Ruiz, dont le premier est justement le best seller « les 4 accords Toltèque ».
Autres lieux, autres sujets…
On ne peut être partout à la fois. Ailleurs, il y avait aussi :
La définition du bon coach

ou encore du théatre d’improvisation, avec Vincent et Simon !

Clôture de l’open-space
Nous nous retrouvons une dernière fois en salle Belvédère pour partager nos impressions.

L’intelligence collective, par Thibaud Brière
Thibaud est « philosophe en entreprise » ! Je ne savais même pas que cela existait !
Pourquoi s’intéresser à l’intelligence collective, et surtout : pourquoi les grandes entreprises s’y intéressent-elles ? Parce qu’aujourd’hui, elles veulent concilier l’avantage que leur donne leur taille avec la réactivité des startups ! L’intelligence collective est donc un moyen pour être plus adaptable.
Qu’est-ce que l’intelligence collective ?
C’est une dynamique de groupe s’appuyant sur la capacité à diverger. En ce sens, on entretient la pluralité de point de vue plutôt que la convergence, qui est en fait du mimétisme et finalement une abolition du raisonnement. Le point critique est de passer de l’opinion à la pensée ! Cela signifie bien entendu des techniques de facilitation adaptées.

Pour Thibaud Brière, la pensée, c’est une opinion (au départ) + la confrontation à d’autres opinions.
L’orateur différentie aussi diversité et variété, une nuance que je ne suis pas parvenu à saisir.
Ce que j’en ai pensé
J’ai retenu deux ou trois choses de cette intervention :
- Différencier opinion et pensée.
- Faire fonctionner la divergence (cela me rappelle la keynote de Régis) et valoriser les opinions minoritaires.
- Encourager l’impertinence.
Je reste un peu sur ma faim. Il faut dire que le format choisit favorisait les interruptions, ce qui n’a peut-être pas aidé (toutes interruptions étaient loin d’être pertinentes).
Au sortir de la cette intervention, les avis étaient très partagés sur l’intérêt de du sujet.
Fin de journée
Pas de diner pour moi, la faute à un gros mal de tête. Visiblement, celui-ci fut bien animé, Alex Boutin s’en est chargé en préparant un quizz durant l’open space !
C’est tout pour aujourd’hui. Rendez-vous très bientôt !
The scrum board: dead on arrival
A few years ago I wrote
The longer I teach and coach scrum, the more I become convinced that the physical workflow board is the heart of scrum. Without the workflow board, a team has no center, no focus, no hub.More recent experience has shown me that this heart has no beat. Here’s the problem:…
Les faits sont têtus. Il est plus facile de s’arranger avec les statistiques.
Mark Twain





