Accueil Nos publications Blog SoCraTes-FR ’16 retour sur une non conférence

SoCraTes-FR ’16 retour sur une non conférence

Il était une fois, dans un pays lointain, 46 passionnés de l’artisanat, qui se retrouvèrent pour la seconde édition de la conférence Socrates-Fr au château de Rochegude.

La description du château, la très grande qualité et variété des plats de cuisine valent à eux-seuls des articles élogieux sur des sites de tourisme et autres sites de voyages et loisirs mais, ceci n’est pas le but de l’article.

Cet article revient sur les moments forts de la conférence SoCraTes édition française à laquelle nous avons eu la chance de participer.

Cette dernière s’est déroulée du 27 au 30 octobre 2016 dans une ambiance conviviale.

Pour ce retour de conférence, nous commencerons par présenter le format de la conférence avant de revenir sur les conférences que l’on a le plus aimé et ce qu’elles nous ont apporté.
Etant donné que les katas étaient quotidiens et dans un format … original, nous en parlerons dans une section dédiée.

Format

Socrates est une non-conférence, c’est-à-dire qu’il n’y a pas de speaker attitré et qu’aucun talk n’est prévu à l’avance. Seul un cadre est proposé aux participants par un(e) facilitateur(trice). Dans notre cas, il s’agissait de Franzi.

Le cadre est le suivant :

  • une “marketplace” a lieu tous les matins. C’est le moment où tout le monde peut proposer des sessions sur les sujets qu’ils veulent, quand ils veulent et où ils veulent.
  • la journée est découpée en heures, ainsi chaque session dure par défaut une heure.
  • à la fin de la journée, chaque session est revue et une personne y ayant assisté donne un feedback.
  • une fois les feedback finis, une mini “marketplace” a lieu pour l’organisation de la soirée.

Enfin, SoCraTes-FR est également un forum ouvert. Nous avions donc :

  • 4 principes :
    • les personnes qui se présentent sont les bonnes,
    • ce qui arrive, est la seule chose qui pouvait arriver,
    • ça commence quand ça commence,
    • quand c’est fini, c’est fini.
  • La loi des deux pieds : si vous n’êtes ni en train d’apprendre, ni de contribuer, passez à autre chose (changez de session) !

Pour briser la glace c’est “world café” !!

Pour briser la glace et faire connaissance, le très sympathique Houssam (organisateur de la non-conférence) a lancé le world café!

Il est demandé aux participants de la précédente édition de rester sur une table, avec un post-it géant, et tous les nouveaux participants, scindés en petits groupes, se présentent aux différentes tables et disent ce qu’ils attendent de la non-conférence.

Retour sur quelques sessions

« Take a shortcut»

La session « Take a shortcut» d’Amélie était ludique. Il s’agissait de découvrir et partager les raccourcis clavier de notre éditeur préféré.
Tout l’intérêt réside dans la prise de conscience qu’on peut gagner du temps au quotidien en passant au maximum par les raccourcis.

Vous aussi pour pouvez démarrer le jeu chez vous. Le projet sur le github, les instructions également.
Au-delà des exercices, Amélie a également mis à disposition des PDF pour chaque IDE. Have Fun!

« DDD & Microservices Achitectures »

Une des spécificités des non-conférences, c’est la possibilité d’organiser une session autour d’un sujet sur lequel nous recherchons de l’information.
Antoine recherchait des solutions contre la dilution du modèle métier au sein d’un SI très distribué, composé d’un grand nombre de services hyper spécialisés.
Dans ces conditions, il ressort que l’utilisation intensive du patron stratégique Cartographie du Contexte de DDD, ainsi qu’une communication renforcée entre les équipes techniques permet d’éviter le maximum d’écueils.

« Teaching TDD»

Cédric a proposé une session pour discuter des méthodes que nous utilisons afin d’enseigner le TDD.
Après quelques échanges d’astuces, il nous a exprimé son désarroi à ne pas trouver de méthode qui n’implique pas de frustration aux stagiaires.
Nous n’avons malheureusement pas trouvé de solution à ce problème et sommes arrivés à la conclusion que c’est un passage obligé mais qu’il est de la responsabilité du formateur de montrer au mieux l’objectif visé afin d’alimenter la soif d’apprendre des stagiaires.

« Property-based testing »

