Les 8 commandements de la R&D chez Equisense 🐮 đŸ€“

Camille Saute
Equisense
Published in
10 min readAug 10, 2017

Ca fait maintenant 2 ans que je m’occupe de la dĂ©marche scientifique chez Equisense. Et comme toute start-up qui se respecte, on a eu quelques loupĂ©s 😅
 Il faut dire que contrairement Ă  de la R&D “classique”, le contexte startup induit une notion de temps trĂšs court âČ et avec des moyens limitĂ©s đŸ’” qui compliquent fortement la dĂ©marche.

Quand on te dit que tu as 3 mois pour sortir une nouvelle feature qui aurait pris 3 ans en recherche “classique” 


Le cĂŽtĂ© positif de ça c’est que chaque erreur ou â€œĂ©chec” est une source d’apprentissage fabuleuse. Comme on dit chez nous : Send Shit to Space !
đŸ’© → 🚀. VoilĂ  donc un petit florilĂšge de nos apprentissages en R&D et les outils qu’on a mis en place pour ne plus recommencer deux fois les mĂȘmes erreurs.

Hardware + cheval = double complexité

Notre particularitĂ© c’est que nous sommes une start-up hardware : nous dĂ©veloppons des objets connectĂ©s pour les cavaliers et leurs chevaux. Nous avons donc des prototypes Ă  base d’Arduino, avec des capteurs, des fils, des Ă©metteurs, des rĂ©cepteurs, avec du Bluetooth, du Wifi, des ordinateurs 
 On doit aller les tester sur le terrain 🐮 pour voir si ça fonctionne (donc prendre notre voiture, ce qui signifie avoir bien tout prĂ©vu Ă  l’avance et ne rien oublier), dans le sable ou dans la paille, avec l’odeur de crottin qui nous berce đŸ‘ƒđŸ’©, avec un cheval qui bouge dans tous les sens, avec tous ses poils qui nous compliquent franchement la tĂąche, le tout parfois dans des nuages de poussiĂšre qui nous projettent bien loin des salles blanches
 On doit comparer les rĂ©sultats qu’on obtient avec d’autres outils qui font foi (des gold standards) mais qui coutent souvent une fortune, donc on doit trouver des solutions alternatives, on doit faire des algorithmes de traitement du signal, les embarquer dans nos devices, vĂ©rifier qu’ils fonctionnent bien, que l’app dĂ©diĂ©e affiche bien les bons rĂ©sultats, etc. Tout ça est donc beaucoup plus lourd qu’une “simple” app Ă  faire tourner sur iOS et Android
 Ceci nĂ©cessite donc une organisation au poil 👌 dont je vais essayer de vous livrer quelques secrets ici.

©Equisense

#1 Un bon process tu auras 📝

Une bonne structuration des Ă©quipes (qui fait quoi) et une bonne planification (quand et comment) sont primordiales pour le bon dĂ©veloppement de produits complexes. De notre cĂŽtĂ©, voilĂ  comment on a organisĂ© les Ă©changes entre les diffĂ©rents “pĂŽles” :

Dans les faits, l’organisation est trĂšs fluide, la hiĂ©rarchie trĂšs horizontale et les pĂŽles sont constituĂ©s d’au maximum 3 personnes, mais le fait d’avoir une bonne structuration et un bon process qui soit Ă  la fois complĂštement viable, facile, utile et adaptĂ©, nous permet de bien gĂ©rer les Ă©changes, Ă©viter un tas de problĂšmes, mieux identifier d’oĂč viennent les erreurs et donc mieux les corriger, et anticiper les besoins de chacun.

#2 En Ă©quipe tu travailleras đŸ‘šâ€đŸ‘©â€đŸ‘§â€đŸ‘Š

On s’est rendu compte qu’on avait facilement tendance Ă  ĂȘtre chacun de notre cĂŽtĂ© malgrĂ© l’open-space que l’on partage (Ă  20
). Or, le partage d’informations et la remise en question permanente par ses pairs est complĂštement indispensable pour que les bonnes dĂ©cisions soient prises au bon moment et avec toutes les cartes en main.
On a donc dĂ©cidĂ© de mettre en place des petites rĂ©unions par Ă©quipe, type scrum/stand-up, toutes les semaines ou toutes les deux semaines. On a donc 1 scrum technique, 1 scrum marketing et 1 scrum R&D. Dans ce dernier, on rĂ©unit un mardi sur deux les product owners, les deux ingĂ©nieurs recherche, la designer industriel et l’ingĂ©nieur firmware dans une Ă©curie, face Ă  un cheval 🐮 pour pouvoir montrer les problĂ©matiques que chacun d’entre nous rencontre, tant dans les contraintes environnementales, matĂ©rielles ou design. En effet, la rĂ©alitĂ© est parfois bien loin du bureau, et pour ne pas ĂȘtre complĂštement Ă  cĂŽtĂ© de la plaque, c’est un petit effort qui finalement se trouve ĂȘtre bien utile. Et puis ça nous fait prendre le grand air, ça fait du bien 😉

