Comment monter une équipe R de 5 experts ? Interview avec Vincent Guyader

À l’occasion de la conférence useR!2019 qui s’est déroulée à Toulouse cette année, j’ai eu l’opportunité de rencontrer Vincent Guyader, fondateur de ThinkR.

Je lui ai demandé 5 minutes pour lui poser quelques questions, et il a été super sympa de m’accorder bien plus de temps que ça afin que nous puissions échanger.

J’ai pu enregistrer notre conversation (avec son accord, bien entendu !) afin de la retranscrire ici.

Je pense que j’ai entendu parler de ThinkR pour la première fois autour de 2016, alors que je démarrais mon aventure de freelance. À cette époque je travaillais principalement avec des clients internationaux et c’était cool de voir des acteurs français arriver dans le paysage de R.

Et puis au fil du temps, j’ai observé de loin l’équipe s’agrandir, le site web évoluer, et voir ThinkR de plus en plus souvent : Sur Twitter, dans les conversations, et même dans les auteurs des packages que j’utilise !

Oui parce que ThinkR, c’est : Du R, de la prestation, de la formation, mais aussi des projets open source.

Par exemple, si vous faites du Shiny, vous n’êtes sans doute pas passé à côté de golem, le framework pour créer des applis Shiny pour la production.

Du coup j’étais très curieux d’en apprendre plus sur la boîte, sur son fondateur, ce qu’ils font, comment ils le font, et leur vision de R et de son avenir.

Place à l’interview ;)

Charles : Est-ce que tu peux présenter ton background ?

Vincent : À l’origine, je suis ingénieur agro, de Rennes, formé au laboratoire génétique, biochimie, et statistique. J’avais signé pour faire une thèse en génétique animale mais un mois avant de commencer j’ai fait demi-tour et j’ai monté ma boite, alors que j’étais encore en M2. Le site est encore en ligne : www.allstat.fr.

Très orienté stats, je faisais ça avec R à l’époque parce que je savais faire du R, j’avais pas de quoi me payer un autre outil, et R me plaisait bien. Ensuite, de fil en aiguille, mon métier s’est transformé de plus en plus vers R plutôt que vers les stats.

Charles : Tu avais peut-être aussi appris à utiliser SAS ?

Vincent : Non. J’ai toujours codé, j’avais fait du Python pour le fun, j’étais le genre de gars qui codait des trucs en BASIC sur sa TI-82 pendant les cours de latin en collège. Et j’ai eu la chance de ne jamais faire de SAS.

J’ai pu partir sur R à fond, au début à poil sur les outils, et puis j’ai pris mes marques.

Charles : Donc ta première boîte, c’était du R et des statistiques ?

Vincent : C’était des stats, du traitement de données, etc. Quand j’étais étudiant, je bossais beaucoup pour la junior entreprise de l’Agro et ça marchait bien. Il y avait beaucoup de demandes et je me faisais beaucoup d’argent en tant qu’étudiant là-dessus.

Je me suis dit que j’allais continuer, ça me plaisait bien de répondre à des problématiques diverses et variées et dans la journée d’avoir 5 questions différentes sur 5 sujets différents. Et donc avec un associé à l’époque, un ami de prépa, on a monté cette boite à 2, jusqu’en 2012 au moment où on a splitté la boîte.

Je me suis retrouvé tout seul jusqu’en 2015, puis à ce moment-là j’ai vraiment ré-insisté sur R qui était devenu mon cœur de métier, d’où le nom de la nouvelle boîte : ThinkR.

Charles : Comment tu es passé de tout seul à une équipe de 5 sur ThinkR ?

Vincent : J’ai toujours eu trop de boulot.

En toute transparence, la première année où je me suis lancé (en 2008), j’ai gagné 7000 euros. Les deux derniers mois, je me suis payé rien du tout, j’étais tellement en galère que j’avais pas d’appartement, je dormais dans les locaux de mon école. Pendant un an c’était assez compliqué.

Puis après ça a commencé à tourner, de proche en proche. Pendant un moment je me suis un peu cherché : j’ai fait beaucoup de sites web, j’ai fait beaucoup de recherche en sciences, j’ai beaucoup de papiers scientifiques du coup qui se sont accumulés parce que j’ai fait beaucoup de thèses pour les internes de médecine.

