Naviguer jusqu'au contenu principal

Une année avec Dev Mode : 10 enseignements tirés par un engineering manager

Laurent ThiebaultEngineering Manager, Decathlon

Après l'intégration de Dev Mode au workflow de notre design system, j'ai rassemblé les idées importantes pour utiliser ce puissant outil du mieux possible. Voici les principaux points à retenir.

Partager Une année avec Dev Mode : 10 enseignements tirés par un engineering manager

Quand Figma a annoncé le lancement de Dev Mode à Config 2023, cela a éveillé ma curiosité, mais j'étais assez sceptique. D'un côté, en tant qu'engineering manager chez Décathlon, j'aime l'idée de tester de nouveaux outils. D'un autre, j'ai vu de nombreux outils prometteurs échouer à aboutir à un réel alignement des workflows de design et de développement. Cependant, après une année d'expérience sur le terrain, je dois dire que Dev Mode a opéré une réelle transformation au sein de notre équipe.

Code Connect est LA fonctionnalité qui sort du lot, en ce qu'elle a considérablement amélioré le workflow de notre design system. En reliant les composants de Figma directement au code de ceux-ci, Code Connect aplanit les difficultés que nous rencontrons continuellement sur l'alignement des propriétés, les conventions de nommage et la gestion des états entre design et développement. Cela s'avère particulièrement précieux lorsque nous avons à gérer des composants complexes qui doivent être structurés différemment en design et en code. Voici mes principaux apprentissages :

Diagramme montrant la relation entre une valeur de couleur et un design token. À gauche, un label avec un icône ronde et rose affiche la valeur F55DAF 100%, relié par une ligne en pointillé au token pink/400 à droite. Le fond du diagramme est une grille et présente une bordure violette.Diagramme montrant la relation entre une valeur de couleur et un design token. À gauche, un label avec un icône ronde et rose affiche la valeur F55DAF 100%, relié par une ligne en pointillé au token pink/400 à droite. Le fond du diagramme est une grille et présente une bordure violette.

Les design tokens sont les références uniques et réutilisables qui définissent un vocabulaire visuel. La mise en valeur de ces tokens au sein de l'outil de design a constitué une réelle avancée en termes de livraison pour notre équipe de développeurs.

1. Commencer modestement, mais viser haut

Les workflows des développeurs sont testés et approuvés, et l'ajout d'un nouvel outil peut mener à des frustrations. Naturellement, certains hésitaient à adopter Dev Mode pour de bon. Plutôt que de révolutionner nos workflows, nous avons commencé en douceur et nous nous sommes appliqués à mettre en place des quick wins avec les design tokens grâce aux variables de Figma.

Astuce : Utilisez la création d'alias de variables pour hiérarchiser clairement vos design tokens. Cette approche facilite l'implémentation de thèmes via la structuration sémantique, ce qui aide à la compréhension et à l'application de l'environnement du système.

La possibilité d'afficher les variables permet un contrôle précis et évite une mauvaise application (utilisation de couleurs de fond pour du texte ou de valeurs d'espacement pour un rayon de bordure). Nous avons personnalisé la syntaxe du code pour que les noms des variables soient alignés avec les conventions appliqués par les développeurs sur toutes les plateformes. Lorsque nous mettons à jour un token de couleur, nos développeurs voient immédiatement le changement correspondant dans le code.

