17 avril 2014

[Interview] Martin Van Aken à propos de sa formation Revue de Code

Martin Van Aken est formateur pour Human Coders. Il anime la formation Revue de codeMartin Van Aken a fondé 8thcolor avec Christophe Philemotte. Tous les deux, développeurs expérimentés, sont passionnés par les bonnes pratiques, les tests unitaires, le build continu en passant évidemment par le code review. Il dispense chez nous une formation Revue de code, un excellent moyen d’améliorer la qualité de son code en mettant en place des revues de code dans son équipe.
Martin a accepté de répondre à quelques questions pour nous présenter cette formation Revue de code.

Human Coders: Salut Martin peux-tu te présenter en quelques lignes ?

Bonjour, je m’appelle Martin, je travaille depuis maintenant une dizaine d’années comme développeur, technical team lead ou coach avec un intérêt particulier pour les problématiques de qualité du code et de revues de code au sein d’équipes de développement, de startups comme TagTagCity à des équipes de développement chez Swift.

HC: Qu’est-ce que 8thcolor ?

C’est une startup belge que j’ai cofondée avec Christophe. Avec une dizaine d’années en IT derrière nous, nous avions tous deux envie de lancer une société orientée produit, par des programmeurs pour des programmeurs.

HC: Vous avez lancé PullReview avec Christophe, un outil automatique de review de code Ruby. Pourquoi avoir développé un tel outil ?

La version courte: “Better developers make better software”.

Nous sommes convaincus de la valeur ajoutée de code reviews régulières (voir systématiques), pour le code de la société mais surtout pour les programmeurs eux-mêmes.

PullReview est née du constat (souvent entendu) que si beaucoup de gens semblent convaincus de l’intérêt des revues de code, tous n’y ont pas accès. Avec PullReview, notre objectif est de fournir à tous les développeurs Ruby une possibilité d’avoir des feedbacks sur leur code – pas en terme de bon/mauvais, mais en terme de ce qu’ils peuvent y améliorer. Pour ceux qui n’ont pas accès à une revue de code “humaine” c’est une première étape, pour les autres, un complément permettant à la revue “manuelle” de se focaliser sur des sujets plus importants (adéquation avec les besoins, par exemple).

HC: D’où vient l’importance pour toi de la revue de code ? Pourquoi sensibiliser les développeurs à cette pratique ?

Honnêtement, parce que c’est une des pratiques les plus efficientes à mettre en place à moindre coût : discuter sur du code rend non seulement le code meilleur (les revues de code permettent de détecter des erreurs qui passent typiquement les filets de tests unitaires et manuels), mais aussi les développeurs !

Cela force à lire le code des autres et à le comprendre, ce qui aide à ce que l’équipe se l’approprie (collectivement). C’est l’occasion de découvrir des techniques ou bibliothèques qu’on ne connait pas, dans le cadre d’un projet. Quand l’un de mes collègues relit mon code et pose des questions, cela me force à formuler pourquoi la solution que je propose est une bonne solution.

Tout cela passe par une technique qui prend au final peu de temps, donc c’est un processus extrêmement rentable pour les équipes – et leurs clients.

HC: Peux-tu nous présenter ta formation Revue de code ? Comment se déroule-t-elle ?

Le but pour moi est que chacun sorte de là outillé pour mettre en place des revues de code dans son équipe – la formation Revue de code est donc essentiellement pratique.

On va parler d’outils (typiquement les PullRequests de GitHub ou équivalent), et au plus vite plonger dans le concret : Sur quoi faire des revues ? Que faire dans une revue de code ? Que regarder ? Qu’est ce qui est important ? Quand je reçois une revue, qu’en faire ?

Le but est de se mettre dans les deux situations – reviewer & reviewee, car les deux rôles sont une occasion d’apprentissage. Une revue de code n’est pas un expert qui pointe les erreurs d’un débutant, c’est une conversation.

Après, il y a quelques processus qui facilitent les revues (feature branches, par exemple), la question du rôle des revues de code automatiques, puis je garde un peu d’espace pour parler des difficultés de mise en place (“On a pas le temps!”) et comment y répondre.

J’ai travaillé et mis en place des revues de codes dans des équipes et des technologies très différentes. Les bénéfices sont similaires (meilleure connaissance des projets par l’équipe, meilleurs designs et une hausse générale des compétences, tant pour les juniors que les seniors), mais  il n’y a pas ‘une’ bonne manière, donc l’idée est aussi de garder un peu de temps pour parler de problématiques ou de situations spéciques.

HC: Pourquoi as-tu décidé de donner des formations ?

C’est en quelque sorte un retour aux sources pour moi : mon premier job, c’était d’être prof d’informatique pour de futurs BAC+3 en programmation. C’est d’ailleurs ce qui m’a orienté vers le développement (j’ai étudié l’économie). Récemment, j’ai été impliqué dans l’initiative RailsGirls Brussels, et cela m’a rappelé à quel point la formation est une chose dans laquelle je prends beaucoup de plaisir.

De manière générale, j’aime bien coacher des équipes de développements et la vision Human Coders de la formation en est très proche, donc c’est encore mieux.

HC: Quel est ton meilleur souvenir de formation ?

Difficile à choisir – j’y prends beaucoup de plaisir.

De manière générale, terminer une formation et voir que cela a été utile aux gens présents – c’est au final la seule chose qui compte. Beaucoup de moments de pratique surtout (j’ai toujours préféré les ateliers aux cours ex-cathedra), d’être là plus pour coacher que pour enseigner à proprement parler.

Dans les moments drôles, un étudiant levant la main après une explication pour dire “J’ai l’impression que vous avez déjà dit ça, non ?”. Le propre de la formation, c’est de dire plusieurs fois les mêmes choses mais de manière différente (le dire, le montrer, l’illustrer, etc) pour toucher tout le monde. L’étudiant avait évidemment raison, mais il pointait le fait comme si c’était la première fois, ce qui m’a fait rire.

Sinon, la formation pour moi c’est beaucoup de petits moments de praticien à praticien, au sein de 8th color, avec des clients ou dans des échanges informels (dernièrement à Paris.rb).

HC: Merci Martin !

Codez heureux !

Retrouvez le programme complet de la formation Revue de Code sur Human Coders Formations.