Au secours, je dois faire un design system ! đŸ˜±

CĂ©cile Freyd-Foucault
8 min readOct 14, 2020

Depuis quelques annĂ©es maintenant, le terme design system apparaĂźt partout ! Que ça soit sur des Slack, Linkedin, Twitter, des confĂ©rences
 pas un jour sans en entendre parler. Les grandes boĂźtes sortent jour aprĂšs jour leurs propres “DS”. À commencer par Material de Google mais Ă©galement Carbon d’IBM ou mĂȘme Gov.uk, le design system du gouvernement britannique ! Ils prĂ©sentent un mĂ©lange de composants, spĂ©cifications techniques, guidelines et principes d’organisations. Devant cet engouement, comment ne pas avoir envie de se lancer et dire “On doit faire un design system !”

Maintenant qu’on s’est donnĂ© comme objectif de faire son propre Design System, comment se lancer ? Par quel bout commencer ?

Les premiĂšres questions Ă  se poser

PremiĂšre question Ă  se poser : Je pars de quoi ? D’un produit dĂ©jĂ  existant ou au contraire de 0 ? Ensuite, qui sont les parties prenantes, c’est Ă  dire qui va participer Ă  sa construction et sa mise en place ? Quelles sont les dĂ©pendances et restrictions techniques et organisationnelles ? Et finalement la principale question : pourquoi faire un design system ?

Je pars de quoi ?

Si je pars d’un nouveau produit, c’est-Ă -dire que celui-ci est Ă  construire, alors je suis sencĂ© partir sur de bonnes bases. En effet, si tout est Ă  construire et on n’a pas, ou en tout cas moins, hĂ©ritĂ© de dette.

Si je pars d’un produit existant, il est peut-ĂȘtre mĂȘme dĂ©jĂ  en “prod” ! Faire un design system veut d’abord dire exporter les diffĂ©rents Ă©lĂ©ments fonctionnels de notre produit ; prendre le temps de les identifier, se mettre Ă  Ă©crire des “specs” et peut-ĂȘtre mĂȘme de les re-dĂ©velopper. Car oui, se lancer sur un design system c’est aussi risquer d’ouvrir la BoĂźte de Pandore.

Il se pose donc la question de pourquoi se lancer dans ce chantier. À quoi ça sert de faire un design system. Son principal intĂ©rĂȘt est d’optimiser l’ExpĂ©rience Utilisateur, qu’il s’agisse des utilisateurs finaux de notre produit mais Ă©galement des membres de ou des Ă©quipes produits.

Pour les utilisateurs finaux, mettre en place et utiliser un design system permet entre autres de garder une cohĂ©rence Ă  travers tout le produit, cette cohĂ©rence facilite la navigation, la comprĂ©hension du contenu et amĂšne Ă  la rĂ©duction des erreurs. Cela permet Ă©galement de revoir l’accessibilitĂ© de votre produit Ă  la fois visuellement et techniquement.

Pour les utilisateurs du design system, c’est Ă  dire les membres de l’équipe produit composĂ©e de designers, dĂ©veloppeurs et Product Owner, quand on met en place un design system, on travaille avant tout sur la mĂ©thodologie du quotidien, et son optimisation.

Faire un design system peut trĂšs vite s’apparenter Ă  faire une refonte de son produit. Et ce mĂȘme sans changer Ă  priori le design et les fonctionnalitĂ©s.

État des lieux et priorisation

Maintenant que l’on s’est bien dĂ©cidĂ© Ă  crĂ©er un design system, il faut se lancer. En faisant un Ă©tat des lieux de l’organisation et du produit Ă  travers un ou plusieurs ateliers (le nombre et la durĂ©e sont Ă  dĂ©finir selon le produit et les besoins de l’équipe).

PremiĂšre chose quand on veut faire l’état des lieux, c’est d’inviter les personnes concernĂ©es. Et les personnes les plus concernĂ©es par un design system, sont celles qui sont directement impactĂ©es : l’équipe de rĂ©alisation du produit ! C’est Ă  dire les dĂ©veloppeurs, designers, product owner (ou chef de projet), et si il y en un, le scrum master ! Et c’est lĂ  que tout va se jouer. En effet, ils va falloir ĂȘtre certain qu’ils sont convaincus de l’intĂ©rĂȘt de se lancer dans cette aventure.

L’atelier â€œĂ©tat des lieux”

La prĂ©paration de l’atelier

Template prĂ©paration d’atelier

Comme tout atelier, il demande une certaine prĂ©paration. D’autant plus si on veut ĂȘtre efficace ! À titre personnel, je me suis crĂ©Ă© un template de prĂ©paration d’atelier afin de ne rien oublier.