#3 Des specs prĂ©cises et une roadmap tu auras đŸ—ș

Il nous est arrivĂ©, pour certains produits ou fonctionnalitĂ©s, de ne pas avoir de spĂ©cifications prĂ©cises, parce qu’on se l’était dit Ă  l’oral ou parce que ça nous semblait Ă©vident, ou parce qu’on ne voulait pas avoir de process trop lourds
 Au final on y a perdu beaucoup plus de temps.
On a donc mis en place d’une part une roadmap globale (trĂšs “big picture”), avec des jalons intermĂ©diaires, qui regroupe tous les produits que l’on dĂ©veloppe. A chacun ensuite de se responsabiliser et de s’organiser Ă  sa maniĂšre et avec ses outils pour respecter ces jalons, pour ne pas aller dans le micro-management, qui n’est pas vraiment notre tasse de thĂ©.
D’autre part, chaque produit a dĂ©sormais ses specs qui rassemblent les contraintes techniques et les usages de maniĂšre bien dĂ©taillĂ©e dans un document partagĂ©.
Dans les deux cas, les documents sont co-construits pour tenir compte des contraintes de chacun et pour prendre les bonnes décisions en tenant compte des restrictions que chacun émet.

#4 L’apprentissage des connaissances thĂ©oriques tu pousseras 📚

En voulant avoir “l’esprit de hacker”, on a eu tendance Ă  vouloir aller trop vite sur les prĂ©-tests et Ă  Ă©courter l’étape Ă©tat de l’art. On a donc Ă©tĂ© confrontĂ©s plusieurs fois Ă  des rĂ©sultats que l’on ne comprenait pas ou que l’on ne savait pas expliquer tout simplement parce qu’on ne s’était pas assez attardĂ©s sur les bases thĂ©oriques, physiques et chimiques de ce qu’on voulait mesurer. Or, on ne peut bien concevoir des tests que si on sait exactement ce qu’il faut aller chercher et comment.
On passe dĂ©sormais plus de temps Ă  lire des articles scientifiques, des livres spĂ©cialisĂ©s, Ă  regarder des vidĂ©os, des moocs, ou Ă  rencontrer des professionnels pour ĂȘtre sĂ»rs de maĂźtriser tous les phĂ©nomĂšnes sous-jacents.

#5 Du matĂ©riel de bonne qualitĂ© tu fabriqueras / tu utiliseras 🔹

De la mĂȘme maniĂšre, sous couvert de l’“esprit hacker” on a parfois voulu trouver des solutions trĂšs rapides mais pas du tout adaptĂ©es aux conditions “de l’extrĂȘme” que nous imposent les tests sur les chevaux. Or il est impossible de faire un test rĂ©pĂ©table ou bien d’isoler les diffĂ©rentes choses Ă  Ă©tudier avec du matĂ©riel non robuste, mal fixĂ©, qui tombe, qui fonctionne une fois sur deux ou que l’on n’a pas retestĂ© aprĂšs avoir fait des changements hardware.

Pour contrer ça, d’une part, on a mis en place des protocoles de tests “sur table”, que l’on recommence rĂ©guliĂšrement avant de partir sur le terrain, pour ĂȘtre sĂ»rs que tout fonctionne et que les rĂ©sultats soient cohĂ©rents dans un contexte parfaitement maĂźtrisĂ©. C’est comme ça que vous pourrez croiser Alice, notre ingĂ©nieur R&D, avec des Ă©lectrodes ECG collĂ©es partout sur le corps et autant de cĂąbles reliĂ©s Ă  son ordinateur, en train de sauter pieds joints devant son bureau, ou encore Kamel en train de faire des cercles “au pas et au trot” dans l’atrium qui jouxte notre open-space.
D’autre part, on a appris Ă  dĂ©gainer les outils de notre mini fablab, comme la machine Ă  coudre par exemple pour nous fabriquer des pochettes / tapis / sacs, pour garantir une stabilitĂ© parfaite de notre matĂ©riel lors des tests.

La machine Ă  coudre, notre alliĂ© numĂ©ro 1 pour rajouter cette magnifique pochette faite main, entiĂšrement tapissĂ©e de scratch Ă  l’intĂ©rieur, garantissant une stabilitĂ© parfaite de notre matĂ©riel. ©Equisense