Panneau de paramètres de « Scoping » (cadrage) dans un outil de design affichant diverses cases à cocher pour personnaliser le cadrage des nombres et les options de typographie. Les paramètres disponibles sont les suivants : « Corner radius » (rayon d'angle), « Width and Height » (largeur et hauteur), « Stroke width » (largeur du trait), « Font weight » (graisse de la police), etc. L'option « Line height » (hauteur de ligne) est cochée, tandis que les autres ne le sont pas. Le panneau est placé sur un fond vert uni.Panneau de paramètres de « Scoping » (cadrage) dans un outil de design affichant diverses cases à cocher pour personnaliser le cadrage des nombres et les options de typographie. Les paramètres disponibles sont les suivants : « Corner radius » (rayon d'angle), « Width and Height » (largeur et hauteur), « Stroke width » (largeur du trait), « Font weight » (graisse de la police), etc. L'option « Line height » (hauteur de ligne) est cochée, tandis que les autres ne le sont pas. Le panneau est placé sur un fond vert uni.
Cadrer une variable vous permet de limiter les propriétés auxquelles elle peut être appliquée.

2. Tirer profit des fonctionnalités d'inspection avancées

Flexbox est un modèle de mise en page CSS qui vous permet de créer des mises en page unidimensionnelles flexibles et responsives pour des pages web. Cela facilite l'alignement et la distribution de l'espace entre les éléments d'un conteneur, même si leurs tailles sont inconnues ou dynamiques.

Les fonctionnalités d'inspection de Dev Mode ont considérablement amélioré notre workflow car elles prennent efficacement en charge des mises en page complexes, dont Flexbox. Cela génère un code à la fois élégant et facile à mettre en œuvre.

Ces fonctionnalités permettent à l'équipe en charge des design system d'examiner les composants UI en profondeur en inspectant les propriétés de style CSS, iOS (SwiftUI, UIKit) ou Android (XML, Compose) directement dans l'environnement de développement. Ainsi, les designers peuvent s'assurer que les composants sont construits exactement selon leurs spécifications. Avec l'extension VSCode de Figma, nous pouvons utiliser le remplissage automatique pour naviguer facilement dans les implémentations CSS, Compose ou SwiftUI.

3. Définir à quel stade une tâche est terminée

Conserver une documentation de design system à jour a toujours été compliqué. On a souvent l'impression que cela requiert d'y travailler à temps plein. D'après ce que j'ai pu voir, les intentions de design et les besoins spécifiques se perdent souvent dans la communication entre designers et développeurs. Les fonctionnalités de documentation et d'annotation de Dev Mode ont métamorphosé notre façon de garder l'information à jour et de la partager.

Les annotations permettent aux designers de définir les propriétés de design et d'autres informations essentielles directement au sein du fichier. Ils peuvent mélanger du texte libre avec des valeurs définies comme l'alignement ou les dimensions, et ajouter des mesures pour aider les développeurs à visualiser l'espacement et la taille des composants. Lorsqu'ils travaillent avec leurs homologues développeurs, les designers peuvent ajouter des liens aux annotations pour clarifier leurs intentions.

Nous avons mis en place un système où chaque composant a une documentation complète : des liens vers le code source de GitHub, des fichiers README, et les playgrounds (bacs à sable) associés. Grâce à cette approche, chaque membre de l'équipe a un accès permanent à une information à jour, et le temps passé à rechercher des ressources est considérablement réduit. Désormais, nous avons une règle : si ce n'est pas lié à Figma, ça n'existe pas.

Dans cet article, vous allez apprendre comment le consultant en UX design et fondateur Wart Burggraaf gère les contributions au design system et comment définir pour votre équipe à quel stade une tâche est terminée.

Pour vos premiers pas avec Code Connect, allez sur notre dépôt GitHub pour accéder à des consignes d'installation et de configuration du package NMP, et consultez notre documentation pour en savoir plus.

Code Connect a eu un impact particulièrement important. Lorsque nous avons établi une correspondance entre le code de nos composants et les composants Figma, l'adoption du design system par les équipes produit a nettement augmenté. Je recommande d'intégrer cet aspect à la définition du stade auquel un composant est considéré comme achevé, ceci afin que la bonne documentation de code soit directement liée aux designs.

4. Améliorer la fonctionnalité avec des plugins

Même si Dev Mode est déjà très puissant, les plugins nous permettent de le personnaliser et de l'adapter à nos besoins spécifiques. En voici quelques-uns qui ont notablement amélioré notre workflow :

  • Intégrations GitHub et Jira : elles nous permettent de lier directement les problèmes et les demandes de tirage aux composants, ce qui améliore le suivi et la précision de la mise en œuvre.
  • Figma pour VS Code : Cette extension permet à nos développeurs d'accéder aux designs et de les inspecter au sein de Figma, directement dans le Visual Studio Code.

N'hésitez pas à développer des solutions sur-mesure. J'ai créé le plugin Variables Converter pour traduire les variables Figma dans différents formats de code, et plus de 5 000 utilisateurs de Figma s'en servent à présent.

Le plugin Variables Converter transforme les variables Figma en variables CSS, JavaScript, Compose et SwiftUI. L'image montre une prévisualisation de l'interface et affiche les noms et les valeurs des variables sur la gauche, et les extraits de code traduits sur la droite.Le plugin Variables Converter transforme les variables Figma en variables CSS, JavaScript, Compose et SwiftUI. L'image montre une prévisualisation de l'interface et affiche les noms et les valeurs des variables sur la gauche, et les extraits de code traduits sur la droite.

Le plugin Variables Converter simplifie la conversion des variables Figma en propriétés CSS personnalisées, en variables JavaScript, Compose et SwiftUI.

Regardez cette démo de Romain Dao (senior product designer et fondateur de The Cacatorès Theory) et Laurent Thiebault (engineering manager et design system lead chez Decathlon) pour savoir quel impact Dev Mode a eu sur la collaboration entre designers et développeurs au sein de leurs équipes.

Pour une personnalisation plus avancée, allez voir du côté de l'API REST de Figma. Elle propose des fonctionnalités avancées d'automatisation et d'intégration, surtout avec les nouvelles API associées aux variables. Le dépôt Figma variables GitHub Action Examplemontre comment configurer une synchronisation bidirectionnelle entre les variables Figma et les design tokens, ce qui illustre la puissance et la flexibilité de l'API.

5. Expérimenter dans le bac à sable des composants

Un composant Chip multi-variant est une sorte de bloc de construction polyvalent au sein des design systems. Il peut changer de forme pour avoir plusieurs usages, du filtrage de contenu au tagging d'éléments, le tout en conservant un look and feel cohérent.

Le bac à sable des composants de Dev Mode est un excellent outil pour expérimenter. Il est accessible via le panneau d'inspection lorsqu'un composant ou une instance est sélectionnée. Quand nous avons travaillé sur le nouveau composant Chip multi-variant, le bac à sable nous a permis de tester différentes configurations et d'identifier les cas limites que nous n'avions pas envisagés dans le design initial.

Panneau d'inspection de Figma design affichant les propriétés d'un composant de type bouton. Le panneau affiche des détails tels que la variante (Primary), l'état (Default), la taille (Medium), le label (Button) et les paramètres de l'icône. Le bouton est prévisualisé au centre du panneau avec le label « Bouton » en texte blanc sur un fond sombre. Le fond de l'écran entier est vert clair.Panneau d'inspection de Figma design affichant les propriétés d'un composant de type bouton. Le panneau affiche des détails tels que la variante (Primary), l'état (Default), la taille (Medium), le label (Button) et les paramètres de l'icône. Le bouton est prévisualisé au centre du panneau avec le label « Bouton » en texte blanc sur un fond sombre. Le fond de l'écran entier est vert clair.
Servez-vous du bac à sable pour expérimenter avec les différentes propriétés des composants sans changer le vrai design.
Une interface de component playground (bac à sable) dans Figma, qui affiche les options de personnalisation d'un bouton. Le bouton est centré sur l'écran avec le label « Label » et une icône de flèche, dans une couleur vert foncé. Sur la droite, les options relatives à la variante, à la taille, à l'icône et au label du bouton sont visibles, de même que les options « disabled » (désactivé), « fullWidth » (pleine largeur) et « showIcon » (montrer l'icône). Sous les paramètres, un panneau Code Connect affiche le code React du composant du bouton. Le fond est violet clair.Une interface de component playground (bac à sable) dans Figma, qui affiche les options de personnalisation d'un bouton. Le bouton est centré sur l'écran avec le label « Label » et une icône de flèche, dans une couleur vert foncé. Sur la droite, les options relatives à la variante, à la taille, à l'icône et au label du bouton sont visibles, de même que les options « disabled » (désactivé), « fullWidth » (pleine largeur) et « showIcon » (montrer l'icône). Sous les paramètres, un panneau Code Connect affiche le code React du composant du bouton. Le fond est violet clair.