Dans cette session animée par Xavier, il est question de la pertinence des données de tests. On veut pouvoir vérifier que les tests existants restent verts en y injectant des données aléatoires.
Le développeur ne choisit donc plus lui-même la donnée en entrée du test. Il la génère aléatoirement grâce à JUnitQuickcheck (ou* votrelanguage*quickcheck si vous ne faites pas de Java).
La session a le mérite d’avoir fait découvrir la librairie JUnitQuickCheck .
Il n’y a plus qu’à la tester sur des projets, d’autant que le Kata de Xavier est disponible sur github.

« Monoid Morphisms and map-reduce parallelisation »

Quand un passionné de mathématiques et de programmation fonctionnelle tel qu’ Arnaud se propose de vulgariser un sujet aussi complexe, il en ressort forcément une session mémorable.

Il était possible de comprendre les fondements théoriques. Ainsi, Antoine qui y a assisté sait désormais qu’un monoïde est en fait une simple structure algébrique composée d’une opération associative et un élément neutre.
L’addition associée à l’élément neutre 0 forme un monoïde.

Arnaud nous a ensuite démontré les principes des morphismes de monoïdes, des opérations qui transforment un monoïde en un autre.
Ce principe est intrinsèquement parallèle et est à la base des algorithmes Map/Reduce.

« Feature branching is evil »

Thierry se charge au quotidien de l’intégration continue au sein de sa structure et a observé des dysfonctionnements de certaines équipes sur l’usage des branches.
Pour lui, bien qu’elles soient adaptées pour de petites itérations, utiliser des branches pour des itérations longues (4 mois par exemple) est une grosse erreur et peut s’avérer dangereux.

Les deux approches qui semblent gagner ses faveurs sont celles de la branche par abstraction et du Trunk based developpement (TBD).

Mais, faire sortir ses équipes de la logique de branches n’est pas évident, il voulait ainsi savoir :

  • Comment gérer le code supplémentaire produit une fois la feature terminée dans le cadre des branches par abstraction?
  • Comment gérer les codes review dans le TBD?
  • Quel était le retour de ceux qui ont mis en place le TBD?

Il ressort que les deux approches sont viables sur sa problématique mais qu’elles demandent de la discipline dans l’équipe et ne sauraient être recommandées dans une équipe non avertie.

« Learning strategies »

Quand Alessandro a proposé une session pour discuter des habitudes de chacun pour s’améliorer techniquement, on a pu échanger sur :

  • Comment on sélectionne sur quoi se former?
  • Qu’est-ce qui nous motive?
  • Comment trouver l’équilibre avec la vie privée et sociale?

De la session, il ressort que certains consultants sont déstaffés 1 fois par semaine/mois pour apprendre et monter en compétence sur les nouveautés.
D’autres prennent le temps d’apprendre sur leur lieu de travail. D’autres encore font un mix d’efforts sur le lieu de travail et d’efforts sur leur temps libre.

Les livres sont essentiels, la plupart des participants avaient lu le post de blog de Jeff Atwood sur les livres recommandés aux développeurs. D’autres ont mis en place des clubs de lecture au sein de leur société.
Sur le choix des sujets, c’est surtout via des conférences, les meetups et les post de blogs.

En définitive, quel que soit ce qu’on décide d’apprendre, nous étions tous d’accord que l’apprentissage devrait toujours rester un plaisir. Trouver des personnes qui partagent cette envie d’apprendre est essentielle. (Se) créer un environnement favorable aussi.

« Loops to transducers »

Arnaud nous a présenté le principe des transduceurs (un pattern fonctionnel) en partant d’un code python qui utilise des boucles et des ifs. L’avantage des transducteurs sur le pattern fonctionnel classique “filter/map/reduce” et qu’il utilise la composition de fonction afin d’éviter de créer des collections temporaires à chaque fois. Le sujet étant bien trop vaste pour être détaillé ici, nous vous invitons à regarder l’intervention d’Arnaud sur le sujet à la PyCon 2015 :

« Serious Game : Derdians »

Xavier a animé un serious game, hilarant, mettant l’accent sur les difficultés de communications liées à nos différences culturelles et organisationnelles.
Nous ne gâcherons pas les rouages du jeu, mais nous pouvons vous promettre que vous ne regarderez plus vos collaborateurs extérieurs à l’IT du même oeil!

« Instilling Software Craftmanship & how to coach for better practices »