J’ai toujours eu un attrait pour la recherche. Dans ma première boite on bossait pour l’INRA pour des prestas de recherche et d’analyses. On ne le fait plus du tout aujourd’hui parce que, déjà ils paient pas bien, et puis des gens qui savent faire des stats y’en a plein, et des largement meilleurs que nous. Maintenant on est vraiment spécialisés sur l’outil R.

Dans les formations qu’on donne chez Thinkr, il y a de moins en moins de stats. Dans 80 à 90% des formations qu’on donne, y’a plus de stats du tout, même pas un lm. On est là pour présenter comment on fait un outil, et on s’adresse de plus en plus à des développeurs qui sont là pour faire des packages, de l’intégration en prod, et du R de la vraie vie en entreprise.

Quand on s’adresse aux utilisateurs de R au niveau statistique, en fait ils savent déjà faire des stats avec R mais ils le font mal. Donc on insiste beaucoup sur les bonnes pratiques : travailler en projet avec des Rmd et faire de la recherche reproductible. C’est des outils qu’ils devraient tous utiliser depuis des années. Sauf que souvent le problème c’est qu’ils n’ont pas eu de cours de R. Ils ont eu un cours de stat où R était l’outil qui était présenté, ils ont eu un cours sur l’ANOVA, on leur demande la ligne sur l’ANOVA, et c’est tout

On va vraiment enseigner R comme un langage. Et après, on fait des stats. Mais d’abord c’est un langage.

Charles : Quel est la ratio prestations/formation chez ThinkR?

Vincent : On vise le 50/50 entre la formation et la prestation. On pourrait faire que de la formation mais perso je recommande pas plus que deux jours de formation par semaine.

Parce que ça casse. C’est fatigant. Pendant trois ans, j’ai fait 4 jours de formation par semaine. C’était bien, mais c’est fatigant.

T’apprends très très vite en faisant de la formation : le fait de se poser la question du comment est-ce que je sais ce que je sais, comment je peux expliquer à des gens qui ont des profils différents, on est dans une pièce où il y en a 10, y’en a un faut lui dire comme ça, l’autre comme ça, etc.

On devient vraiment expert du sujet qu’on croyait maîtriser. A partir du moment où tu commences à devoir l’enseigner, tu scales, c’est un truc de fou.

Et c’est toujours vrai aujourd’hui. J’ai l’impression que mon niveau en R est multiplié par deux tous les 6 mois. Ça fait longtemps que je fais ça, et à chaque fois je m’épate en me disant “Y’a six mois j’étais mauvais”.

J’étais pas mauvais, mais c’est cool parce que j’ai pris des skills et je tombe sur des codes où je peux comprendre, par exemple les trucs de bas niveau de Joe Cheng quand il part dans des délires. C’est super intéressant de pouvoir faire ça.

L’autre moitié, c’est de la presta : « On a une base analytique, on a 50 milliards, au sens propre, de glm à ajuster en génétique, y’en a pour 88 ans de calcul, est-ce que vous pouvez pas essayer de nous accélérer ça ? » Et donc oui on s’en occupe.

Mais c’est de plus en plus : « Bonjour on fait du SAS depuis 20 ans, on a 20 ans d’historique, on veut passer à R, on nous dit que c’était bien. Comment on migre tout ça ? » Il y a des migrations de code SAS.

Souvent, on ne prend pas le code SAS en tant que tel pour migrer parce que ça sert à rien, on va plutôt essayer de voir la personne qui l’a codé pour demander ce qu’elle prend en entrée et ce qu’elle veut en sortie, on recode et on repart de zéro. On livre des packages et on intègre les packages.

On est depuis un mois et demi maintenant certifiés par RStudio, et on est les seuls en France à être habilités et tamponnés RStudio pour installer toute la stack technique : Shiny Server, RConnect, etc.

Charles : C’est quoi cette certification RStudio ?

Vincent : J’ai envoyé Colin aux États-Unis se faire former. On bosse de manière très proche. Dès qu’il y a un francophone qui appelle aux Etats-Unis, ils disent « Appelle Vincent. » Je suis un peu le commercial RStudio.