Il vaut mieux passer 15 ou 30 min Ă  fabriquer du matĂ©riel robuste et adaptĂ© plutĂŽt que de casser nos prototypes, de biaiser nos tests Ă  cause des mouvements et d’ĂȘtre incapable Ă  la sortie d’identifier d’oĂč vient le problĂšme.

#6 Des tests structurĂ©s tu feras 📐 📏

LĂ  encore, il ne faut pas confondre vitesse et prĂ©cipitation. En voulant Ă  tout prix avancer sur le sujet, on s’est retrouvĂ©s parfois Ă  faire des tests sans avoir d’objectif vraiment prĂ©cis.

Voilà comment on procÚde désormais :
1) AprĂšs avoir Ă©pluchĂ© toutes les publis et tous les moocs disponibles sur le sujet en question, on dĂ©construit le problĂšme pour en comprendre toutes les composantes et identifier les zones d’ombres, les inconnues ;
2) On Ă©met des hypothĂšses ;
3) On fait un plan de pré-tests pour valider ou invalider les hypothÚses ;
4) On passe à la phase de pré-tests.

Concernant la phase de pré-tests, pour éviter les loupés on a mis en place certains outils qui se révÚlent plutÎt utiles :

  • Avant de partir sur le terrain on remplit un questionnaire Google Form sur lequel on explique le test qu’on va faire, pourquoi, comment, ce qu’on cherche Ă  obtenir comme rĂ©ponse, qui y va et quand. Et surtout, ce Google Form contient Ă©galement la checklist du matĂ©riel Ă  emporter, ce qui nous Ă©vite bien des dĂ©convenues. Ces formulaires sont automatiquement envoyĂ©s sur Slack grĂące Ă  Slackbot qui nous renvoie le bon lien et grĂące Ă  Zapier qui nous envoie un message quand quelqu’un a rempli le formulaire avec le lien vers les rĂ©ponses. GrĂące Ă  ça, tout le monde peut y jeter un oeil, ça nous aide Ă  garder du recul sur ce qu’on fait et ça nous oblige Ă  structurer notre dĂ©marche.
L’automatisation nous permet de garder une structure et limite les risques. ©Equisense
  • Au retour du test, mĂȘme procĂ©dure, on remplit le Google form de compte rendu qui nous demande ce qu’on a fait, ce qu’on a eu comme rĂ©sultat, pourquoi on a eu ces rĂ©sultats (ce qui nous oblige Ă  systĂ©matiquement challenger notre mĂ©thode et Ă  pousser plus loin la rĂ©flexion), quelle est la prochaine Ă©tape, etc. De la mĂȘme maniĂšre, les rĂ©sultats sont automatiquement renvoyĂ©s sur Slack pour que tout le monde puisse suivre et qu’on avance tous avec le mĂȘme niveau d’information.
Les comptes rendus sont simples mais structurĂ©s et nous permettent une meilleure transmission de l’info ©Equisense

Google Form est un outil parmi tant d’autres, mais il nous permet de capitaliser tous les rĂ©sultats en un seul document bien structurĂ©. Il est donc trĂšs aisĂ© pour quiconque de revenir voir quels tests ont Ă©tĂ© effectuĂ©s quand avec quel matĂ©riel sur quel type de cheval, les rĂ©sultats qui ont Ă©tĂ© obtenus, les conclusions qu’on en a tirĂ©es et donc d’identifier les zones d’ombre qu’il reste Ă  Ă©lucider, et de prendre les bonnes dĂ©cisions pour la suite.

#7 Beaucoup de donnĂ©es tu acquerras 📈

Mieux vaut un algorithme moyen avec beaucoup de donnĂ©es qu’un algorithme parfait avec trĂšs peu de donnĂ©es.

Ca on l’a expĂ©rimentĂ© aussi au tout dĂ©but de l’aventure. On avait commencĂ© Ă  dĂ©velopper certains algorithmes de dĂ©tection d’évĂ©nements sur seulement quelques datasets acquis sur des chevaux relativement similaires : ça marchait hyper bien ! Et puis on a lancĂ© la version beta sur une petite quarantaine de personnes 
 et ça marchait beaucoup moins bien 😞. MĂȘme si le rĂŽle de beta-testeurs consiste aussi Ă  challenger nos rĂ©sultats, on prĂ©fĂšre mieux tester en interne sur un maximum de chevaux diffĂ©rents, de taille et de poids diffĂ©rents, avec des locomotions diffĂ©rentes, dans des conditions diffĂ©rentes, pour essayer de ratisser le plus large possible avant la mise en prod de nouvelles features. Notre objectif c’est en fait de gommer les effets de bords et d’avoir suffisamment de donnĂ©es pour couvrir tous les cas ou presque, pour faire en sorte de crĂ©er un effet de lissage sur des cas qu’on n’aurait pas forcĂ©ment imaginĂ©s Ă  la base.