Code Connect s'intègre en toute fluidité au bac à sable des composants, et se met à jour en temps réel, au fil de l'ajustement des paramètres. Dans notre cas, un seul composant Chip dans le design se traduit par trois composants distincts dans le développement web. Cette intégration nous permet de voir les mises à jour du code en temps réel lorsque nous modifions les propriétés.

6. Utiliser le contrôle des versions et les comparaisons visuelles

La fonctionnalité de comparaison des changements a été un apport inestimable pour notre équipe en charge des design systems. Nous pouvons facilement faire le suivi des changements au fil du temps, comparer différentes versions en les mettant côte à côte, et revenir à des itérations passées. Cette fonctionnalité nous donne la confiance nécessaire pour itérer plus rapidement sur notre design system, et se combine harmonieusement à lacréation de branches en permettant aux équipes de travailler sur des mises à jour parallèles sans perturber le système principal.

Panneau d'historique des versions dans Figma montrant la progression du développement d'un composant de design. Le panneau présente plusieurs états « Ready for dev » (prêt pour le développement) et « Completed » (terminé), avec des détails sur les modifications apportées par les différents membres de l'équipe. Un menu contextuel est ouvert, avec l'option « Compare to latest version » (Comparer avec la dernière version) en surbrillance. La partie gauche de l'écran présente une vue partielle du design, tandis que la partie droite présente un fond bleu vif.Panneau d'historique des versions dans Figma montrant la progression du développement d'un composant de design. Le panneau présente plusieurs états « Ready for dev » (prêt pour le développement) et « Completed » (terminé), avec des détails sur les modifications apportées par les différents membres de l'équipe. Un menu contextuel est ouvert, avec l'option « Compare to latest version » (Comparer avec la dernière version) en surbrillance. La partie gauche de l'écran présente une vue partielle du design, tandis que la partie droite présente un fond bleu vif.
Pour comparer une version avec la plus récente, cliquez sur les trois points et sélectionnez Compare to latest version.

