Défi accepté ou tâches que les ingénieurs de Lamoda résolvent

Dans le e-commerce proviennent de différents domaines: fintech, développement de logiciels, télécoms. Et ils découvrent rapidement qu'ici aussi, c'est assez ennuyeux. Nous avons discuté avec des représentants de divers secteurs du service informatique des défis professionnels inattendus, des tâches et des points de croissance.

image

Drive, buzz et retour rapide


imageJe m’appelle Alexander Afenov, je suis responsable du développement du département commercial, je m’appelle Timlid Timlid. Avant de rejoindre Lamoda, il était impliqué dans le développement de l'externalisation pour les opérateurs mobiles. Depuis 4,5 ans chez Lamoda je suis passé de développeur intermédiaire à chef de département.

Comment cette croissance a-t-elle été organisée?

Le processus d'intégration est conçu de sorte que pendant la période d'essai, les développeurs déploient de nouvelles fonctionnalités (et parfois même des projets entiers) en production. Les tâches et les objectifs du test sont sélectionnés en fonction du grade et des caractéristiques du nouvel employé, et même après les trois premiers mois, ils continuent de lui enseigner et de l'immerger dans l'entreprise et les spécificités des systèmes informatiques: à travers des auto-tests, ils montrent le déroulement des processus métier, lors de la révision du code, ils partagent les bases de la culture de développement interne , expliquez quelles parties des projets peuvent être refactorisées et ce qui sera bientôt apporté à de nouveaux services. Cependant, une compréhension vraiment approfondie du fonctionnement du système n'apparaît pas immédiatement. Pour cela, à mon avis, nous devons travailler environ un an.