Après le déjeuner du second jour, nous avons pu échanger autours de ces thèmes passionnants en faisant part de nos expériences respectives. Dans le parc du chateau de Rochegude, sous un temps magnifique, les conseils et échanges ont fusés. Il en ressort deux axes principaux pour instiller cette culture Craft au sein des équipes de développement : par l’accompagnement, dans un format orienté coaching des équipes, ou avec des sensibilités Craft directement installées au sein des équipes, qui vont ainsi pouvoir exercer un leadership par l’exemple.

PPT karoakoé

Le soir est (pour certains) un moment de détente à SoCraTes. Nous avons eu le plaisir de participer à une session de “Power Point Karaoke”.
Le principe est très simple : des slides (si possible drôles) que personne ne connaît (surtout pas le présentateur) sont projetés et quelqu’un doit les présenter. Aucun chant n’est nécessaire. Crise de fou rire garantie!
Il s’agit également d’un très bon exercice pour travailler son aisance orale.
Si l’aventure vous tente, ci-dessous, quelques slides qui présentent le sujet et demandent trois volontaires

À table! Ya des katas

Romeo nous a apporté le running gag de ce SoCraTes : des katas à chaque repas!
Ainsi nous avons pu faire :

  • Un kata sur le jeu de la vie où les noms étaient choisis en aléatoire (lancer de dés), ce qui nous a montré à quel point il était facile de s’habituer à son propre code legacy.
  • Un kata nommé kebab qui nous a montré quelques problèmes systémiques qui nous font créer du code legacy.
  • Un kata où nous devions utiliser un langage que nous ne maîtrisons pas, ce qui a provoqué de belles découvertes.
  • Un silent pair programming qui nous a montré l’importance d’écouter pleinement son pair.
  • Et enfin, il y a également eu “roman numerals” et le kata “diamonds” en parallèle, ce qui nous à montrer que le multi-tasking mène rapidement à la cata(strophe).

Sans compter les autres katas improvisés quand Romeo avait un peu de temps libre.
Vous l’aurez compris, Romeo nous cata(lysait) avec ses katas.

Les très bonnes surprises

The mother of all the demo

Après le dîner, une session de visionnage de la “Mother of all the demos” (datant de 1968) est proposée. Une des plus belles sessions de la conférence!
Déjà, la vidéo à elle seule est une perle dans l’histoire de l’informatique moderne. Certains découvrent le nom de Douglas Engenbart qui y présente ce qu’est une souris, un lien hypertexte, la métaphore du bureau etc. Le mieux, c’est de le regarder en groupe.

Spot the pattern !

La vidéo étant un MUST, nous avons joué au “spot the pattern”.
L’idée est d’identifier des concepts, termes et innovations pour l’époque que l’on rencontre dans une forme ou dans un autre au quotidien.
Nous avions choisi de boire un coup à chaque pattern trouvé ! À vous de trouver la récompense.

The Leprechauns of Software engineering

Laurent a écrit un (petit) livre drôle, pédagogique et très intéressant visant à nous faire développer un esprit critique vis-à-vis de ce qu’il appelle des mythes de notre industrie.
Fort de plus de 25 années d’expérience dans le développent logiciel, il a connu le meilleur et le pire de l’informatique et tient à nous rappeler que, faute de connaître son histoire (nous n’avons pas de musée retraçant l’histoire de l’informatique), certains “études” sont publiées et reprises années après années sans que la véracité du propos ne soit démontrable en tout temps.
Son livre montre à la fois comment sont nés certains mythes ( the cost of a defect par exemple) et nous incite réellement à savoir prendre du recul sur ce qui est présenté comme toujours vrai dans le Génie logiciel.
Il a publié un article que nous ne pouvons que vous recommander avant ou après la lecture du livre.

Conclusion

SoCraTes-Fr fût très riche en expériences, apprentissages et découvertes. C’est de loin, pour nous trois, la conférence technique la plus enrichissante humainement.
Il serait très ambitieux de décrire exactement chaque session. Dans ce billet, nous avons tenté de retranscrire un peu de ce que l’on y a appris.
Vous pouvez avoir une vision d’ensemble en suivant fil twitter de l’évènement.
En attendant, nous espérons pouvoir y retourner l’année prochaine. Avec un peu de chance, on s’y croisera.

© SOAT
Toute reproduction interdite sans autorisation de la société SOAT