Lorsque nous avons mis à jour notre composant de bouton pour améliorer l'accessibilité, nous avons utilisé la fonctionnalité de comparaison visuelle pour communiquer clairement les changements à toute notre organisation produit. Cette transparence a aidé à faciliter la transition et a renforcé l'adhésion à la mise à jour.

7. Garder sa concentration avec la vue Focus

La fonctionnalité vue Focus est une fonctionnalité très pratique pour notre workflow. Elle est conçue pour vous aider à vous concentrer sur des designs spécifiques, prêts pour le développement. Avec cette vue, nous pouvons accéder aux outils de Dev Mode, comme Inspect et les onglets de plugins, tout en ayant une vue claire et isolée du design. C'est particulièrement utile pour examiner les calques individuels, suivre l'historique des versions spécifiques au design, et s'assurer que tous les changements nécessaires ont été faits avant de marquer un design comme terminé.

Une grille de carrés colorés dans une interface de design, avec un menu contextuel ouvert dans le coin supérieur droit. Le menu propose des options telles que « Show in focus view » (afficher en vue Focus), qui est en surbrillance, « Copy link to focus view » (copier le lien dans la vue Focus), « Mark as completed » (marquer comme terminé) et « Remove status » (supprimer le statut). Le fond de l'interface est violet clair.Une grille de carrés colorés dans une interface de design, avec un menu contextuel ouvert dans le coin supérieur droit. Le menu propose des options telles que « Show in focus view » (afficher en vue Focus), qui est en surbrillance, « Copy link to focus view » (copier le lien dans la vue Focus), « Mark as completed » (marquer comme terminé) et « Remove status » (supprimer le statut). Le fond de l'interface est violet clair.
Sur le plan de travail, lorsque vous voulez vous concentrer sur un design, cliquez sur le statut de développement et sélectionnez Show in focus view (montrer en vue Focus).

Cette fonctionnalité s'est montrée particulièrement utile lorsque nous finalisions les mises à jour de notre composant bouton. La vue Focus nous a permis d'examiner minutieusement le design, de nous assurer qu'aucun détail n'avait été oublié et de fluidifier la communication avec les développeurs.

8. Favoriser une culture de la collaboration

Pour exploiter au maximum le potentiel de Dev Mode, nous avons mis en place des sessions collaboratives pendant lesquelles les designers et les développeurs se rassemblent à toutes les étapes du projet. Nous commençons chaque projet avec des sessions collaboratives sur FigJam, où les participants peuvent librement élaborer et affiner les propriétés, les variantes et les comportements des composants. À mesure que les idées se précisent, nous passons en douceur à Dev Mode, que nous utilisons pour visualiser les avancées, nous aligner sur les attentes et fêter nos victoires. La fluidité avec laquelle nous passons de l'idéation au développement permet d'éviter le cloisonnement, mais garantit également que l'expertise de chaque coéquipier soit mise à profit tout au long du processus.

