Nous sommes allés à SoCraTes 2022 - 6e édition

Nous sommes quelques Octos a avoir eu la chance de participer à la 6e édition de SoCraTes France (https://twitter.com/SoCraTes_FR/status/1505625869519396864).

Pour poser le contexte, qu’est-ce que SoCraTes ?

SoCraTes (pour Software Craft and Testing) c’est un temps (3 jours et … 3 nuits) où une soixantaine de personnes se retrouvent dans un endroit sympathique pour échanger, partager, et coder.

Le format est simple : c’est un Open Space où tout le monde est libre de proposer des sujets en début de chaque journée, un agenda s’organise de manière très organique avec des créneaux horaires, des lieux et ensuite la loi des 2 pieds s’applique.

Évidemment que se passe-t-il quand on réunit 60 passionnés pendant 3 jours et 3 nuits dans un endroit “reculé” du monde ? Et bien ça ne s'arrête jamais : lunch kata, diner kata, after-diner kata, lightning talks à l’apéro, ateliers sur le flow à 23h …

Du coup nous vous proposons de vous faire partager, ce que chacun d’entre-nous a vécu pendant cette édition.

"Au global, ce fut une première expérience très sympa"

Photo de simon

Simon

C'était un premier SoCraTes pour moi. On a beau savoir que le contexte est bienveillant, il n'est pas évident pour tous (moi inclus) d'aller à la rencontre d'inconnus pour leur demander des trucs du genre : "Et toi, elle est comment ta stratégie de test ?"

Fort heureusement, le lieu est particulièrement accueillant, le format des journées très ouvert et les participants forts sympathiques. Mention spéciale à Michel Grootjans (@michelgrootjans) et Thierry de Pauw (@tdpauw), aimables camarades de tablée belges et passionnants compagnons d'apprentissage.

Plus concrètement, c’est quoi SoCraTes, qu’y ai-je fait ? J’ai participé à de nombreuses tablées (~10) d’environ 1 heure pendant 2 jours et demi, avec au programme :

  • Découvrir l'improvement kata (wikipedia) de Toyota au travers d'un rex passionnant. Clairement une des meilleures discussions de mon séjour. Le principe est relativement simple et la démarche très pragmatique.

  • Échanger autour du bon rythme à adopter dans un delivery, de la place de l'irrationnel et des émotions (ex : régler un problème de transparence peut valoir autant que régler des problèmes de CI).

  • Dessiner des dragons et des châteaux-forts pour cartographier une base de code

  • Discuter de la décorrélation complète entre estimation et lead time au travers d'une simulation hyper bien faite (https://github.com/michelgrootjans/dot-game). On essaiera de le faire chez OCTO.

J'ai aussi parlé d'event sourcing, de contract testing, de remote, conservé mon scepticisme autour de la programmation fonctionnelle (oui les fonctions pures c'est bien mais encore ?), parler de CUPID, fait de la pétanque. Et plutôt très bien manger, c'est important ça.

Point de vue personnel : la majorité des conférences est en anglais. C'est un choix qui me questionne. Car c'est aussi inclusif qu'exclusif : cela permet à des étrangers de participer à la conférence, yay! Mais j’ai trouvé que cela freinait la participation de nombreux français qui ne maîtrisaient pas bien la langue de Shakespeare. À garder en tête.

Au global, ce fut une première expérience réussie : riche, accessible, moins effrénée et artificielle que les grandes conférences habituelles, plus humaine et incarnée aussi.

Merci SoCraTes et à l'année prochaine 👋

"J’y ai découvert de belles personnes, avec plein de convictions à transmettre, mais toujours accessibles et à l’écoute des convictions et des expériences des autres."

Photo de Victor

Victor

3 ans... C’est le temps qu’il y a eu entre le moment où j’ai dit “la prochaine fois j’y vais”, et le moment où j’ai enfin pu aller à SoCraTes.

Je n’y étais pas allé en 2019 car je pensais que le niveau serait trop haut pour moi, et qu’il valait mieux attendre un peu. Et en voyant les Octos de l’époque revenir, je m’en suis mordu les doigts !

Pour autant, je ne savais pas à quoi m’attendre, mis à part un espace riche en discussions.

J’y ai découvert de belles personnes, avec plein de convictions à transmettre, mais toujours accessibles et à l’écoute des convictions et des expériences des autres.

J’y ai découvert une variété d’interventions, des échanges ou demandes d’aides, aux ateliers matures déjà pratiqués en conférence, en passant par des répétitions pour de futures conférences plus ou moins rodées. Mais des moments toujours intéressants, et toujours dans la bienveillance pour faire progresser la personne qui a proposé le sujet et ceux qui sont venus participer.

J’y ai découvert un endroit où il faut lâcher sa Fear of Missing Out parce que même le repas devient un choix : est-ce qu’on fait une pause avec ses collègues, est-ce qu’on va faire un kata, est-ce qu’on tente de trouver la table où il y aura des discussions passionnantes… (spoiler : les discussions de la table d’à côté seront toujours encore plus passionnantes)

Bref, un endroit où, si vous le voulez, vous pouvez avoir votre cerveau en ébullition non-stop du réveil au coucher (voire plus si vous choisissez le supplément nuit blanche près du feu).

C’est l’occasion de voir d’autres manières de faire, de remettre ses convictions en question, de découvrir tout ce qu’on a à partager, pour au final monter le niveau global de la discussion et des participants.

Je suis arrivé sans à priori, je suis reparti avec :

  • des bases remises en question et reconstruites, en mieux (SOLID vs CUPID)
  • des convictions solidifiées avec des représentations visuelles et impactantes (l’atelier sur le flow d’une équipe par Michel Grootjans)
  • que parfois, il faut admettre que faire simple c’est mieux (merci Cédric du rappel)

Pour la prochaine édition j’espère que je n’attendrai pas 3 ans !

"Les seules contraintes sont un cerveau bien accroché"

Photo d'Arthur

Arthur

C’était ma seconde participation Je suis peu friand des conférences magistrales pour diverses raisons (de mauvais souvenirs de cours, un manque d'interaction qui rend ma concentration plus laborieuse, etc).

C’est pourquoi j’ai attendu avec impatience cette nouvelle édition de SoCraTes France ! Et oui, c’était il y a déjà 3 ans la précédente, confinements et contraintes sanitaires obligent. Rien à voir avec une conférence “classique” : c’est ~3 jours de discussions quasi non-stop autour d’une table ronde, d’un bout de code, d’une assiette bien remplie, d’un verre ou d’un terrain de pétanque.

Les seules contraintes sont un cerveau bien accroché, une curiosité prête à absorber et d’avoir laissé sa “peur de passer à côté” chez soi tellement il peut y avoir de sujets intéressants et divers. Ainsi que d’être prêt à échanger en anglais, ce qui peut parfois un peu gêner les échanges (mais c’est dur de critiquer cet aspect, étant donné que certains de mes interlocuteurs favoris n’étaient pas francophones).

J’ai eu l’occasion entre autres :

  • de discuter de la place du craft dans les front web, d’échanger sur pratiques, tests et outils
  • d’assister à quelques kata sur différents sujets (composition, builders, contraintes)
  • de découvrir le Quality Storming, pour identifier et partager des critères de qualité sur lesquels baser des choix d’architectures
  • d’apprendre à régler un frigo (et surtout d’observer les interactions dans un système)
  • de tirer un lien entre ma posture d’artisan et le stoïcisme
  • de faire une ou deux siestes réparatrices au soleil

Du coup, j’en reviens fatigué mais avec le cerveau rempli de terreau et de nouvelles graines. Et j’ai hâte de participer à la prochaine édition.Si ça vous intéresse, il y a une session d’une journée de SoCraTes à Rennes le 24 juin, venez me voir 😉

"Mind blowing!"

Photo de Gautier

Gautier

"Mind blowing!"; c'est ainsi que je résumerais les 4 jours de cette non-conférence pour ma première participation.

Nous sommes mis dans le bain dès notre arrivée jeudi en fin d'après-midi : chacun s'assoit à une table ronde, avec d'autres participants, se présente, et propose des sujets de discussion : diversité, design émergent, refactoring de systèmes basés sur des technos peu ou plus utilisées (COBOL, Fortran…), bonnes pratiques de mob programming… juste un petit tour de chauffe avant le dîner!

Assis à côté d'un expert Scala, on continue pendant le dîner : programmation fonctionnelle, importance et usage de la programmation réactive dans nos applications modernes :  🤯. Je prends des notes, et pose (beaucoup) de questions.

Et ce rythme continue jusqu'au dimanche midi, avec, pour clôturer ce SoCraTes 2022, un cours particulier de Vivien, développeur senior C++, sur le fonctionnement d'un compilateur. Merci à lui!

Entre les deux, de nombreux ateliers et échanges extrêmement enrichissants :

  • Le Toyota Improvement Kata, ou comment amener une organisation de 150 développeurs à réduire sa fréquence de déploiement de 6 mois à 2 semaines en… 3 mois seulement!
  • La programmation fonctionnelle est-elle inévitable? Pas encore convaincu, mais j'ai des pistes pour creuser le sujet
  • Les désormais fameux lunch et dinner kata, en Rust et en Go notamment, au cours desquels la codeuse avait une petite table à côté d'elle pour y poser… son assiette! 😂

J'ai particulièrement apprécié la bienveillance de tous les participants. Pas d'égo, ni de "querelles de chapelle"; c'est ça l'esprit SoCraTes. Alors merci aux organisateurs et aux participants. Merci également à OCTO qui m'a permis d'y assister. SoCraTes fût une très belle expérience; nul doute que je ferai mon possible pour être présent à la prochaine édition!

"A chacune de mes participations [...] je reviens fatigué par 4 jours de conversations [...] mais aussi avec plein de motivation"

Photo d'Adrien

Adrien

Il y a des endroits où l’on va chercher un regain d’énergie, une source de motivation et/ou quelques bons conseils … et je place SoCraTes dans la liste de ces endroits.

A chacune de mes participations - la troisième pour moi -, je reviens fatigué par 4 jours de conversations et de katas à toutes heures du jour et de la nuit, mais aussi avec plein de motivation pour continuer à défendre certaines convictions sur le craft, tester de nouvelles idées ou en re-tenter des nouvelles.

C’est aussi le plaisir de recroiser des personnes que l’on a pas vu depuis quelques années, et de reprendre la conversation là où elle s’était arrêtée. En 2019, lors de ma dernière participation, j’avais beaucoup discuté de Trunk Based Développement et de continuous delivery avec les participants et notamment Thierry de Pauw avec qui, lors d’une session autour de "Kick Starting Continuous Delivery”, nous avons ré-évoqué cette année le Toyota Improvement Kata (3 ans après notre première conversation).

Il y a des choses qui ne changent pas (par exemple: une passion pour la programmation fonctionnelle qui ne semble pas vouloir s'essouffler).

Mais il y aussi des changements plus profonds qui semblent être à l'œuvre. Cette année, le Domain Driven Design (DDD) était sur beaucoup de lèvres et dans pas mal d’oreilles … une confirmation de l’intérêt de la communauté craft pour le sujet ?

Si je ne devais retenir que 3 sessions :

  • La démonstration rafraîchissante de Michel Grootjans sur le flux de travail, que j’ai trouvé bluffante de clarté … et les conclusions sur la corrélation - ou son absence - entre estimation et lead time, sur l’impact de l’organisation du travail et des WIP sur l’efficience du flux.

  • Les conversation sur extreme programming (XP) et son extrême simplicité

  • The fridge game, par Christophe Thibaut et Laurent Bossavit, sur lequel je ne m’étendrai pas pour ne pas gâcher la surprise mais qui regroupe ce que j’aime le plus dans les sessions : Un juste milieu en mode participatif et une démonstration d’un point théorique.

Il faut cependant que je confesse quelque chose : Je suis toujours venu à SoCraTes avec quelques idées de session mais que je n’ai jamais osé proposer. Promis, la prochaine fois, j’amènerais quelque chose dans mes valises.

"il faudra que tu ailles à SoCraTes"

Photo d'Alexandre

Alexandre

J’ai découvert SoCraTes il y a quelques années quand Romeù Moura m’a dit un jour “Si tu veux faire ce métier, il te faudra un coach et il faudra que tu ailles à SoCraTes”, l’un n’ayant à première vue aucun rapport avec l’autre. Et bien sûr je n’avais fait ni l’un ni l’autre jusqu’à maintenant, quand en fin d’année dernière Victor nous a parlé d’y aller, j’ai sauté sur l’occasion. Deux coups en un, vivre cette expérience et passer du temps avec des Octos “au vert”.

Voici un petit panel de quelques talks fun / waouh / inspirants auxquels j’ai pu assister, je tente un exercice forcément déceptif et très partiel de pitchs ou de résumés.

How to sabotage a craft coach?

Quelques exemples dans les plus classiques :

"<ça>, ça ne marchera pas chez nous… tu comprends avec notre legacy (remplacer <ça> avec n’importe quelle pratique du craft qui vous vient à l’esprit)"

"ah c’était aujourd’hui le kata"

"on n’a pas le temps, on a des problèmes de prod"

...Et une dizaine d’autres encore

Category Theory “you already know it”

J’ai redécouvert un vocabulaire que je n’avais pas utilisé depuis mes jeunes années d’étudiant, et finalement faut croire que c’est comme le vélo … en tout cas une approche très pédagogique et compréhensible dans ce talk en rodage et qui va tourner dans quelques futures conf.

The fridge game et The life out the fridge

pour ne pas divulgacher ce sujet que préparent Laurent Bossavit et Christophe Thibault pour Devoxx juste un teaser très marketting : Le system thinking appliqué à un frigidaire

et d’un point de vue personnel les discussions avec le plus d’effets waouh et en sortie une liste de lecture incluant quelques bouquins de G. Weinberg (“An Introduction to General Systems Thinking”, “Secrets of Consulting: A Guide to Giving and Getting Advice Successfully”, …)

SOLID vs CUPID

une lecture rapide des propriétés CUPID (Composable, Unix Philosophy, Predictable, Idiomatic, Domain-based) proposées par Dan North (https://dannorth.net/2022/02/10/cupid-for-joyful-coding/) et est-ce que ça remplace(rait) les principes SOLID ? A vos copies doubles, vous avez 2 heures ;-)

TCR Kata

Essayer de faire un kata (le bowling) avec la contrainte proposée par Kent Beck comme un exercice, si les tests (T) passent on commit (C), sinon le code (de prod pas de tests) est remis comme il était (revert R)

Très honnêtement, avec mon binôme (Laurent) on a pas mal galéré (petit coup à l’égo ;-)) et on s’est fait reverter un certain nombre de fois avant de trouver un moyen de faire vraiment des tout petits pas grâce à Laurent qui pointe “TDD as if you meant it” de Keith Braithwaite (articles à ce sujet “https://cumulative-hypotheses.org/2011/08/30/tdd-as-if-you-meant-it/”, “https://gojko.net/2009/02/27/thought-provoking-tdd-exercise-at-the-software-craftsmanship-conference/” )

Kotlin Kata (with constraints)

se donner des contraintes complètement farfelues pour faire une refacto

Le code doit rimer, on change de navigateur toutes les 10s, le code doit avoir une forme carrée, pas de type primitif, …

  • et voir … que ça donne …. n’importe quoi (comme prévu). Très fun et quelques observations quand même en mode méta, la dynamique du groupe (l’équipe) est très chamboulée, tout le monde se concentre sur un objectif très personnel pour satisfaire à une des contraintes sans concertation ni coordination avec aucun échange, des développeurs ont “démissionné” au bout de quelques itérations …

Des contraintes arbitraires incompréhensibles avec des deadlines irréalistes ça ressemble à quelque chose IRL … mais à quoi ?

Patterns (Laurent Bossavit)

Grâce aux immenses connaissances de Laurent Bossavit complétées de celle de Christophe Thibaut, et de Rachel Davies, un parcours autour de l’inspiration de Christopher Alexander (Architecte - pas logiciel, décédé le 17 mars) sur le mouvement des design patterns (logiciels cette fois), les personnes qui y ont participé (Kent Beck, Eric Gamma, Ron Jeffries, Ward Cunningham et tellement d’autres…) et l’impact direct qu’ils ont toujours sur la vie de toutes les personnes qui travaillent dans ce domaine.

Pour finir

Ces 3 jours ont été pour moi un de ces trop rares moments qui remuent, qui me font me poser des millions de questions, me donnent des millions d’envies de lecture, d’expérimentations et le sentiment de découvrir encore une fois l’immense étendue des savoirs dont j’ignore l’existence.

Mon challenge pour la prochaine édition sera de proposer moi aussi des sujets qui je l’espère plairont aux participants. Juste pour essayer de rendre un tout petit peu de ce qu’on m’a donné pendant ces 3 jours.

Je veux remercier chacun des participants de cette édition pour votre immense générosité. Et bien sûr un immense merci à Houssam (houssamfakih) et à toute la team des organisateurs.