Dans les coulisses

Une histoire d’amour entre un ingénieur logiciel et la logistique

Depuis près de cinq ans, je suis responsable du développement de logiciels logistiques chez Digitec Galaxus. Je n’aurais jamais imaginé être un jour aussi passionné par les questions de logistique. C’est pourtant arrivé. Je vais essayer de vous donner une explication.

Lorsque j’ai voulu prendre mon envol chez Digitec Galaxus juste après mes études et que j’ai reçu une offre pour un poste d’ingénieur logiciel junior dans une équipe logistique en cours de constitution, le moi inexpérimenté que j’étais ne savait pas vraiment comment s’imaginer le travail. Jusqu’à présent, le monde de la logistique m’était étranger. Pendant les études, il y avait peu de points de contact. Sur le moment, je ne pensais pas que cela pourrait être aussi varié que dans une équipe de boutique en ligne. Et encore moins que je publierais un jour un article de blog à ce sujet.

Ma rencontre avec la logistique

Les choses ont rapidement changé. Dès la première semaine, j’ai pu découvrir l’entrepôt de Wohlen. Un ingénieur de processus m’a fait visiter tout l’entrepôt, en même temps qu’un petit groupe composé de nouveaux membres du personnel. Nous avons pu découvrir tous les maillons de la chaîne et faire connaissance avec les personnes et les processus impliqués. Les chefs d’équipe qui nous ont présenté les processus ont très vite appris que j’étais un nouvel ingénieur logiciel. Ils n’ont bien sûr pas pu s’empêcher de me faire part de leurs premiers souhaits d’amélioration et de leurs premières idées. La visite m’a laissé une impression durable que j’assimilais encore tard dans la soirée. J’ai été enthousiasmé de voir à quel point l’homme et la technique travaillent ensemble de manière si coordonnée.

Les meilleures idées me viennent toujours sur place, dans l'entrepôt.
Les meilleures idées me viennent toujours sur place, dans l'entrepôt.

Face à tant d’impressions, je me suis demandé au début à quoi nous servons. Pour répondre à cette question, nous avons très tôt choisi de porter le nom approprié de « Lords of Logistics » et défini ainsi la mission de notre équipe : « distribuer des articles, les trouver tous, les faire sortir des entrepôts et les lier éternellement aux client·es ». Nous sommes en principe responsables du cœur de la logistique, à savoir le stockage des produits.

J’aimerais vous présenter trois de mes initiatives (projets) préférées, sur lesquelles j’ai eu l’occasion de travailler au cours des cinq dernières années.

Premier projet : la livraison éclair

Peu de temps après mes débuts, j’ai pu participer à une initiative de plus grande envergure : la livraison éclair dans la ville de Zurich. Comme de nombreux·ses client·es, je souhaite souvent que mes achats arrivent le plus rapidement possible devant ma porte. La livraison éclair doit y remédier. Pour une telle fonctionnalité, de nombreux souhaits et attentes se rencontrent, ce qui rend la solution rapidement très complexe.

L’initiative s’est étendue à de nombreux domaines de notre vaste environnement logiciel et a nécessité une bonne coopération entre toutes les équipes impliquées ; en commençant par la boutique en ligne, où nous avons dû élargir la disponibilité. Pour la première fois, elle ne s’appliquait qu’à certains codes postaux. Lors du passage en caisse, la disponibilité devait également permettre de bloquer le canal d’expédition « livraison éclair », car les client·es attendent leur commande le jour même et ne veulent pas être surpris·es par un manque de disponibilité. Pour cela, nous devions mettre à disposition des interfaces REST stables pour nos équipes de la boutique en ligne et respecter les performances et les SLA nécessaires.

Bien sûr, il y avait aussi toute une série de défis logistiques à relever, dont le plus grand, à mon avis, a été la coordination de tous les processus critiques en termes de temps. Nous devions nous assurer que les commandes sont enregistrées à temps, pour pouvoir les préparer avant la date limite et pour éviter de rater l’heure de départ du camion. Et si quelque chose se passait mal, nous voulions pouvoir réagir rapidement au moyen d’un logging, d’un suivi et d’une alerte adaptés.

Quand je suis dans l'entrepôt, j'aime toujours donner un coup de main.
Quand je suis dans l'entrepôt, j'aime toujours donner un coup de main.

Et nous avons confié la livraison à notre partenaire notime, qui doit disposer de toutes les données suffisamment tôt et correctement pour que celle-ci puisse avoir lieu le jour même. Pour notime, le processus n’était toutefois pas tout à fait le même que pour ses autres clients et clientes : nous voulions envoyer nos produits sans emballage, notime pouvait se charger de consolider les produits par adresse de livraison et de joindre les adaptateurs électriques.

Maintenant, je tiens dans ma main mes nouveaux Airpods, que j’ai commandés ce midi seulement. J’ai hâte d’écouter de la musique et je suis fier d’avoir fait partie de l’initiative « Livraison éclair ».

L’entrepôt à allées étroites : déconseillé aux claustrophobes

L’année dernière, j’ai pu endosser le rôle d’architecte de solutions pour une initiative de même envergure, ce qui signifie que la personne de contact du développement logiciel est responsable de la conception et de la mise en œuvre du logiciel. Notre mission : développer une solution interne pour un entrepôt à allées étroites qui devrait être prêt pour les fêtes de fin d’année 2022.

