lundi 23 novembre 2015

Agile Grenoble 2015 : atelier l'agilité de l'intérieur


Ce jeudi 19 novembre avait lieu Agile Grenoble 2015. Avec Laurent Tardif et quelques autres personnes, nous avons animé toute la journée un atelier "L'agilité de l’intérieur". Voici sur mon retour sur cette expérimentation !

Historique


Le 8 octobre 2015, je vois passer un tweet de Laurent :


Passionné par le développement, le craftman, et l'agilité, je prends tout de suite contact avec Laurent. Il m'en dit un peu plus, le projet est effectivement un peu fou, mais je suis très motivé par cette expérience, alors je m'implique immédiatement, nous n'avons que quelques semaines pour préparer l'atelier !

L'idée


L'idée est simple : pendant Agile Grenoble, tout au long de la journée, développer un projet en mode Agile/Scrum pour permettre aux participants de la conférence (plus de 540 personnes) de voir comment se déroule un projet agile.

Le sujet


Laurent est fan de nouvelles technos, de devops et de bigdata. Il a donc une idée : aspirer les tweets #AG15 avec Flink, et générer un nuage de mots dans une page Web.

Objectif(s)


D'après moi, le piège d'un tel atelier est d'avoir trop d'objectifs : montrer l'agilité en action, faire participer les gens, et notamment les développeurs présents à la conf, avoir des feedbacks de tous les participants à la conférence, montrer des technos modernes et sympas, montrer les bonnes pratiques et l'excellence technique, etc...

J'ai partagé avec Laurent mon retour d'expérience sur un atelier similaire que j'avais vu à Mix-IT, et qui à mon avis n'avait pas trop marché, en tout cas, en tant que développeur, j'étais passé 5' voir les gars et je n'avais pas osé ou trouvé le moyen de contribuer.

Nous nous sommes donc donné comme principal objectif de montrer l'agilité, en espérant que du monde vienne voir, observer, et poser des questions. Nous savions que le Product Owner et le Scrum Master serait probablement moins occupés que les développeurs, et qu'ils pourraient donc assurer l'accueil des visiteurs et réponses à leurs questions.

Nous avons tout mis en oeuvre pour permettre l'intégration de développeurs motivés, mais sans compter dessus, donc en s'assurant d'avoir un minimum de ressources dans la journée (merci les copains !).

Quelques biais


L'atelier est expérimental, l'objectif est ambitieux, nous devons prendre quelques biais, et faire quelques concession. Les cérémonies doivent être rapides et animées oralement, pas le temps de mettre en oeuvre des atelier ou supports, par exemple pour les rétrospectives. Le produit est un POC (Proof Of Concept), tout comme l'atelier d'ailleurs, et le produit sera éphémère et jeté le soir même, la qualité et notamment les tests automatisés ne sont pas prioritaires. Et côté outillage et devops, nous faisons au plus facile (différent du plus "simple") : le serveur BackEnd sera celui de développement présent sur l'atelier, et l'application sera déployée par un simple "rsync" entre mon poste et le serveur Web.

Déroulement


Arrivés dès 8h, nous avons installé notre atelier dans le coin qu'on nous avait réservé dans l'Atrium, le grand hall principal de la conférence : tables en ilot pour développer, 1 poste pour vidéo-projeter le résultat, 1 poste pour développer le BackEnd, 1 ou 2 postes pour développer le FrontEnd, 1 tableau blanc avec post-its pour les retours utilisateurs, le backlog et ses "User stories", etc... L'installation prend du temps, mais nous sommes prêts à accueillir les visiteurs à l'heure des premières sessions après la keynote.




Itération 1 : les premiers pas


Nous expliquons le contexte et le projet aux personnes présentes. Le product Owner nous présente les histoires qu'il a imaginé et nous échangeons. Nous en retenons 2 pour commencer :

  • BackEnd : aspirer les tweets (nous avons déjà une base) et générer un fichier avec les noms des twittos
  • FrontEnd : afficher un nuage de points "en dur"

