Le component master

component-master
Philippe Escalle CTO

J'aime tout particulièrement donner le rôle de component master à un membre de mon équipe. Il se sent gratifié d'une responsabilité toute particulière et devient rapidement le centre d'attention de toute l'équipe !
Attention, il faut aimer être sollicité.

Compétences Clés

Le component master possède une expertise technique approfondie, maîtrisant les frameworks modernes et les outils de gestion des composants comme Storybook pour les interfaces utilisateur ou Bit pour les composants distribués. Il connaît ses outils sur le bout des doigts. Il a également la capacité de concevoir des systèmes modulaires qui favorisent la réutilisation, un peu comme jouer au Tetris, mais avec des composants logiciels.
En tant que véritable caméléon, il s'adapte à tous les environnements, travaillant en étroite collaboration avec les designers, développeurs front-end et back-end pour garantir une cohérence entre les besoins métiers et les solutions techniques. De plus, il crée des guides d'utilisation et promeut les bonnes pratiques pour l'équipe, écrivant ainsi la bible des composants pour que tout le monde soit sur la même longueur d'onde.

Responsabilités

Le component master identifie les parties d'un logiciel pouvant être encapsulées en composants réutilisables, cherchant ainsi des trésors cachés dans le code. Il développe et maintient une bibliothèque de composants robustes et bien documentés, agissant comme un véritable bibliothécaire du code. Il travaille également à réduire la duplication de code en maximisant l'efficacité des équipes, permettant ainsi de consacrer plus de temps aux choses importantes (comme le café... oui je sais ! encore le café :/ ). Enfin, il assure la compatibilité des composants avec différentes plateformes et technologies, se comportant comme un polyglotte du développement.

Impact pour un CTO

En favorisant la réutilisation, le component master contribue à la réduction des coûts de développement, permettant ainsi de dépenser moins et de consacrer plus de budget aux pizzas de l'équipe (et non... pas que le café !!!). Grâce à des solutions préexistantes, il améliore la vitesse de livraison des projets. Il garantit également une meilleure qualité du code grâce à des standards unifiés, offrant ainsi un code propre et bien organisé, comme une maison bien rangée.
Du coup il a l’œil pour détecter les failles en UX sur des tests unitaires et fonctionnels.
Enfin, il aide à maintenir la cohérence de l'expérience utilisateur sur plusieurs produits car Il est le garant de l'harmonie du design, ce qui signifie que toutes les pages auront les mêmes inputs, par exemple, même si plusieurs freelances sont passés sur le projet. On n'aura pas un coup des floating labels et la page suivante autre chose.

Exemple Pratique

Prenons un composant Laravel de type <x-table :data="$data" search="true" paginate="10" />. Sur Symfony, les composants ne s'écrivent pas de la même manière que dans Laravel et ils sont souvent gérés via des services ou des macros Twig. Le component master, sur la base des retours des utilisateurs, conceptualise ou améliore ce composant. Par exemple, on pourrait lui demander que le tableau puisse automatiquement se transformer en cartes sur mobile
(un table sur mobile il n'y a rien de plus horrible). Les équipes de développement n'auraient rien à faire, c'est le component master qui s'en charge, et tout le projet en profite. Tous les tableaux du projet ont un style et un comportement unifiés, offrant ainsi une homogénéité parfaite. Les paramètres comme search et paginate permettent de personnaliser les fonctionnalités, ajoutant une flexibilité appréciable.
Si search est ajouté dans le component, un moteur de recherche en alpine Js sera intégré automatiquement !
Enfin, les développeurs n’ont plus à répéter du code pour les tableaux, ce qui accroît la productivité et permet de consacrer plus de temps à l'innovation plutôt qu'à réinventer la roue. Alpine JS est clairement une solution intéressante pour chainer les composants avec des fonctions avancées en JavaScript sans avoir besoin de toucher du code ou de modifier le DOM.

Caméra cachée

PO : Le client souhaite pouvoir trier les colonnes sur une page précise.

CTO : D'accord, c'est une demande importante. Notre Component Master va se charger de ce développement. On fera une démo aux équipes une fois que ce sera prêt.

Component Master : Bien sûr, je m'en occupe. Comme c'est déjà en Alpine.js pour la recherche, je vais continuer avec Alpine.js pour le tri.

une fois la feature en place, il fait une démonstration aux équipes FRONT.

Front-End Dev : Ah, d'accord ! Donc, j'ai juste à ajouter sort dans le composant et c'est tout ?

Component Master : Exactement, c'est aussi simple que ça.

CTO : Parfait. Assurez-vous de bien documenter les changements et de tester la fonctionnalité sur différents navigateurs.

L'oeil du CTO

" le component master est le héros méconnu du développement logiciel, celui qui fait en sorte que tout fonctionne harmonieusement en coulisses. Un rôle indispensable pour tout CTO souhaitant optimiser ses projets et garantir une qualité irréprochable. "