Voici à quoi ressemble l'entrepôt à couloir étroit aujourd'hui
Voici à quoi ressemble l'entrepôt à couloir étroit aujourd'hui

Un tel entrepôt a, comme son nom l’indique, des allées étroites. Les chariots pour allées étroites doivent être guidés en conséquence à l’intérieur des allées, pour éviter toute collision avec les étagères. De plus, il est très difficile de savoir où sont les emplacements de stockage libres ou quel est le numéro de l’emplacement.

Pour ces raisons, nous avons dû développer les processus de manière à ce qu’une sélection automatique des allées et des emplacements se fasse le plus efficacement possible. Les véhicules devraient également connaître les allées et les emplacements de stockage respectifs afin de guider l’employé·e rapidement et de manière contrôlée vers l’emplacement de stockage suivant.

Nous avons également profité de cette occasion pour rapprocher le code de notre équipe de l’architecture théorique. Cela signifiait pour nous que, pour la première fois, nous construisions un logiciel de gestion des stocks séparément de notre monolithe, dans un module (= microservice). La manière dont le module s’intègre dans l’architecture globale est quelque chose que nous élaborons, comme d’habitude dans notre entreprise, avec les patterns stratégiques du Domain-Driven Design. On en voit un exemple dans l’image de l’« architecture de haut niveau ».

Le stockage comme exemple d’architecture de haut niveau
Le stockage comme exemple d’architecture de haut niveau

Dans la mesure du possible, nous appliquons le principe suivant : un module, une équipe. Nous avons donc pu laisser libre cours à nos envies dans le cadre de notre module. Nous avons opté pour l’architecture Ognion avec des slices verticaux et CQRS. Au cœur de notre module, c.-à-d. du domaine, nous utilisons également des patterns tactiques du DDD, comme les agrégats, les objets de valeur, les événements de domaine et les services de domaine. Au niveau de la persistance, le Repository (dépôt) et les Unit of Work Patterns nous facilitent la vie.

Notre architecture interne au module
Notre architecture interne au module

Nous sommes très satisfaits du produit final, car nous pouvons désormais intégrer assez rapidement de nouvelles fonctionnalités et les tester avec notre suite d’essais composée de NUnit, FluentAssertions, AutoFixture, Moq et Playwright. Il existe bien sûr un potentiel d’optimisation. Un exemple serait surtout au niveau des événements d’intégration qui communiquent avec notre monolithe et synchronisent les stocks. Mais nous travaillons en permanence à l’amélioration de notre solution.

Du Hackfest à la visualisation des stocks

Avec une journée de travail fixe, nous nous retrouvons souvent après le travail dans notre propre bar pour boire une bière. C’est lors de l’une de ces rencontres que nous avons eu l’idée de construire une visualisation 3D de l’entrepôt afin de mieux nous représenter la situation sur place. Pirate comme je suis, je l’ai essayée dans un prototype avec Javascript 3D Library three.js La visualisation semblait déjà prometteuse dans ce prototype, mais malheureusement, elle était moins performante lors des mouvements de la caméra. Mais je n’ai pas pu m’en empêcher et j’ai présenté le prototype à l’équipe.

Heureusement, nous avons dans notre équipe Christian Sami, un développeur titulaire d’un Master of Arts en game design, qui a vu du potentiel dans mon prototype et qui savait exactement comment l’optimiser et l’élargir. Avec un autre ingénieur, il a continué à développer mon prototype lors du Hackfest 2022 et l’a transformé en une solution utilisable.

La visualisation finale de l’entrepôt en pratique
La visualisation finale de l’entrepôt en pratique

Ils ont pu résoudre le problème de performance grâce à différentes techniques : mise en cache des emplacements de stockage côté serveur, une texture centrale pour tous les emplacements et un grand maillage qui contient toutes les boîtes. Ils ont également intégré d’autres fonctionnalités utiles, comme l’une de mes préférées : le degré de remplissage sous forme de dégradé de vert à rouge. La visualisation étendue lors du Hackfest est aujourd’hui utilisée quotidiennement dans l’entrepôt. Elle aide les employé·es de l’entrepôt à configurer plus facilement l’entrepôt et à identifier visuellement les problèmes, par exemple lorsqu’il n’y a pas assez d’emplacements de stockage libres.

Que nous réserve l’avenir ?

Des projets tout aussi passionnants que par le passé se profilent à l’horizon. Actuellement, nous travaillons à l’extension de la livraison éclair, ce qui permettra à l’avenir à 60 % des ménages suisses de bénéficier de délais de livraison plus rapides, le jour même. Nous allons également nous attaquer à de nombreux problèmes techniques qui ont été quelque peu négligés dans le projet pilote, comme migrer le plus de code possible du monorepository vers le module.

Après avoir lu cet article de blog, êtes-vous vous aussi tombé·e amoureux·se de la logistique ? Vous trouverez certainement le grand amour chez Digitec Galaxus.

Cet article plaît à 58 personne(s)



Tech
Suivez les thèmes et restez informé dans les domaines qui vous intéressent.

Ces articles pourraient aussi vous intéresser

  • Dans les coulisses

    Lego et iPhone : les plus fréquentes recherches de la clientèle

    par Manuel Wenk

  • Dans les coulisses

    Trois jours de Hackfest : 27 équipes ont mis en œuvre leurs idées pour la boutique

    par Martin Jungfer

  • Dans les coulisses

    Les 54 heures du Hackfest de Digitec Galaxus

    par Martin Jungfer

6 commentaires

Avatar
later