Y’a pas d’exclusivité et je n’ai pas envie d’être full RStudio, je fais aussi beaucoup de shinyproxy à côté, j’adore ça, je continuerai toujours à faire du docker et et de l’open source. Mais, voilà, on marche bien avec RStudio.

Niveau consultance, on fait la partie hardware, la partie création de packages, et ce qu’on préfère vraiment c’est le côté « Bonjour on a besoin de R, du coup il y a une équipe de 30 personnes à former, il y a aussi un serveur à monter, il y a des outils à créer sur mesure pour les métiers ». Ça c’est vraiment de A à Z. Quand on a des missions comme ça c’est cool.

Contrairement à d’autres boites du même genre que nous, au sens large, on ne va pas en régie. C’est-à-dire que là on va recruter des gens dans la boite, mais le prochain il va pas rentrer chez moi pour ensuite passer trois ans chez EDF ou Sanofi.

Il va être comme moi sur 26 missions en même temps qu’il fera depuis chez lui, ou chez le client de temps en temps, mais c’est genre 1 ou 2 jours la semaine, et c’est du ponctuel. Y’a pas de « je te mets 3 ans là bas ». C’est plutôt une équipe de gens très compétents, très autonomes, et on bosse tous à distance.

Colin il est à Rennes, Sébastien il est à mi-temps entre l’Allemagne et Paris. Avant on avait Romain qui était à Montpellier, on a toujours eu l’habitude de travailler à distance, donc il faut des gens autonomes.

Pour l’instant on a de la chance. Notre métier c’est de faire des packages, et le weekend pour se détendre on fait des packages. Mais des packages funs ! Donc on est vraiment un peu bizarres dans le sens où j’ai que des passionnés dans l’équipe.

C’est vraiment ça que j’aime, le métier qu’on fait. J’adore. J’ai toujours fait ce métier là sans savoir.

Les missions qu’on m’a envoyées, même en terme d’analyses, je m’en fous un peu des données, je suis plus intéressé par faire un beau code, par le côté outil. C’est ça qui m’a toujours botté. Je suis très très content aujourd’hui qu’on vienne me chercher pour les aspects techniques.

Et dans l’équipe Diane et Sébastien sont très intéressés par les données. Colin et moi on s’en fout. On va plutôt chercher l’excellence ou la beauté du truc, c’est ça qu’on cherche à raffiner.

Charles : Comment est-ce vous vous définissez ? Une agence R ?

Vincent : On n’a pas vraiment d’homologue en France, ça c’est sûr. À l’international, on va avoir Appsilon avec qui on a des accointances. En Italie, y’a Quantide. À Londres, y’a Mango. En Allemagne, y’a Eoda. En France il n’y en a pas d’autre.

« Une agence R », j’sais pas. On peut dire intégrateur R. Une boîte de conseil ça veut tout dire et rien dire. On a vraiment un fonctionnement atypique, on est tous en remote, on fait pas de régie.

Moi pendant longtemps j’étais pas à Paris, j’étais à Caen. Je pense que dans ma vie, 80% de mes clients, je ne les ai jamais vus. J’ai bossé dix ans et j’ai tout fait par email.

C’était un caprice. « Non, je ne me déplace pas. Je reste à Caen. »

Maintenant que je suis à Paris, la boîte a carrément accéléré parce que oui, c’est plus facile.

Ça accélère les choses quand tu peux te déplacer et être au moins deux fois par semaine à la Défense et dans les différentes tours pour répandre la bonne parole.

Charles : Petites questions pour terminer : dplyr ou data.table ?

Vincent : Je suis bilingue.

Alors, l’intérêt de dplyr c’est que je peux l’enseigner à n’importe qui en deux heures.

J’ai déjà formé des grands débutants à data.table. Ça marche bien aussi, faut pas avoir peur de ça, il faut juste prendre le temps. C’est un peu plus long.

Je vais faire mes analyses en dplyr, et les goulots d’étranglement je les code en data.table. Pour les packages que je vais développer, ils vont être en R base avec un peu de dplyr.

