AccueilA proposContact

Qu'est-ce que l'expérience développeur (DevEx - DX) ?

Par Franck Anso
Publié dans Management
25 août 2022
6 min

Les développeurs compétents semblent être toujours insatisfaits. Du coup, vous pourriez partir du principe qu’ils sont remplaçables mais vous risquez d’avoir quelques déconvenues. D’une part, vous allez rencontrer des difficultés à trouver la bonne personne et d’autre part vous allez certainement finir par prendre une personne moins expérimentée et on ne parle même pas des connaissances de votre produit qui seront perdues…

Si vous appréciez l’équipe expérimentée que vous avez vous devriez envisager de travailler sur ce que l’on appelle l’expérience développeur pour les garder.

Illustration

Qu’est-ce que l’expérience développeur ?

L’expérience développeur est une approche de management basée sur la question : “Comment pouvons-nous rendre une journée normale meilleure pour nos développeurs ?“.

Pour vous donner une meilleure idée de ce que c’est, vous pouvez le comparer avec l’expérience utilisateur (UX). Avec la montée d’Internet, les gens ont découvert la liberté de choisir entre de nombreux services. Maintenant, il est impensable pour un produit digital de ne pas avoir une bonne expérience utilisateur.

L’UX s’intéresse aux utilisateurs. Le DX s’intéresse aux développeurs.

Trois problèmes auxquels les développeurs sont confrontés

Il arrive souvent d’entendre les questions suivantes :

  • Pourquoi nos projets devraient être attractifs pour les développeurs ?
  • Pourquoi ont-ils besoin de quelque chose vu qu’ils sont payés ?

L’argent n’est pas suffisant pour conserver les meilleurs développeurs et les rendre productifs. Il faut retirer les obstacles qu’ils rencontrent.

Spaghetti code

Que va-t-il se passer si vous décidez de reconstruire de zéro un système d’une dizaine d’années qui n’a subi que peu d’entretien ou dont l’équipe était trop petite pour pouvoir tout gérer ?

Rebâtir des projets avec une logique imprévisible ou non documentée peut être effrayant. Les développeurs, surtout si la lassitude pointe, s’enfuiront à la première occasion. Quant au fait de devoir corriger des bugs dans du code legacy, il est plus facile de dire “au revoir”.

Dans le même registre, les différences de style de code sont inévitables mais cela devient ingérable si chaque développeur doit travailler avec cinq syntaxes ou trois méthodes de nommages différentes.

Travailler sur des technologies en fin de vie

Les développeurs sont des personnes à l’écoute des tendances. Ils veulent travailler avec des technologies qui vont leur simplifier la vie.

Ils vont revenir d’une conférence, lire un article ou regarder une vidéo. Ils vont être enthousiastes et vont vouloir le partager avec le reste de leur équipe en expliquant que cela leur permettra de résoudre toutes leurs complexités. Malheureusement, le CTO va dire que même si cela a du sens, ce n’est pas la priorité ou bien que le système est trop rigide pour le mettre en œuvre de si tôt.

La plupart de ces refus seront bien acceptés mais créerons un sentiment de stack technique inflexible qui va s’amplifier au fur et à mesure du temps. Au final, cela poussera vos meilleurs développeurs à aller voir ailleurs.

Des outils et du matériel dépassés

Cela ne viendrait à l’esprit de personne qu’un professionnel de la restauration cuisine avec du matériel grand public. Il en va de même pour vos équipes. Il leur faut du matériel professionnel de qualité.

De votre côté, vous vous y retrouverez rapidement. Prenons l’exemple d’un développeur qui compile son code 10 fois par jour à raison de 120 secondes par construction. Il perd 20 minutes par jour à regarder son code compilé. Si vous lui donnez une machine qui abaisse ce temps à 60 secondes. Vous allez faire gagner plus de 34 heures par an de productivité par développeur. La rentabilité de la machine sera vite amortie…

Il en va de même pour toute la chaîne de production : IDE, CI/CD, infrastructure, services externes, etc. De bons outils sont des crises de nerfs en moins pour vos développeurs et de la productivité en plus pour vous.

Des conditions de travail difficiles

Les développeurs recherchent un environnement sain dans lequel évoluer. Ils veulent avoir le droit à l’erreur et être dans une culture d’entraide.

Voici quelques indices que votre environnement de travail présentent une mauvaise expérience développeur :

  • Pointer du doigt : Les membres de l’équipe se blâme les uns les autres.
  • Pénalité pour un échec : Les développeurs subissent des remontrances lors d’un échec.
  • Surcharge des équipes : Les délais courts mettent sans cesse les équipes sous pression.
  • Compétitivité malsaine entre les équipes : Des personnes sont promues sans raison apparente.
  • Responsabilité diluée : Il arrive souvent que l’on arrive à un point où personne n’est jamais responsable de rien. Quand une erreur est commise, la personne et/ou l’équipe doit endosser la responsabilité.

Gardez toujours en tête que le remplacement d’un développeur est difficile. Même en termes de coût et de temps, il fait bien plus sens de chouchouter les développeurs que vous avez plutôt que d’en trouver d’autres. De plus, les nouveaux auront certainement les mêmes exigences à terme…