Un tableau Figma montre une collection d'articles, de vidéos et de ressources liés au design, disposés dans un format de type organigramme. Les ressources comprennent des titres tels que « Winning the uphill battle for making magic », « TDD is the Best Design Technique », et « Component Specifications ». Des flèches relient les éléments, indiquant une progression ou une relation entre les sujets. Certaines ressources sont accompagnées de notes ou de commentaires supplémentaires, qui fournissent un contexte ou mettent en évidence les points clés à retenir. Le fond est d'un vert profond.Un tableau Figma montre une collection d'articles, de vidéos et de ressources liés au design, disposés dans un format de type organigramme. Les ressources comprennent des titres tels que « Winning the uphill battle for making magic », « TDD is the Best Design Technique », et « Component Specifications ». Des flèches relient les éléments, indiquant une progression ou une relation entre les sujets. Certaines ressources sont accompagnées de notes ou de commentaires supplémentaires, qui fournissent un contexte ou mettent en évidence les points clés à retenir. Le fond est d'un vert profond.
Vous vous intéressez à la collaboration entre designers et développeurs ? Hugo Raymond, designer advocate chez Figma, a créé ce fichier de ressources en préparant une conférence sur le sujet.
Une planche Figma intitulée « Card component » (composant de carte) montre la structure et les questions portant sur le design d'une carte. La partie supérieure présente un diagramme décrivant les éléments de la carte : Asset, Title, Body et Button. En dessous, trois sections colorées présentent des variations de design et des questions. La section bleue traite de la longueur et de la hauteur du contenu à l'aide d'icônes « pouces en l'air » et de points d'interrogation. La section verte soulève des questions sur l'idée d'un design Right-to-Left (de droite à gauche) à l'aide d'icônes en forme de cœur et de points d'interrogation. La section jaune pose des questions sur la prise en charge des médias (image/vidéo) à l'aide d'icônes en forme de cœur et de points d'interrogation. Le fond est vert clair.Une planche Figma intitulée « Card component » (composant de carte) montre la structure et les questions portant sur le design d'une carte. La partie supérieure présente un diagramme décrivant les éléments de la carte : Asset, Title, Body et Button. En dessous, trois sections colorées présentent des variations de design et des questions. La section bleue traite de la longueur et de la hauteur du contenu à l'aide d'icônes « pouces en l'air » et de points d'interrogation. La section verte soulève des questions sur l'idée d'un design Right-to-Left (de droite à gauche) à l'aide d'icônes en forme de cœur et de points d'interrogation. La section jaune pose des questions sur la prise en charge des médias (image/vidéo) à l'aide d'icônes en forme de cœur et de points d'interrogation. Le fond est vert clair.
Exemple typique de brainstorming utilisant le Simple Design System de Figma.

9. Conserver un état d'esprit basé sur l'itération

Nous traitons Dev Mode comme un composant dynamique de notre processus de design, qui a besoin d'itérations et d'améliorations régulières. Notre design system évolue en même temps que notre façon d'utiliser Dev Mode.

Récoltez des retours régulièrement avec des questionnaires trimestriels, comme le System Usability Scale (SUS, échelle d'utilisabilité des systèmes). Ces évaluations fournissent des informations précieuses sur la manière dont les designers et les développeurs interagissent avec vos bibliothèques, ce qui permet d'identifier les domaines d'excellence et les possibilités d'amélioration. Utilisez ces résultats pour nourrir votre prochaine itération, pour générer des améliorations via un cercle vertueux.

10. Continuer à apprendre et rester curieux

Nous sommes constamment en train de tester les nouvelles fonctionnalités et les mises à jour de Dev Mode. Rester au courant de son évolution nous aide à améliorer nos processus en continu. Nous dédions du temps à la formation et au développement personnel, éléments que nous incorporons à notre quotidien.

Je vous encourage à explorer toutes les ressources de Figma, dont la documentation, les webinaires, et le forum de la communauté. S'engager à apprendre et suivre nos progrès en continu avec des indicateurs de performance clés nous permet de constamment améliorer nos compétences et de nous adapter à de nouveaux outils et techniques.

Retour sur une année avec Dev Mode

Après une année avec Dev Mode, je peux dire que cet outil a beaucoup amélioré le workflow de notre design system. Bien que des difficultés subsistent, surtout sur la gestion des composants complexes, la capacité de Dev Mode à faire le lien entre design et développement a rapproché nos équipes, ce qui a eu pour effet de rendre l'expérience utilisateur plus cohérente et qualitative.

Si vous avez des difficultés à faire adopter votre design system et à instaurer une collaboration efficace entre designer et développeurs, je vous recommande de tester Dev Mode. Commencez modestement, attendez-vous à rencontrer des difficultés au début, et n'hésitez pas à le personnaliser pour qu'il corresponde à vos besoins. Les bénéfices potentiels en termes de cohérence, d'efficacité et de collaboration sont significatifs. J'ai hâte de voir comment Dev Mode va façonner la façon dont nous travaillons sur notre design system à l'avenir.

Créez et collaborez avec Figma

Lancez-vous gratuitement