C'est parti, nous avons 30' pour livrer quelque chose pour les prochains changements de sessions de la conférence. C'est très court, nous rencontrons évidemment des problèmes techniques, mais heureusement, nous avions quelques billes de côté et nous pouvons livrer un premier nuage de mots pas très beau, codé en PHP, et basé sur un fichier texte en dur.

Itération 2 : pression


Comme prévu, nous commençons par une rétrospective qui fait ressortir que tout le monde est content, satisfait, s'amuse, mais... que ça va très très vite et qu'il faut vraiment travailler en "baby baby steps" ! Donc des histoires vraiment très petites et progressives !

Pour l'itération 2, nous nous engageons donc pour un affichage plus joli du nuage de mots, basé sur l'exploitation d'un fichier généré par le BackEnd, contenant les noms des twittos avec un poids en fonction de leurs nombres de tweets, quitte à pousser manuellement ce fichier sur le serveur Web. Malgré de nouvelles difficultés techniques, ainsi que des perturbations importantes subies par l'équipe, l'objectif est atteint de justesse, et nous finissions la matinée avec le résultat attendu :-)



Pause déjeuner : plaisir


Nous commençons tout juste à bien rentrer dans le projet, à produire quelque chose de sympa, l'excitation est telle que le repas est rapidement avalé et qu'on se remet à coder en "off" :-), comme cela peut arriver dans la vraie vie, lorsqu'on arrive à composer une équipe soudée et motivée sur un chouette projet ! ....

Itération 3 : pression toujours...


Nous attaquons le "sprint planning" (réunion de planification de l'itération à venir) par une nouvelle info des Product Owner : vers 13h30, nous aurons un créneau de 5' pour présenter notre atelier et notre produit en amphi, aux 540 participants ! Ouch....... La pression monte, mais l'excitation également : GO GO !!

Pour cette itération, les Product Owner nous demandent de peaufiner l'affichage et d'ajouter en haut de page le nombre de tweets collectés. Objectif raisonnable, on s'engage, et 3/4h plus tard, nous sommes sur l'estrade de l'amphi pour la présentation, yeah ! :


Pour l'anecdote, la présentation des mots est aléatoire (position, inclinaison), donc le résultat est différent d'un affichage à l'autre. De plus, juste avant de livrer cette version, j'ai pas mal tweeté pour tester. D'où la présence de mon nom bien visible sur le nuage présenté en amphi, je ne m'en suis pas rendu compte sur le coup, et ça n'était pas truqué, mais nous sommes des devs qui testons notre appli ! ;-)

Itération 4 : on s'éclate !


Après l'euphorie de notre présentation en amphi qui s'est bien déroulée, nous attaquons une nouvelle itération. Nouvelles demandes des Product Owner : alterner l'affichage entre les noms des twittos et les mots les plus twittés. Encore une fois, l'objectif sera atteint, mais avec un résultat logique mais que personne n'avait anticipé : nous obtenons un nuage avec des dizaines de mots, écrits tout petits et illisibles, sauf 1 qui est en gros au milieu du nuage..... #AG15 !! Evidemment, c'est le mot le plus twitté ! Nous en tirons les conséquence pour l'itération suivante : il faut filtrer ce mot, ainsi que d'autres non significatifs.

Itération 5 : encore du plaisir !


Nous finissions la journée avec une 5e itération en mode beaucoup plus cool, le plaisir prend le dessus sur la pression, tout le monde sent que l'objectif est atteint, aussi bien celui de l'application qui tourne bien et est visible en grand sur le mur, mais également l'objectif de l'atelier !


Conclusion sur l'atelier


Au final, après une journée très intense, mais riche en rencontres et en découvertes, l'objectif est atteint. Sur la journée, nous estimons avoir eu environ 50 personnes qui sont passées nous voir, et qui ont participé en posant des questions ou en donnant un coup de main pour coder une itération.

Nous avons eu tous les profils (Product Owner, Scrum Master, développeuses et développeurs, managers, ...) et tous les niveaux (grands débutants, pratiquants, ...).

Quelques moments m'ont particulièrement marqué et m'ont amené à me dire qu'un tel atelier avait sa place :

  • A la première itération, en plus de notre Product Owner de départ, nous en avions 7 autres : 7 personnes venues voir en quoi consiste le rôle de PO, comment se déroule un projet agile, une itération, une planification d'itération, les échanges entre PO et devs pour être sûr de bien se comprendre, comment tester et voir ce que ça donne sans trop anticiper, etc... Et toutes ces personnes ont pu profiter du déroulement des itérations pour tranquillement échanger et questionner notre PO et notre SM, qui du coup ont été moins disponibles pour l'équipe ;-)
  • Deux personnes sont arrivées pour la 2e itération, elles sortaient de la session "L'agilité pour les nuls" et dans les échanges que j'ai pu avoir avec elles, je me suis rendu compte à quel point c'était un excellent enchainement dans leur programme pour découvrir l'agilité
  • A l'itération 4, nous avons implémenté le nuage des mots les plus twittés, et tout le monde a été surpris, mais finalement pas étonné, de voir sortir en gros "#AG15" : l'agilité est également là, essayer, tester, voir ce que ça donne, ne pas anticiper, et être capable de rapidement s'adapter
  • ...