L’expérience développeur avec l’extérieur

Aujourd’hui, il y a un nombre croissant d’API disponible. Même le nombre de produits dans le même secteur ne fait que croître. Par exemple, il existe plus de 25 services rien que dans le secteur des CRMs.

Ce foisonnement de possibilité signifie que les entreprises doivent se battre pour survivre et le produit qui gagne sera celui qui aura la meilleure expérience développeur. Améliorer l’expérience revient à avoir plus d’utilisateurs et donc plus de ventes.

De nos jours, il n’est plus suffisant de faire simplement une documentation d’API. Le marché s’attend à avoir une expérience intuitive et autonome. Voyons quelques moyens d’y parvenir.

Améliorer l’accessibilité

Le processus d’onboarding de votre produit doit être intuitif. Il ne doit pas y avoir la nécessité d’une intervention humaine. De l’onboarding à la génération de clé d’API, l’intégration et la maintenance tout doit être compréhensible pour un nouvel utilisateur.

Pour cela, vous devez améliorer la documentation, mettre à disposition un bac à sable automatiquement connecté avec les clés d’API du compte pour pouvoir tester rapidement.

Permettre de s’inscrire sans carte bleue sur un free tier permet d’améliorer considérablement l’onboarding.

Avoir des fonctionnalités bien pensées

Les développeurs intègrent des APIs pour éviter de devoir recréer la roue ou bien de profiter de l’expertise d’une autre société dans un domaine qu’ils ne maitrisent pas correctement.

Par conséquent, les fonctionnalités accessibles via API doivent être stables et prévisibles. L’API doit fonctionner comme elle a été documentée car les incohérences entre la documentation et la production peuvent être très dissuasives.

Les messages d’erreur lisibles par un développeur sont également essentiels pour diagnostiquer rapidement les demandes ayant échoué.

Respectez vos SLA et soyez transparent

Vos APIs doivent être fournis avec un accord de niveau de service (SLA) et s’efforcer de les respecter.

Pour information, la plupart des fournisseurs d’API proposent des SLA avec au minimum trois neufs (99.9%) voir plus et des temps de réponse moyen entre 200 ms et 500 ms.

Il est également essentiel de surveiller vos services, de donner la possibilité aux développeurs d’en faire de même et d’avoir des rapports d’état transparents. Lorsque des erreurs se produisent, prévenez vos utilisateurs au lieu de les laisser dans le noir.

Utilisez des normes de conception moderne

Personne n’a envi de se retrouver à utiliser une API SOAP servant du XML. Cela semble dépassé. Les développeurs veulent être a minima à l’état de l’art et dans l’idéal être poussés à découvrir de nouvelles technologies.

En ce sens, des technologies d’API comme REST, GraphQL ou gRPC paraissent plus attractives.

Proposez un dashboard

Une API seule n’est pas suffisante. Vous devez proposer en plus de la documentation, un portail développeur complet permettant de gérer facilement la création de clé d’API, de suivre la consommation, de gérer la facturation ou de configurer les features.

Un dashboard doit également permettre de suivre les logs d’appels API, d’aider au débuggage et de suivre les modifications apportées par les autres membres de l’équipe.

Protégez les données

Vous devez assurer à vos utilisateurs que vous allez protéger leurs données comme si c’étaient les vôtres. Montrez-leur que vous êtes en accord avec des régulations comme la RGPD en Europe.

Quelques exemples d’expérience développeur de qualité

Amazon Web Services (AWS)

Lorsqu’il s’agit de créer des communautés de développeurs, AWS est sans égal. D’une part, le programme AWS Heroes mets en avant des ingénieurs AWS spécifiques, transformant des clients en stars dans un format de blog et de podcast. D’autre part, il existe énormément de ressources dans tous les langages, un subreddit dédié, des forums et une formation vidéo en direct.

aws

Square

Square est une solution de paiement très populaire. Il offre une manière innovante d’explorer son API. En plus de la typique documentation trois-colonnes, Square a aussi créé un explorateur d’API réactif. Grâce à des menus déroulants, les développeurs peuvent sélectionner l’API, la méthode et la langue préférée. Les utilisateurs peuvent insérer une clé d’API pour exécuter les requêtes en sandbox ou production.

square

bit

Bit est une plateforme facilitant l’implémentation du principe de micro-frontend. Dès l’arrivée sur leur site web, ils présentent au survol de la souris les différents composants qui constituent la page. Ces composants sont accessibles à tout le monde et chaque développeur peut ainsi voir comment ils ont été codés. Cela permet aux développeurs de se faire une vraie idée sur un cas réel de se propose le service. La lecture de la documentation et des articles de blogs font plus facilement écho ensuite.

bit

Comment je peux vous aider ?

Créer une expérience développeur interne et externe de qualité peut être une tâche difficile dans laquelle vous pouvez facilement vous perdre.

N’hésitez pas à me contacter pour que l’on mette ensemble un plan d’amélioration continue.


Tags

#management
Previous Article
Comment migrer une base de données sans downtime ?

Catégories

Management
Tech
UI/UX

Publications liées

Qu'est-ce que Scrumban ?

27 sept. 2022
5 min

Liens rapides

Social Media