En fait j’ai beaucoup d’anciens outils qui sont codés en dplyr et aujourd’hui je me retrouve embêté à devoir monter un truc d’il y a 4 ans parce que mutate_each existait pas, etc. Alors que si j’avais codé un lapply tout bête à l’époque, j’aurais pas autant de soucis.

Donc pour les outils, R base, pour les analyses, dplyr. En formation, je pousse dplyr à fond : c’est facile, ça marche, on sait le vendre. On fait du Rmd first, et dplyr first.

J’explique vite fait les vecteurs mais c’est pas ça qui est important. À la fin de la première journée, les gens savent importer des data, dplyr, et ggplot. Ça passe très bien.

Après, ça ne fait pas d’eux des développeurs, mais ça fait d’excellents utilisateurs. Et donc on est capable en 2 ou 3 jours de formation d’amener des gens qui peuvent ensuite rivaliser avec leurs collègues qui font du R depuis 5 à 10 ans mais à l’ancienne, qui font du code comme ça, des tartines que seuls eux peuvent comprendre.

La guerre dplyr vs data.table, ça me fait marrer. Y’a de la mauvaise foi des deux camps.

Charles : Un package préféré ?

Je dirais dplyr parce qu’il est vraiment au centre. Le couple tidyr-dplyr, je trouve qu’il répond bien aux besoins. J’ai fait beaucoup d’analyses de données avant qu’il y ait dplyr et toutes mes inits de fichiers sont des gros bouts de préparation & nettoyage de fichiers qui en fait maintenant tiennent en 2 lignes.

Ou alors, y’a beaucoup de fonctions sur dplyr que j’avais déjà codées au fur et à mesure, au fil de l’eau, maintenant je les utilise plus, mais clairement dplyr répond au besoin. C’est clair, c’est propre, et… on peut faire sans, tout le monde a fait sans, mais le fait qu’il soit là, ça change vraiment.

Donc c’est mon préféré à l’usage, et c’est aussi mon préféré parce que c’est celui qui fait que je peux arriver n’importe où dans une boite.

Même des gens qui sont réfractaires, qui sont là pour apprendre R alors qu’ils ne veulent pas, on les a forcés, on va leur retirer leur license SAS, je leur montre dplyr, et j’arrive à leur faire avoir des étoiles dans les yeux.

Il y a vraiment un effet « waouh » avec ce package là. Et y’a tout le tidyverse.

Charles : Que dirais-tu à quelqu’un qui ne connaît pas R et qui hésite avec Python ?

Alors : il n’y a pas de mauvais choix.

Je ne veux pas forcément encourager à utiliser R. Beaucoup de gens m’appellent au téléphone au moins une fois par semaine avec cette question là.

Mon discours est assez rodé, c’est : Peu importe, tu seras très content de ce que tu fais.

Python c’était mon premier langage, avant que ça serve à traiter des données. En fait, que tu fasses du R ou du Python, si tu es excellent dans l’un des deux tu pourras faire ce que tu veux.

Le Machine Learning sur R, ça ne pose aucun souci, même si Python est plus adapté à ça.

Après c’est vrai qu’il y a deux profils différents. Si tu présentes R à un informaticien pur et dur qui vient de Java, C++, etc. tu lui montres R, il va dire que c’est de la merde. Et il aura raison, c’est mal codé, y’a plein de trucs qui vont pas, du coup il va vouloir un language plus propre, plus noble et il fera du Python.

À l’inverse, quelqu’un qui vient de SAS, qui vient du métier, quelqu’un qui fait des stats, R est très accessible. Python pour calculer une moyenne, c’est pas si simple. R tu fais mean(ton truc), ça marche.

Donc R est plus accessible pour les gens du métier, pour les stateux. Et Python pour les gens de l’informatique.

Après ça converge tout ça, avec des packages comme feather, ou reticulate, ce genre de choses. Les formats de données convergent. Tu peux appeler l’un dans l’autre, l’autre dans l’un, et ça tourne bien.

Charles : Merci beaucoup pour cette interview !

Mis à jour :

Commentaires

Laisser un commentaire

Les champs obligatoires sont marqués *

Chargement...

Les commentaires sont validés manuellement. La page va se rafraîchir après envoi.