PremiĂšre Ă©tape donc de cette prĂ©paration : faire des captures de chaque Ă©cran (et sur les diffĂ©rents devices bien Ă©videmment). Il faut bien faire attention Ă  prendre ce qui est dĂ©veloppĂ© et sur le mĂȘme environnement (prod, preprod, staging
). Si certaines pages ont plusieurs Ă©tats, il faut pas hĂ©siter Ă  les capturer. MĂȘme si une exhaustivitĂ© des pages est prĂ©fĂ©rable, oublier de capturer une obscure page, d’une obscure fonctionnalitĂ©, que l’on trouve aprĂšs moulte pĂ©rĂ©grinations dans l’application n’est pas un drame. Si les composants s’y trouvant sont uniques et ne se retrouvent nul par ailleurs, on pourra alors se poser la question plus tard de leur pertinence !

Ensuite, les afficher quelque part. Si vous souhaitez le faire en prĂ©sentiel, vous pouvez les coller au mur, et si vous le faites Ă  distance, utilisez votre outil prĂ©fĂ©rĂ© (MIro ou Mural par exemple). L’idĂ©e est surtout d’avoir la vision globale. Pensez bien Ă  regrouper chaque Ă©cran par thĂ©matique/fonctionnalitĂ©s et de toujours bien les nommer.

Bien entendu, invitez les bonnes personnes : les membres de l’équipe produit, comme expliquĂ© prĂ©cĂ©demment. Mais vous pouvez Ă©galement convier des personnes externes, comme quelqu’un de l’équipe marketing. L’intĂ©rĂȘt d’inviter quelqu’un de non technique et qui a plus de recul sur le produit, rĂ©side dans les questions qu’il va poser et les questionnements que ça va crĂ©er.

L’élĂ©ment coeur de votre atelier sera le tableau d’identification. Ce tableau que l’équipe va remplir au fur et Ă  mesure sera la visualisation Ă  l’instant T des composants du produit.

Le tableau d’identification

Tableau d’identification (fait sur Miro)

La classification : sĂ©mantique ou fonctionnelle, parle-t-on d’un composant apportant avant tout un sens (exemple une couleur) ou de quelque chose avec lequel une action ou une interaction est possible (exemple un bouton)

La catĂ©gorie : la grande catĂ©gorie dans laquelle il va ĂȘtre rangĂ©. Par exemple, bouton, formulaire, navigation
 Je conseille lors de la prĂ©paration de l’atelier d’inventorier quelques catĂ©gories comme base de travail.

Le nom : le plus simple Ă  l’instant T mais le plus complexe ensuite ! Dans tous les cas, pensez au sens purement fonctionnel de votre Ă©lĂ©ment. Posez-vous bien la question de la dĂ©finition de tel ou tel Ă©lĂ©ment. Par exemple cet Ă©lĂ©ment qui ressemble Ă  un lien, est-il bien un lien ou est-ce plutĂŽt un bouton ?

Les états : Listez si vous avez des états particuliers comme des composants désactivés (disabled) ou par exemple en erreur (error).

Le nombre de rĂ©currences fonctionnelles : comptabilisez le nombre de fois oĂč vous trouvez ce composant sans faire cas de son style.

Le nombre de style : comptabilisez le nombre de styles diffĂ©rents que vous trouvez de ce composant. Vous risquez d’avoir des surprises, et mĂȘme d’avoir des rĂ©vĂ©lations sur l’utilisabilitĂ© de votre produit (pensez aux critĂšres ergonomiques de Bastien et Scapin ou encore Ă  la loi de similitude !)

Les commentaires : prĂ©voyez bien sur une colonne commentaire afin d’ajouter quelques petites choses utiles Ă  ne pas oublier. Par exemple, votre navigation principale peut avoir des styles totalement diffĂ©rents entre la version mobile et la version desktop mĂȘme si on parle du mĂȘme composant fonctionnellement !

La prĂ©sence sur le design system parent : cela dĂ©pendra si vous avez un design system dĂ©jĂ  en construction ou pas ! Cela peut ĂȘtre intĂ©ressant si votre atelier se fait dans le cadre du dĂ©ploiement d’un design system dĂ©jĂ  en construction ou implĂ©mentĂ© sur d’autres produits que le vĂŽtre.

Des exemples de composants existants : Mettez des exemples de vos composants ! Un petit rappel visuel c’est toujours utile 😀 !

La matrice de priorisation

L’unique identification de vos composants n’est pas suffisante, il va falloir maintenant faire une priorisation de vos composants afin de les embarquer dans votre produit. Pour cela, l’équipe peut les mettre sur une matrice prenant en compte la complexitĂ© et la frĂ©quence.

La complexité

