Nous avons déjà discuté des fameux trois postes autour de la datascience dans un article précédent “Datascientist, focus sur un métier d’avenir”. Le machine learning engineer, le data engineer et le business analyst forment la pierre angulaire que constituent les trois compétences clés d’un bon datascientist. Mais je me rends aujourd’hui de plus en plus compte qu’un quatrième type de profil peut aider à promouvoir les uses cases d’un datalab.

Des uses cases :

  • agiles nécessitant de changer de paradigme brusquement
  • avec un effet wow immédiat notamment autour de la data visualisation
  • prototypés très rapidement afin d’ajuster l’alignement entre métier et data people
  • nécessitant toujours plus de technicité et de capacité de déploiement en production
  • utilisant parfois des technologies récentes peu documentées pour ne pas dire obscures

Ninja

Le rôle du data Ninja est de développer des prototypes rapidement en utilisant la data comme matière première.

Ninja Spirit S2

Quel état d’esprit pour un data Ninja ?

Comme on peut l’imaginer, le principal atout du data Ninja, c’est sa capacité à évoluer dans toutes sortes d’environnements peu ou non balisés à l’avance en terme de technologie, d’expression de besoin métier ou de data. Le Ninja n’a pas peur d’entreprendre une expédition avec un risque d’échec important car il sait que la mission est difficile et la gloire importante à l’arrivée.

Cette état d’esprit combatif et résilient contraste avec la situation psychologiquement confortable du développeur “traditionnel” protégé derrière son manager et le cahier de spécifications. Le Ninja apprécie d’avancer dans l’inconnu car il sait que c’est parfois le seul moyen de délivrer de la valeur rapidement.

Parallèlement à son côté aventurier, le data Ninja est agile et donc capable de changer de direction rapidement en fonction des contraintes techniques ou métier qui peuvent apparaître pendant la durée du prototypage. L’agilité technologique consiste en une remise en question permanente sur les outils utilisés puisqu’on est en phase de prototype. Développer plusieurs versions en même temps peut parfois être la stratégie la plus efficace pour arriver à un résultat satisfaisant en un minimum de temps. Savoir abandonner rapidement une piste pour en explorer une autre est aussi un trait primordial pour réussir ses prototypes.

Soft Skills S3

Le data Ninja a trois soft skills essentiels :

  1. Il est d’abord un artisan du code, un software craftmanship. Ce n’est pas parce que sa spécialité est le prototypage que ce qu’il développe doit être jeté. Il donne une attention particulière à chaque ligne de code et à l’architecture globale de ses programmes. Il anticipe les problématiques lors d’un passage en production (en terme de montée en charge ou de déploiement technique). Le craftman est fier de son code et n’hésite pas à le partager et le défendre devant les autres.
  2. Le Ninja apprend vite. Que ce soient des frameworks, des langages de programmation ou simplement des astuces améliorant la productivité, il est capable d’étendre ses limites et ouvrir ses chakras pour profiter au mieux des dernières avancées technologiques. Sans tomber dans le piège du last framework/programmation langage frenzy, il n’hésitera pas à évaluer la possibilité d’utiliser une techno open source peu documentée par exemple.
  3. Sans tomber dans l’isolement par rapport à son contexte managérial et d’équipe, un Ninja sait s’organiser, structurer ses idées et établir la manière la plus efficiente d’atteindre ses objectifs. En ce sens, il doit être plutôt indépendant, une sorte d’électron libre capable d’évoluer en prenant ses propres décisions. Il a une bonne idée, demande trois jours à son manager pour produire de la valeur sans justification préalable, se renseigne auprès des collègues sur quelques prérequis et fonce. Better to ask for forgiveness than permission.

Le data Ninja apprécie l’effet wow que ce soit au niveau de la rapidité d’exécution que sur la qualité graphique de son travail. Cet effet wow doit être un énergisant quotidien qui le pousse à se perfectionner et être plus efficace.

Hard Skills S2

Le data Ninja n’est pas forcément un expert dans tous les hards skills suivants, mais doit en maîtriser les bases tout en ayant à coeur d’approfondir ses connaissances lorsqu’une situation compliquée se présente (typiquement, on se rend compte qu’on ne maîtrise pas assez sed pour faire telle chose, au lieu d’aller vers la facilité avec python, on essaye de creuser un peu le manuel unix et stackoverflow).

  • Côté frontend, on apprécie tout particulièrement une bonne connaissance de javascript et des librairies jQuery, jQuery datatables et des sympathiques libraries de data visualisation d3.js, dc.js, highcharts. Bokeh et Shiny sont un plus non négligeable quand il s’agit de sortir en un temps record un graphe avec un minimum d’esthétique.
  • Côté backend, il faut savoir produire des APIs sans trop de prise de tête. Niveau python, Flask et django sont idéaux pour ça. Niveau JVM, Spring Boot est parfait pour être au plus près des technologies DSI-compatibles, mais sans oublier le Play Framework (java/scala). Pour un prototype, pas vraiment besoin d’aller plus loin.
  • Concernant les bases de données, il n’y a pas de prérequis sinon connaître les rudiments SQL et saupoudrer d’un peu de Mongo car on apprécie toujours autant la vivacité d’une base clé-valeur/document.
  • Enfin, pour retoucher la donnée (formats, encodings, libellés, structure etc.) il est fortement conseillé de bien connaître pandas/python et les commandes classiques de manipulation de données sous Unix (cat/grep/cut/sed/awk/join/wc etc.)

Conseils random

Je ne m’adresse pas spécifiquement au data Ninja mais plus généralement aux nouveaux métiers autour de la donnée. Soyez sans cesse curieux, insatiables en expérimentations et en lectures diverses et farfelues. Le cerveau fonctionne par association et passé un certain threshold de connaissances (pratiques et théoriques), les idées se structurent de plus en plus facilement et tout devient plus clair. J’ai par exemple pris l’habitude de ne rater quotidiennement aucun article de Hacker News spécialement les commentaires.

Les technologies évoluant vite, il faut sans cesse être à l’affût d’une pépite qui émerge sur github d’une part pour comprendre les raisons de sa popularité et d’autre part pour identifier les opportunités de résoudre un problème déjà identifié dans son travail. Je dis cela mais il ne faut pas non plus se jeter sur toute nouveauté comme si elle résolvait tous les problèmes. Les projets récents sont souvent très incomplets en features production-ready et on ne le découvre que bien trop tard après livraison du code pour déploiement. Les Trending GitHub sont à explorer de temps en temps.

Il me semble plus intéressant de maitriser 10 outils à 10% qu’un seul à 100%. En pratique, la règle des 80/20 fait qu’il faut autant de temps pour passer de 0 à 50% dans une techno que pour passer 50% à 60% (ordre de grandeur non contractuel). Donc en pratique, les gens maîtrisent 10 outils à 50% versus un expert qui en maîtrisera 2 à 90%. Personnellement, j’essaye d’appliquer ce principe au maximum ce qui a fait de moi un expert en rien mais connaisseur en beaucoup de choses. Cela dépendra certes des profils mais la productivité émerge plus souvent du choix du bon outil que du fait de forcer le mauvais outil pour un use case même si on le maîtrise mieux.

Précision importante

En disant “le data Ninja”, je pense fortement à “la data Ninja” (il y a un terme consacré apparemment “Kunoichi” くノ一 en japonais mais à priori dégradant). Nous avons besoin de plus de femmes dans la tech et rien ne permet d’affirmer que ce type de poste sied plus à la gent masculine.

Credits

https://unsplash.com

  • Photo by Manish Sethi on Unsplash