Afin de s'y habituer plus rapidement et de tout ressentir avec vos mains, ainsi que pour la rotation des connaissances au sein des équipes, il existe un service d'assistance de garde (ici, c'était mon gros rapport sur Teamleadconf ). En une semaine, l'un des ingénieurs résout les problèmes qui surviennent dans le système, lorsque les tâches prioritaires se terminent, il les prend dans l'arriéré technique.

Pour les braves et désespérés, et ceux qui veulent maintenir le système, il y a des quarts de nuit. C'est un défi intéressant pour ceux qui veulent pomper rapidement. La nuit, vous pouvez vraiment entrer en relation étroite avec le système, car une partie des processus commerciaux se déroulent pendant les heures strictement non ouvrables.

Par exemple, je m'assois pendant la journée et je programme quelque chose, je libère le rouleau et tout va bien, puis je pars en service et tard dans la soirée, je vois que les marchandises sont reçues dans l'un des entrepôts de transit, et en raison d'une erreur dans le système informatique, quelque chose déchirer un processus commercial. En pratique, cela se passe ainsi: plusieurs commerciaux sont assis dans un entrepôt, ne peuvent pas terminer la journée de travail et rentrer chez eux. En ce moment, vous pouvez et devez sentir vos mains sur le processus opérationnel, réparer, aider et comprendre comment tout fonctionne. Et à d'autres moments, vous ne rencontrez pas cela, et vous n'avez pas à y faire face pendant des années. Combiné avec motivation financière et dynamisme - c'est très cool.

Et maintenant?

J'ai maintenant une tâche de gestion globale - rassembler et unifier toutes les équipes travaillant avec des fonctions commerciales. Nous allons résoudre ce problème de deux manières: par la rotation des tâches entre les équipes et par l'implication de nos «loups-loups» - architectes système, qui surveilleront également les connexions horizontales au sein des équipes et entre elles. Pour que chaque équipe devienne indépendante, il faut parfois développer les gars et leur donner différentes tâches et la possibilité d'apprendre de nouvelles technologies: parfois les développeurs PHP se connectent à des projets en Java et Go. Depuis 2018, tout le monde dans ma région travaille avec Kafka, qui est devenu un élément important de notre infrastructure, une technologie généralement acceptée et l'un des moyens les plus populaires d'échanger des données entre les systèmes. (Voici un rapport sur la façon dont nous le faisons)

Tous les développeurs et autres membres de l'équipe doivent non seulement couper quelque chose dans le coin, mais aussi comprendre ce que font les voisins. Nous voulons qu'ils touchent les systèmes d'autrui de leurs propres mains: à l'avenir, cela rend les équipes plus indépendantes et leur permet de se heurter aux systèmes nécessaires pour résoudre le problème de l'entreprise.

Qu'est-ce qui vous a surpris lorsque vous êtes venu sur e-com?

À Lamoda, la communication avec un client et la façon dont les actions informatiques affectent la vie des gens et leur expérience réelle ont pris le dessus. Ici, ils ne sont pas intéressés par le bénéfice du moment, mais plutôt par la fidélité à long terme. Nous voulons que notre produit soit utilisé régulièrement. La principale spécificité du développement est la nécessité de répondre rapidement aux problèmes. Par exemple, quelque chose s'est cassé en nous, et au moment de la livraison des marchandises, il y a une personne vivante et ne peut pas payer son manteau.

Nous voyons quand, en raison de nos erreurs, les gens de l'entrepôt et de la livraison souffrent. Et nous nous réjouissons avec nos clients, par exemple, lorsque nous avons complètement repensé le processus de traitement des paiements et lancé les cartes-cadeaux, que tout le monde attendait.

Refaire tout à partir de zéro


imageJe m'appelle Alexandra Kamzeeva - j'ai travaillé dans le domaine de l'intégration de systèmes, il y a trois ans et demi, j'ai commencé à travailler en tant qu'analyste système chez Lamoda.

Pourquoi ai-je besoin d'un analyste en développement?

C'est la première question de nombreux développeurs. Mais ensuite, lorsqu'ils travaillent avec un bon analyste de systèmes, ils ont un avant-goût et sont invités à appeler des analystes pour chaque projet. Les développeurs ne sont pas dédiés aux subtilités des processus métier, et sans cette connaissance, il est difficile de créer une solution idéale pour les entreprises. Un analyste est nécessaire pour effectuer une étude détaillée avant le début du développement, poser des questions, obtenir des réponses et tout prendre en compte dans la spécification compilée. Cela minimise le nombre d'itérations et d'erreurs et fait gagner du temps et des nerfs aux développeurs.

Quel a été votre premier grand défi e-commerce?

Mon défi le plus global et le plus intéressant jusqu'à présent est un nouveau système pour automatiser le processus de retour d'argent sur la carte d'un client. C'était l'une des faiblesses de notre système, elle a été reprise lorsque Lamoda était une startup. Il y avait beaucoup d'opérations manuelles qui augmentaient le risque d'erreurs. Nous avons commencé à réfléchir à des approches pour changer ce système, puis il y a eu un «coup de pouce magique» de l'État: la loi fédérale n ° 54 a été adoptée. En vertu de cette loi, toutes les entreprises proposant des biens et des services aux particuliers doivent transférer les données de vente au bureau des impôts via l'OFD (opérateur de données fiscales), en indiquant ce qu'elles ont vendu, quand et par quels intermédiaires. Tout cela est imprimé sur le chèque. Cela fonctionne dans la direction opposée: en plus des informations sur ce qui est vendu, vous devez transférer, pour lequel l'argent est retourné, et imprimer le chèque.

Nous avons divisé le projet en 7 phases, ce qui nous a permis de nous concentrer sur une fonctionnalité spécifique dans chaque phase et de les publier dans le produit l'une après l'autre. En conséquence, nous avons automatisé automatiquement tout ce que nous pouvions pour renvoyer les données correctes à la taxe sans corrections manuelles inutiles.

Non seulement un artiste, mais aussi un co-auteur


imageJe m'appelle Igor Grammatchikov et j'ai rejoint l'équipe de développement de la boutique en ligne il y a un an et demi d'une grande entreprise d'automatisation des processus commerciaux. Maintenant, je suis développeur front-end, je crée un site Web Lamoda. Avant cela, j'ai développé des interfaces pour les systèmes d'automatisation internes dans les grands magasins de réseau, où ce n'était qu'un développement pour une sorte de client abstrait. Maintenant, je sens que c'est mon produit et je veux être aimé non seulement par les utilisateurs, mais aussi par moi-même. J'achète moi-même régulièrement sur Lamoda, tous mes collègues et amis l'utilisent, et parfois nous voyons nous-mêmes des montants que nous pouvons réparer.

Les tâches sont différentes. Par exemple, j'ai eu la tâche de faire un panier déroulant sur le site afin qu'il fonctionne sur toutes les pages qui étaient déjà réécrites dans le nouveau framework vue.js et celles qui restaient sur l'ancien code backbone.js, jquery. Pendant plus d'un mois, j'ai empilé cette tâche et j'ai rencontré de nombreux problèmes. Mais au final, après de longues délibérations conjointes, nous avons développé une méthode, l'avons affinée, et maintenant tout le monde peut l'utiliser facilement et simplement.

Nous ne nous occupons pas uniquement de problèmes de masse. Récemment, nous avons rencontré des difficultés avec un bogue spécifique qui ne se produisait que pour un seul utilisateur. Dans mes travaux passés, tout le monde aurait simplement trouvé une explication polie et marqué, mais ici, nous réparons tout ce qui ne fonctionne pas comme il se doit.

C'est la première fois que je travaille vraiment sur l'agile: nous avons des stand-up quotidiens, de nombreuses rencontres avec le manager et le designer. Et le développeur n'est pas seulement un artiste, il est également co-auteur. À toutes les réunions, ils écoutent vraiment mon opinion, et pas seulement - l'ont écrite et sont allés voir. Vous dites que ça ne marchera pas, refaisons-le? Et l'équipe commence à penser le mieux.

Commentaires des utilisateurs et révision du code en tant que moteurs de développement


imageJe suis Viktor Barsukov - le développeur d'une des équipes d'automatisation d'entrepôt. Je travaille dans l'équipe depuis six mois, et avant cela je travaillais dans la fintech et dans l'opérateur de données fiscales. Nous communiquons constamment avec les employés de l'entrepôt - les utilisateurs de nos systèmes qui nous fournissent des commentaires de qualité. En fintech, ce n'était pas le cas - nous avons écrit et oublié. Et puis il est testé par quelqu'un, déployé par quelqu'un. Le fait que nous communiquions avec nos utilisateurs directs tous les jours et la révision du code en dur me motive beaucoup pour un développement ultérieur. Nous avons un slogan direct: les gars font un examen de code les uns des autres! Pour que la tâche puisse aller plus loin, deux ingénieurs et l'un des chefs d'équipe doivent l'examiner. C'est une pratique très cool: en plus des stand-ups, des critiques et des flashbacks, vous pouvez voir un changement de code en direct. Ainsi, l'image générale du développement apparaît.

Quels processus métier automatisez-vous?

Le travail sur l'automatisation des entrepôts comporte de nombreuses tâches: travailler avec l'approvisionnement des marchandises, placer les marchandises sur des étagères, gérer le tri, l'emballage et la collecte des commandes. Il existe également une interaction avec les employés de l'entrepôt: du comptage des KPI au choix de l'itinéraire optimal pour se déplacer entre les étagères.

Nous avons de petites tâches, et elles sont similaires à une histoire de détective, quand vous regardez les journaux, où et quand les choses ont mal tourné. C'est excitant. Nous résolvons maintenant un problème mondial - passer de Java à Kotlin dans une application Android, cela donnera plus d'opportunités du point de vue du développement.

Quel est le plus grand défi commercial que vous résolvez actuellement?

Maintenant, l'équipe de développement de l'entrepôt met en œuvre un autre projet majeur - Warehouse-2. Auparavant, nous travaillions avec un entrepôt physique, et la connexion du second nécessitera des changements majeurs dans tous les processus métier, et donc dans les systèmes qui les automatisent. La deuxième unité au début sera similaire à la première (à propos de la première, nous avons écrit un article séparé ). Mais à l'avenir, le deuxième entrepôt sera plus grand et le niveau d'automatisation des processus métier sera plus élevé et plus moderne.

L'une des tâches consiste à synchroniser les données entre les futurs systèmes afin que les données entre eux ne soient pas dupliquées et n'entrent pas en conflit.

J'ai mis en place le bus de communication basé sur le framework Camel. En fait, c'était ma première expérience avec Camel, donc la tâche n'était pas seulement d'affiner les itinéraires en tenant compte du deuxième entrepôt, mais aussi de gérer le cadre lui-même.

Axapta pendant trois mois


imageJe suis Elizaveta Naumenko et, depuis un an, je travaille dans l'équipe de support et de développement du département ERP (Enterprise Resource Planning) en tant que consultant en support. Notre département est engagé dans l'automatisation de tous les rapports financiers, la comptabilité et la distribution.

Le système est construit principalement sur Axapta et un peu 1C. Axapta interagit avec des dizaines de nos systèmes internes, car il est la source de données de base sur les achats et les finances. Axapta est constamment accessible par nos autres plateformes, il y a donc beaucoup d'intégration et de support.

Le principal défi pour moi a été une immersion rapide dans le processus, j'ai dû apprendre et me développer très rapidement. Au cours des trois mois de la période d'essai, j'ai appris comment nos processus fonctionnent sur Axapta. J'avais l'impression de poursuivre mes études supérieures (plus d'informations sur la façon dont nous partageons les connaissances au sein de l'équipe ici ).

Quelle est la partie la plus difficile de votre travail?

La partie la plus difficile est les tâches d'assistance urgentes. Selon SLA, il y a littéralement quelques heures pour résoudre les erreurs critiques. Il existe également des tâches complexes qui peuvent être étendues car une analyse plus approfondie est nécessaire. Si vous ne pouvez pas vous débrouiller seul, alors je peux aller voir mon superviseur et demander de l'aide. Même approcher le responsable du développement ERP et dire que je ne sais pas quoi faire ni comment résoudre le problème. Et cela est plutôt encouragé, car nous comprenons tous que si l'erreur n'est pas corrigée à temps, alors une situation d'arrêt pour l'entreprise est possible, ce qui est critique pour l'équipe, car c'est l'argent de l'entreprise. Si cela se produit, il y aura certainement une analyse rétrospective de l'incident: que faire et comment éviter les erreurs la prochaine fois.

Diversité technologique: Zoo, mais contact


imageJe suis Timur Nurutdinov, je suis responsable de tout le développement chez Lamoda. De mon point de vue, nous avons une grande e-com avec un grand nombre de processus, dans lequel de nombreuses personnes travaillent, et encore plus de personnes utilisent nos services. Pour que tout cela fonctionne, nous utilisons presque toutes les technologies modernes, car nous devons résoudre presque tous les problèmes informatiques possibles. Notre radar technique a un vrai zoo, mais c'est un contact, vous pouvez tout essayer. Bien sûr, nous avons moins de développement interne que les géants de l'informatique, mais les tâches et les projets ne sont pas plus faciles que les leurs.

Et qu'aimez-vous personnellement dans votre travail?

Le département informatique de Lamoda compte de nombreux utilisateurs: clients, clients commerciaux, employés de l'entreprise. Et pour moi, c'est un plaisir particulier de voir le résultat de notre travail - lorsque nous résolvons rapidement leurs problèmes. J'ai fait un rapport complet à ce sujet au HL ++ 2019, où j'ai expliqué en détail quels autres défis l'industrie du commerce électronique pose à un ingénieur, et pourquoi nous l'apprécions.


All Articles