
Dans les coulisses
Clac ! Notre tech-stack
par Nicolas Lefebvre
Dès mon arrivée à Digitec Galaxus, j’ai pu aider à mettre en œuvre la nouvelle fonctionnalité de transparence sur les cas de garantie et les retours. De mon point de vue de développeur junior, je vous donne un aperçu de ce qui se passe en coulisses.
Le soleil se couche à l’horizon en cette fin d’après-midi de novembre, en l’an 2022. L’équipe Isotopes, dans laquelle j’ai débuté en tant que junior deux mois plus tôt, est agglutinée derrière moi, les yeux rivés sur un écran d’ordinateur. Mon collègue Daniel et moi venons de procéder aux derniers ajustements du code et, pour la première fois, nous voyons notre nouvelle fonctionnalité sur les cas de garantie et les retours en direct et avec des données réelles. Jusque là, nous n’avions travaillé qu’avec des valeurs arbitraires à des fins de démonstration.
C’est le moment que je préfère dans le développement de logiciels. Ce moment où toute la chaîne de l’automatisation fonctionne comme une machine bien huilée. Les données qui, sous leur forme brute, ne peuvent être interprétées qu’au prix d’un effort considérable, sont automatiquement traitées en une fraction de seconde pour former des unités d’informations intelligibles et pertinentes.
Très vite, les membres de l’équipe veulent connaître la performance de leurs marques favorites et se lancent dans des spéculations amusantes. Les dix prochaines minutes sont donc consacrées à comparer les fabricants de smartphones, de cartes graphiques, de casques audio, et même de trottinettes électriques et de drones.
Qu’est-ce qui se passe vraiment dans les coulisses de cette nouvelle fonctionnalité ? Dans un premier temps, nous avons besoin des données brutes, c’est-à-dire des taux de retour et de recours en garantie ainsi que de la durée moyenne des recours en garantie de chaque marque, pour chaque catégorie. Cyclope, une équipe de business intelligence, stocke les valeurs fournies par KickAss, une équipe de développement en service après-vente, et les met à notre disposition dans une base de données BigQuery. Les données sont actualisées tous les jours.
Pour les plus geeks d’entre nous : nous récupérons les données avec un job automatisé et les persistons dans notre MongoDB. Si, en tant que client, vous visitez la page de détail du produit, les données viennent de MongoDB. Et ce, sur la base du produit en question ou de l’API consultée.
Comme notre boutique est accessible dans différents pays et que la gamme de produits d’une marque peut varier selon le pays, le calcul du classement effectué est spécifique à la catégorie, à la marque et au pays. Les lave-linge d’une même marque peuvent donc être en tête du classement des cas de garantie en Allemagne, par exemple, alors qu’ils n’arrivent qu’en deuxième position en Suisse.
Pour éviter de devoir accéder à la base de données et de répéter le calcul à chaque recherche lancée sur le site, nous enregistrons les données les plus utilisées dans un dépôt ou référentiel, dans lequel nous gardons les données en mémoire cache. Cela permet de réduire l’intensivité de l’activité de la base de données et donc de raccourcir les temps de chargement pour notre clientèle. C’est gagnant-gagnant.
J’ai passé la majeure partie de mon temps à développer cette fonctionnalité en écrivant du code C# pour notre environnement .NET. Par exemple, j’ai investi beaucoup d’énergie dans la logique de classement des marques et je l’ai mise en œuvre dans une approche pilotée par les tests.
Sur le papier, je ne suis employé qu’en tant qu’ingénieur backend, mais j’ai pu participer à l’ensemble de la mise en œuvre, de la lecture des données de la BigQuery à la logique d’affichage dans le frontend. Cette flexibilité et cette polyvalence de mon travail sont dues avant tout à la méthode appliquée au sein des Feature Teams : des ébauches d’UI au développement du backend, hormis les tâches en sous-traitance, une seule équipe met en œuvre l’ensemble des fonctionnalités pour la boutique en ligne.
Cette implémentation complète de la fonctionnalité ainsi que l’ensemble du processus de développement ont été pour moi des moments forts. D’une part, j’ai pu apprendre énormément sur l’architecture du système et le développement logiciels en C#, en particulier en Pair Programming avec Daniel, l’architecte logiciel de notre équipe. D’autre part, nous avons pu mettre en œuvre cette fonctionnalité de manière efficace et sans surcoût administratif. Grâce au déploiement continu, de petites modifications peuvent être apportées en un temps record. Cela permet aux rôles moins techniques, comme nos designers d’expérience utilisateur, d’avoir un aperçu direct de l’état actuel du développement et de recevoir un feedback immédiat.
Pour en savoir plus sur l’environnement système de Digitec Galaxus, vous trouverez ici notre tech-stack.
Et maintenant, qu’est-ce qu’on fait ? Le développement de telles fonctionnalités, que je souhaite utiliser moi-même en tant que client, est l’une des principales motivations de mon travail. J’attends donc avec impatience les prochains points de la liste des choses à faire d’Isotopes. En essayant de ne pas trop en dévoiler, je peux vous dire que nous allons nous consacrer à la revente de produits et à l’amélioration continue des informations sur les produits.
Quelles sont les futures fonctionnalités que vous voulez voir à l’avenir ? Que pensez-vous de la nouvelle fonctionnalité de transparence ? Dites-moi tout dans les commentaires !
Depuis mon plus jeune âge, je suis passionné par les jeux vidéo. Ma fascination pour Mario Kart 64 s'est transformée en une curiosité sans fin pour la technologie. De la réalité virtuelle à l'automatisation des processus par le code, ma vie abonde aujourd'hui de nouveaux projets joignant l'utile à l'agréable.