Certains choses ont peu ou pas marché :

  • A mon avis, l'application en ligne a été beaucoup moins visitée que nous le pensions
  • Le tableau de feedbacks des utilisateurs n'a reçu aucun post-its
  • Le "concours" du meilleur twittos a peu fonctionné, à part pour certains, ils se reconnaitront... ;-)

Mais globalement, cet atelier s'est très bien déroulé, probablement mieux que je ne m'y attendais, et ce fut un grand succès. En plus, nous avons pu noter plein de points d'améliorations pour que cet atelier soit encore plus performant, accueillant, didactique, etc... Que demander de plus ? :-)

Conclusion sur mon Agile Grenoble 2015


Depuis des années, je participe à Agile Grenoble, en tant qu'orateur, ou en tant que simple visiteur. Cette année, j'ai vu la conférence sous un autre angle, très différent des 2 premiers. J'ai passé ma journée à l'atelier, je n'ai vu aucune keynote et quasiment aucune "surprise" (si quelqu'un a filmé l'impro et les post-its, je suis preneur !!!), j'ai fini la journée épuisé, mais quel plaisir, quel bonheur, aussi bien de coder en live une application tout de même bien sympa en si peu de temps, de faire du pair-programming avec des bons copains ou des inconnus, de renseigner les visiteurs sur l'agilité, Scrum, l'état d'esprit agile, l'organisation, les façons de faire, etc...

Une grand merci à Laurent pour son initiative, aux personnes impliquées dans la préparation de cet atelier, à l'équipe d'orga qui nous a permis de tenter cette expérience, et bien sûr, à toutes celles et ceux qui sont passés nous voir, nous questionner, nous aider, nous perturber, nous encourager, ... MERCI !!


Crédits photo : Alex, Fred, Franck et moi

6 commentaires:

  1. Que dire de plus, une journée superbe.
    Merci à toi

    Laurent

    RépondreSupprimer
  2. quelle bibliothèque avez-vous finalement retenue pour coder le nuage de mots ?

    RépondreSupprimer
  3. et au sujet de Flink ? est-ce que tu peux nous en dire un peu plus ? (un tuto ? des exemples ?) Je ne suis pas sûr d'avoir compris à quoi ça sert et comment vous l'avez exploité...

    RépondreSupprimer
  4. Pour flink je ferai ma BA dans un post ... challenge fin de semaine ? :)

    RépondreSupprimer
  5. Bravo à toi et à Laurent pour avoir animer un tel atelier avec tous les challenges et pressions qui vont avec. Continuer à apporter l'aspect technique dans les conférences agiles. J'espère que la prochaine fois je serai plus disponible pour vous donner un coup de main.

    RépondreSupprimer
  6. Bravo Xavier et Laurent, c'était un projet fou en efffet :)

    RépondreSupprimer