#8 Des golden samples tu crĂ©eras đŸ’»

En fait on s’est trouvĂ©s un certain nombre de fois face Ă  des diffĂ©rences de rĂ©sultats entre les algorithmes Matlab que l’on dĂ©veloppait en premier lieu et les algorithmes une fois passĂ©s en C et embarquĂ©s dans nos capteurs. C’est donc pour automatiser ce processus de testing, mieux maĂźtriser le taux d’erreurs et fiabiliser les versions que l’on met en prod, qu’on a mis en place le systĂšme de golden samples.

Le principe est simple. Prenons l’exemple suivant : je veux faire un golden sample pour valider l’algorithme de frĂ©quence cardiaque. Je vais alors poser notre systĂšme d’acquisition sur le cheval + un systĂšme qui fait rĂ©fĂ©rence (en l’occurrence le Televet 100 de la marque Engel Engineering Systems GMBH) et je fais les deux acquisitions en parallĂšle. Je vais ensuite rĂ©cupĂ©rer les donnĂ©es brutes de mon acquisition (l’ECG) et crĂ©er un fichier dans lequel je vais indiquer la frĂ©quence cardiaque calculĂ©e toutes les secondes par le Televet. On va ensuite dĂ©velopper un algorithme de calcul de la frĂ©quence cardiaque Ă  partir de l’ECG, que l’on va mettre dans la machine virtuelle. On fait ensuite passer l’ECG que j’ai acquis avec mon systĂšme dans la machine virtuelle et on compare les rĂ©sultats de l’algorithme avec les rĂ©sultats du Televet pour voir si l’algorithme est correct.

On a donc un jeu de datasets trĂšs hĂ©tĂ©rogĂšnes (toutes disciplines, tous types de chevaux, etc.), pour lesquels chaque indicateur est vĂ©rifiĂ© soit manuellement (pour les Ă©vĂ©nements ponctuels comme les sauts par exemple), soit grĂące Ă  des outils de type gold standard (comme le Televet). Les donnĂ©es brutes de ces datasets parfaitement labellisĂ©s sont envoyĂ©es dans une machine virtuelle (qui reproduit le comportement de notre device) qui nous permet de comparer les rĂ©sultats des algorithmes embarquĂ©s aux rĂ©sultats des golden samples. Si les rĂ©sultats sont identiques (ou que le taux d’erreur est dans la fourchette d’acceptabilitĂ©), on considĂšre que l’algorithme embarquĂ© est validĂ© et qu’il peut partir en version beta. Si les rĂ©sultats diffĂšrent trop alors on cherche point par point d’oĂč peut venir le problĂšme et on recommence la boucle une fois le problĂšme rĂ©glĂ©.

Take home message 🏠

  • Le fait d’ĂȘtre une startup et toutes les contraintes (âČ đŸ’” etc.) qui s’imposent n’empĂȘche pas d’ĂȘtre bien structurĂ©. Au contraire !!
  • La hiĂ©rarchie horizontale est compatible avec une structure et les process n’empĂȘchent pas la coolitude et l’agilitĂ©.
  • L’apprentissage et l’état de l’art n’est jamais une perte de temps 🎓 (d’ailleurs Ă  ce sujet je vous conseille vivement l’article de Benoit, notre CEO ❀ → “Hackez votre courbe d’apprentissage”).
  • L’esprit de hacker que l’on se doit d’avoir n’empĂȘche pas de faire du matĂ©riel robuste đŸ’Ș.
  • L’automatisation đŸ€– vous permet d’éviter bien des problĂšmes.
  • Sachez capitaliser et apprendre de vos erreurs. Et il n’est jamais trop tard pour faire une rĂ©trospective 
 mĂȘme au bout de 2 ans 😉

Et puisqu’on a parlĂ© d’une certaine forme d’échec tout du long, je ne peux m’empĂȘcher de vous conseiller plus que vivement la lecture du livre de Charles PĂ©pin “Les vertus de l’échec”. Je vous souhaite qu’il vous permette, comme je viens de le faire, de presque prendre du plaisir Ă  vous remĂ©morer vos erreurs passĂ©es, en espĂ©rant gagner en sagesse et tendre vers “l’authentique rĂ©ussite” ❀ 😉.

--

--

Camille Saute
Equisense
Editor for

Biomechanics and biomedical engineer @Equisense, France