Matrice complexité création/implémentation

Tout d'abord quand on parle de complexité de quoi parle-t-on ? On peut voir deux types de complexité : la création et le déploiement du composant.

La complexitĂ© de crĂ©ation du composant va dĂ©pendre de ce qu’on entend par crĂ©ation d’un composant. Cela peut par exemple impliquer :

  • La conception “design” (dans Sketch ou Figma par exemple)
  • L’écriture des spĂ©cifications (la fameuse documentation de notre composant)
  • Le dĂ©veloppement du composant en isolation (avec Storybook)

Ces critĂšres de complexitĂ© de crĂ©ation peuvent ĂȘtre Ă©volutifs suivant la temporalitĂ© au sein du projet. En effet, parfois quand un design system commence Ă  ĂȘtre implĂ©mentĂ©, certains composants ont dĂ©jĂ  Ă©tĂ© documentĂ©s, il est tout de mĂȘme intĂ©ressant de se poser la question de cette complexitĂ© pour avoir une base de rĂ©flexion pour le futur. Par ailleurs, on commence gĂ©nĂ©ralement par des composants plutĂŽt “simples” comme un bouton ou un Ă©lĂ©ment de liste.

Le second critĂšre de complexitĂ© est celui du dĂ©ploiement et de l’implĂ©mentation du composant au sein du produit. Elle dĂ©pendra de son Ă©tat, de la maniĂšre dont les Ă©lĂ©ments de bases ont Ă©tĂ© dĂ©veloppĂ©s ! Cette implĂ©mentation peut devenir un casse tĂȘte surtout si la frĂ©quence est Ă©levĂ©e et qu’ils Ă©tĂ© dĂ©veloppĂ©s unitairement !

La fréquence

Matrice fréquence/valeur

Le second critĂšre de frĂ©quence peut ĂȘtre assimilĂ© Ă  la valeur. On peut imaginer que plus un composant est rĂ©curent, plus celui ci Ă  de la valeur. Par exemple, un bouton d’action est l’élĂ©ment qui va dĂ©clencher l’action de l’utilisateur, il a donc beaucoup de valeur. Et on risque de le retrouver partout. Il a Ă  la fois une forte valeur et une forte frĂ©quence !

À contrario, on peut avoir un composant trĂšs spĂ©cifique rĂ©pondant Ă  un besoin mĂ©tier prĂ©cis et central. On le retrouve qu’une fois mais il a une importance primordiale ! Il a du coup une forte valeur alors qu’il a une trĂšs faible frĂ©quence. Un autre cas est un composant que l’on ne retrouve qu’une fois mais partout ! Typiquement la navigation principale. Sa valeur est importante (il permet de naviguer et de se repĂ©rer dans le produit) mais il n'apparaĂźt qu’une fois. Il s’agit d’un composant unique Ă  forte valeur ! Ces cas particuliers sont Ă  identifier et Ă  mettre en exergue afin d’ĂȘtre embarquĂ©s.

Matrice complexité/fréquence

Ainsi la valeur de notre composant est vu sous deux prismes : sa rĂ©currence (le plus facile Ă  identifier) et sa valeur mĂ©tier pour l'utilisateur final. C’est en prenant en compte ces facteurs et en les associant avec la complexitĂ© de crĂ©ation que l’on pourra Ă©tablir une roadmap du design system au service du ou des produits qu’il sert ! Et ainsi commencer Ă  l’implĂ©menter !

Il est primordial de bien prioriser la crĂ©ation et l’implĂ©mentation des composants afin de trouver un juste Ă©quilibre avec l’implĂ©mentation et/ou l’évolution de fonctionnalitĂ©s. Il est Ă©galement important si la mise en place d’un design system intĂšgre une refonte visuelle de votre produit, d’éviter un Big Bang pouvant crĂ©er une friction et un rejet plus ou moins important auprĂšs des utilisateurs finaux.

Conclusion

CrĂ©er un design system est quelque chose de complexe, mĂ©thodique, pouvant ĂȘtre fastidieux. Il risque de remettre en cause certaines choses dĂ©jĂ  Ă©tablies, de peut ĂȘtre ralentir le delivery de valeur fonctionnelle pour l'utilisateur. Mais il faut avant tout le voir comme un apport Ă  la fois pour l’utilisateur et pour l’équipe. Car crĂ©er un design system, c’est avant tout amĂ©liorer la communication, l’utilisabilitĂ© et l’ExpĂ©rience d’un produit !

--

--

CĂ©cile Freyd-Foucault

UX Designer, je m’intĂ©resse tout particuliĂšrement aux design system, aux interaction designer/dĂ©veloppeurs, Ă  la typographie et Ă  la notion d’expĂ©rience