l’agilité, le devops, et maintenant Accelerate.
Accelerate est le titre d’un livre paru en Avril 2018 qui démontre, chiffres à l’appui, que la performance logicielle est déterminée par la faculté à livrer le plus souvent possible. Faire mieux, plus vite et à l’échelle, c’est une réalité accessible : pour y arriver, ce livre donne 24 capacités concrètes à mettre en œuvre dans votre organisation, des tests automatisés à la réduction de la taille des projets ou tâches en passant par la transparence de l’information et le découplage de l’architecture. Ce livre est une des sources d’inspirations importantes d’OCTO depuis 1 an.
Pour "accélérer" vos delivery de Data Science vous pouvez commencer par mesurer les quatres métriques proposées :
La deuxième étape consiste à identifier où est-ce que vous devez vous améliorer en premier, pour cela, nous suggérons de répondre, en équipe, à l’accelerate quick survey. Afin d’identifier les capacités où vous pouvez vous améliorer le plus.
La troisième étape consiste à choisir une ou deux capacités, de préférence technique pour commencer (car plus simple à mettre en place), afin de commencer à accélérer vos projets.
Même si le livre est principalement tourné autour du développement logiciel, et malgré les spécificités présentées ci-dessus, nous avons trouvé qu'il s’applique également très bien au projet de Data Science. Nous vous proposons de discuter avec votre équipe de comment les capacités que vous avez sélectionnées se déclinent sur votre projet.
4. Maîtriser la complexité des systèmes de Data Science
La Data Science est un domaine complexe, ne le compliquons pas inutilement.
Les Data Scientists ont parfois tendance à aller chercher des algorithmes élégants, complexes, à l’état de l’art en oubliant d’essayer des choses simples. Souvent une règle métier codée en dur permet d’avoir une performance suffisante ou peut au moins servir de référence. Nous ne sommes pas tous un géant du web, nous n’avons pas tous besoins de solutions hyper pointues pour résoudre nos problèmes. D’ailleurs, dans cet article, Google recommande de commencer par des solutions sans Machine Learning.
Un exemple de règle métier simple pour commencer en prédiction météo est de prédire pour demain la météo du jour. Cela s’appelle la méthode de persistance. Elle est performante à 70%.
Pour faciliter la mise en production, pour augmenter la maintenabilité, l’auditabilité et l’explicabilité du système, il faut s’assurer que l’on a le niveau minimum de complexité nécessaire pour atteindre les objectifs. Cela rappellera sans doute au lecteur le rasoir d’Ockham, ou le lean qui vise une production sans déchet. Cependant, faire des choses simples et minimalistes est un exercice long et difficile. Blaise Pascal disait “Je vous écris une longue lettre parce que je n'ai pas le temps d'en écrire une courte.”
Une méthodologie pour maîtriser la complexité du système pourrait être de :
Pour mesurer la performance, il est souvent nécessaire de faire interagir le système avec des utilisateurs. Nous vous encourageons à le faire dans la conviction “L’UX au service de la Data Science qui marche”. Cependant, pour éviter de mettre à disposition de milliers d’utilisateurs une solution non fonctionnelle ou pas assez performante, il est possible de mettre en production le système auprès de quelques utilisateurs pilotes. Veillez, dans ce cas, à définir une performance minimale nécessaire à atteindre pour déployer la solution auprès de tous les utilisateurs.
En ayant eu cette démarche, l’équipe est capable de tracer un graphique de performance du modèle au fil des expérimentations. Le graphique ci-dessous, certes un peu idéalisé, représente sur l’axe des abscisses le temps, sur l’axe des ordonnées la performance du modèle, en bleu la performance du système, en orange la performance minimale pour déployer à tous les utilisateurs.
Figure : Graphique performance au fil des expérimentations
Lorsque la performance minimale est atteinte, le système est mis à disposition de la totalité des utilisateurs (et non plus uniquement des utilisateurs pilotes). Une fois cela fait, il est possible de continuer à expérimenter pour améliorer le système. Finalement, lorsque les nouvelles expérimentations n’apportent plus de gains significatifs, l’effort de développement se concentre sur le maintien de la performance dans le temps (monitoring, réentrainement) et sur d’autres projets.
Partager le graphique proposé ci-dessus permet d’établir une transparence entre l’équipe de développement et le métier et peut permettre un arbitrage entre l’investissement dans une nouvelle expérimentation et le développement de nouvelles fonctionnalités.
5. Constituer des équipes autonomes et responsables sur tous les pans du projet
Combien de temps avez-vous passé au cours de votre carrière à vous aligner avec des dizaines d’interlocuteurs pour essayer de faire avancer un projet ? Combien de projets avez-vous connus où tous les interlocuteurs avaient des enjeux différents, des roadmaps différentes ?
Une façon de faire pour favoriser l’alignement est de rassembler tous les faiseurs dans une seule équipe, que l’on pourra appeler squad par exemple. En fonction du sujet à traiter, la squad intègre un ou plusieurs Data Scientist, Data Engineer, Ops, Product Owner, UX, développeur full stack, etc.
Cette squad est dans la mesure du possible colocalisée, elle travaille sur un seul projet pendant une durée déterminée et est alignée sur un seul objectif : livrer une solution utilisée qui apporte réellement la valeur espérée.
En cas d’équipe distribuée géographiquement ou forcée de télétravailler, les pratiques suivantes peuvent permettre de simuler la colocalisation : deux daily plutôt qu’un seul, avoir un salon vidéo où les membres de l’équipe peuvent se retrouver à tout moment, digitaliser la totalité des outils, … Une équipe d’Octo a fait un retour d’expérience approfondi sur ce sujet dans cet article de blog.
Pour permettre à l’équipe d’avancer, il convient de lui donner de l’autonomie sur son périmètre, quitte à le réduire et à limiter les dépendances. L’autonomie doit également porter sur les outils (ex : compte administrateur, accès à des bacs à sable, des serveurs de calcul, accès aux données, etc.)
Une des tâches des leaders est alors de s’assurer, voire d’augmenter l’autonomie des équipes.
6. Centraliser ? oui, mais pour mieux diffuser !
Vu le rôle de plus en plus prépondérant et critique (pour ne pas dire politique) que prend la Data Science dans les entreprises, il n’est pas rare d’assister à des débats passionnés sur le positionnement dans l’organisation de la Data Science. Côté Métier ? Côté IT ? Dans une organisation transverse dédiée ? Dans un incubateur ?
Il n’y a pas de réponse absolue à cette question tant cela dépend du contexte et des ambitions de chaque organisation. À l’extrême, pour les quelques entreprises possédant déjà une très forte culture data, chez qui la Data Science fait partie intégrante de la chaîne de production, centraliser les compétences Data Science au sein d’une équipe va sembler farfelu. Alors que pour toutes les autres, une réponse souvent observée dans les entreprises françaises est précisément la création d’une équipe dédiée en central : le fameux Datalab.
Il convient alors de bien identifier les opportunités et les risques qu’offre une centralisation des compétences dans une équipe dédiée de ce type.
Il faudra notamment être très vigilant au syndrome “Tour d’Ivoire” qui sera le destin naturel d’une équipe de “Data Scientists col-blancs” si aucune énergie n’est déployée pour la contrer.
On peut y voir un précédent pas si ancien avec les cellules d’architectures transverses mis en place il y a une quinzaine d’années. “L’architecte, c’est rare, c’est important et c’est différent de ce qu’on a l’habitude de faire”. Pas besoin d’en dire plus pour créer une toute-puissante cellule d’architectes transverses qui passe la plupart de son temps à réfléchir à des normes souvent perçues par les projets comme hors-sol ou tout du moins contraignantes. On en oublie vite les rôles fondamentaux de ces cellules transverses, à savoir à court terme, communiquer, diffuser, aider les projets ; à plus long terme, transformer.
S’il convient dans nombre de contextes de centraliser les Data Scientists au sein d’un Datalab, il faudra prendre des mesures énergiques pour éviter ce syndrome. Comme évoqué plus haut, communiquer, diffuser, aider les projets à aller jusqu’en production ou encore animer une communauté doivent faire partie intégrante de la mission du datalab; transformer l’organisation encore plus.
Une autre façon de lutter contre ce syndrome pourrait être d’intégrer des Data Scientists dans des projets informatiques classiques où ils auront le rôle d’identifier des poches de valeur ajoutée ou de résoudre certains problèmes avec de la Data Science et les implémenter.
Dans tous les cas, le sens même d’une équipe Data Science en central doit régulièrement être questionné. Il serait même sain de donner au Datalab l’objectif de s’auto-disrupter, signe de sa contribution réelle à la transformation globale de l’entreprise.
7. Progresser ensemble
Actuellement, il est difficile de recruter des profils expérimentés en Data Science, Data Engineer, etc. car le marché est très tendu : beaucoup de demandes et peu de profils. Des formations se sont développées à partir de 2014 - 2015 il y a donc un principalement des profils débutants sur le marché.
Les défis “ressources humaines” des organisations sont alors de conserver les talents, de faciliter la transmission du savoir entre les profils expérimentés et les profils jeunes ou en reconversion. Ces deux défis peuvent être adressés en leur permettant de former et de se former.
Nous sommes convaincus que la meilleure façon d’apprendre, c’est à travers les autres. Pour que nos consultants apprennent de leurs pairs, nous avons mis en place les pratiques suivantes :
Ces pratiques, qui nous permettent de progresser, d’avoir des consultants toujours plus compétents, de fidéliser les salariés, peuvent aussi s’appliquer dans votre organisation. Prenez le temps de réfléchir à vos façons de progresser, et comment vous pourrez les améliorer.
8. L’UX au service de la Data Science qui marche
“Les utilisateurs ou leurs représentants et les développeurs doivent travailler ensemble quotidiennement tout au long du projet.” - 4ème principe du manifeste agile
Le marché de la Data Science a eu plusieurs phases : la découverte, les POCs pour prouver la valeur, l’industrialisation pour rendre reproductibles nos processus, et en ce moment les problématiques de mise en production pour les rendre accessibles aux utilisateurs. Le prochain sujet : l’utilisabilité et l’utilisation de nos solutions.
Pour garantir que nos projets soient utiles, utilisables et utilisés, la meilleure façon de faire est d’embarquer les utilisateurs (les vrais, pas des proxys) tout au long du projet, notamment en leur proposant d'interagir avec le système en construction. Les objectifs sont d’obtenir rapidement du feedback sur la solution produite et d’identifier les transformations que cela va impliquer sur leur quotidien.
Pour impliquer les utilisateurs, il vaut mieux mettre entre leurs mains la solution (même si elle n’est pas parfaite) plutôt que de se contenter de leur faire des démonstrations ou de faire des hypothèses non vérifiées sur leurs comportements. Cette façon de faire est complètement liée avec la conviction “livrer continuellement un petit incrément de valeur en production”.
Ainsi, les équipes de Data Science doivent être centrées utilisateurs et interagir régulièrement avec eux afin de développer l'empathie et répondre de manière appropriée en lien avec le besoin réel et applicable. L’UX (la personne) avec son expertise en psychologie cognitive et en design d'interactions peut apporter beaucoup de recul et de connaissance utilisateurs.
Figure : Différence entre l’expérience utilisateur et le design (source de l’image)
Le changement apporté par des solutions de Data Science dans le quotidien des utilisateurs peut être inquiétant. Embarquer les utilisateurs dès le début du projet permet de réduire ces inquiétudes en les rendant acteurs de leur disruption.
9. Construisez ce que vous voulez maîtriser
Le débat build vs buy a fait couler beaucoup d’encre : vaut-il mieux développer son propre logiciel/service en custom ou choisir un progiciel pré-packagé ?
Pour diverses (et souvent mauvaises ...) raisons, beaucoup d’organisations ont plutôt fait le choix de penser progiciel-first à chaque fois qu’un besoin est exprimé.
On retrouve ce vieux réflexe dans le domaine de la data et de la Data Science. L’effet combiné de la complexité du sujet et de la pression marketing permanente pousse beaucoup à abandonner très vite la piste développement custom. On part alors sur un autre combat et non des moindres : faire son choix dans l’offre pléthorique des acteurs data/IA.
Souhaiter bénéficier de la capitalisation et la R&D d’un acteur qui semble maîtriser le sujet est un argument de poids. Il convient toutefois de rappeler 2 points, notamment pour ceux qui comptent sur la data pour être un nouveau relais de croissance et pour qui celle-ci devient un asset stratégique :
À l’inverse, on peut être tenté de développer plus de choses par soi-même pour se différencier de la concurrence. Là encore, on essayera de trouver le juste équilibre : on ne va pas en 2021, à moins de le justifier comme il se doit, développer sa propre librairie de manipulation de data frame ou son framework de deep learning.
Pour trouver cet équilibre, on pourra par exemple regarder du côté de l’open source l'émergence de standards. Bien que l’open source ait souvent été vu comme le chevalier blanc face aux méchants éditeurs logiciels, il convient là aussi de faire attention. L'écosystème est encore en pleine structuration, des nouveaux outils/frameworks apparaissent (et disparaissent !) tous les jours. Il suffit de voir le destin d’Hadoop qui était le porte-drapeau de l’innovation data il y a peu et qui aujourd'hui est lentement en train de rejoindre le cimetière des éléphants.
Choisir un outil open source qui sera central pour le datalab peut relever ainsi du pari. On peut maximiser ses chances d’avoir misé sur le bon cheval en :
Peu importe le choix que vous ferez, il restera toujours le risque de devoir, un jour, changer de framework. Miser en premier lieu sur les compétences de l’équipe est le meilleur moyen pour apporter une forme de résilience par rapport aux choix technologiques.
10. Métier et Data Scientist ont les mêmes objectifs
De l’idée jusqu’à l’utilisation en production des prédictions permettant des gains pour l’entreprise, les Data Scientists et le métier doivent travailler main dans la main.
Dès la phase amont, ne serait-ce que pour trouver les bonnes idées pour innover, Data Scientists et métier doivent trouver un terrain fertile et une compréhension mutuelle suffisante pour éviter deux écueils :
Chacun doit faire preuve de la pédagogie nécessaire pour appréhender le métier de l’autre. Le Data Scientist doit comprendre le déroulement concret des processus métier dans lequel s'insère son futur développement. Le métier doit comprendre les possibilités concrètes d’une démarche Data Science ainsi que ses limites.
Finalement, il existe énormément d'étapes qui nécessitent un réel travail d’équipe entre Data Scientist et métier (à tel point que le travail isolé de chaque partie est un symptôme très fort de dysfonctionnement) :
Sur ce dernier point, rappelons qu’on ne doit pas choisir uniquement une fonction de coût maîtrisée par l’équipe, mais bien celle qui optimise le processus métier. Une fois que le métier a défini ses objectifs, on s’assurera de choisir, développer s’il le faut, la fonction de coût qui nous assurera que chaque optimisation correspond réellement à un gain opérationnel.
Enfin, on n’oubliera pas que la somme des optima locaux n’est pas l’optimum global. On peut facilement trouver des cas où optimiser localement une étape de processus peut dégrader considérablement la chaîne de valeur (ex. en marketing, cibler trop fréquemment par des communications/publicités son client peut accroître temporairement les ventes, mais dégrader la satisfaction et donc l’optimum global).
Là encore, métier et Data Scientists travaillent ensemble pour s’assurer que la Data Science sert de la façon la plus efficiente possible les objectifs stratégiques de l’entreprise.
CONCLUSION
Chez OCTO, nous sommes ravis de constater qu’au fil des années, le champ lexical et les préoccupations du Data Scientist s'enrichissent. Depuis la recherche absolue de performance algorithmique dans son coin, le Data Scientist a bien évolué : il travaille maintenant en équipe, il discute avec ses utilisateurs, fait du vrai code qui va en production et sait de plus en plus expliquer ce qu’il fait.
2021 sera sans doute une année bien occupée à digérer tous ces nouveaux concepts. Et encore, pour ne pas alourdir ce menu déjà bien complet, nous vous avons épargné cette onzième conviction qui pour le moment tiendrait plus du choc : il est grand temps de s’intéresser à l’empreinte carbone du Machine Learning. Nous en reparlerons bientôt.