Sbermarket

Stärkung des Teams eines Foodtech-Riesen

Sbermarket liefert Lebensmittel und Haushaltswaren von Supermärkten wie METRO, Auchan und Vkusville zum Kunden nach Hause. Die Kunden können ihre Bestellungen über die Website oder die mobile App aufgeben, und die Partner von Sbermarket erledigen den Rest. Die Mitarbeiter gehen mit einer Liste durch den Laden und wählen nur die frischesten Produkte aus. Anschließend liefern die Auslieferer die Bestellungen an die Kunden.

Evrone hat Sbermarket dabei geholfen, seinen digitalen Service zu verbessern, und unsere Entwickler setzen ihre Erfahrung und ihr Fachwissen weiterhin in mehreren internen Teams ein.

Die Herausforderung: Schnell mit einem Produkt auf Unternehmensebene vertraut werden

Im Jahr 2020 haben viele Menschen aufgrund der Pandemie begonnen, von zu Hause aus zu arbeiten oder mussten in Quarantäne gehen. Das hat zu weitreichenden Veränderungen und Anforderungen beim E-Shopping geführt. Sbermarket hat diese Gelegenheit genutzt, den Kunden das Leben leichter zu machen und im E-Lebensmittelmarkt exponentiell zu wachsen, denn die Akzeptanz von Online-Lebensmittelbestellungen nimmt immer weiter zu.

Dazu war es notwendig, das Entwicklerteam schnell aufzustocken, um die erhöhte Arbeitslast zu bewältigen und mit der Entwicklung neuer Funktionen Schritt zu halten. Gleichzeitig mussten alle neuen Experten über ausreichend Erfahrung und die erforderlichen Werkzeuge und Kenntnisse verfügen, um die Anlernzeit so schnell wie möglich abzuschließen und sich in die Entwicklung einzubringen.

Darüber hinaus war es notwendig, Teile des Projekts in separate Dienste aufzuteilen, weshalb auch Arbeiten an der Infrastruktur erforderlich waren. Jeder einzelne Microservice musste mit Code verknüpft und die Netzwerkinteraktion mit anderen Komponenten des Systems musste konfiguriert werden. Der Kunde hat darüber hinaus ein Team mit Kenntnissen und Erfahrungen bei der Implementierung von Teststrategien in einer Microservice-Architektur benötigt.

Das Evrone-Team hatte bereits durch die Entwicklung eines groß angelegten Foodtech-Produkts mit Schwerpunkt auf der Lieferung nach Hause Erfahrungen gesammelt, und unser Technologie-Stack hat gut zu Sbermarket gepasst. Unsere Spezialisten haben die anspruchsvollen Vorstellungsgespräche erfolgreich bestanden, und wir sind Teil des Sbermarket-Teams geworden.

Die Lösung: Universelle Senior-Entwickler und QAs für jede Aufgabe

Im Laufe des Jahres hat Evrone die verschiedenen Projektteams von Sbermarket um Frontend-Entwickler, Backend-Entwickler und QA-Ingenieure erweitert. Wir haben bei der Entwicklung von internen und externen Funktionen geholfen und auch das Wissensmanagement im Testteam aufgenommen.

Die Entwicklerteams bei Sbermarket sind aufgeteilt und existieren unabhängig voneinander. Große Aufgaben werden komplett intern erledigt und die Evrone-Experten werden je nach aktuellem Bedarf auf diese verteilt.

Manuelles Testing und Wissensmanagement

Sbermarket hat hohe Anforderungen an das Niveau unserer Experten gestellt. Das liegt daran, dass es eine Menge dringender Arbeiten am Projekt gibt und nur ein erfahrener Experte schnell in das Projekt einsteigen kann. Ein Junior hätte nicht die nötige Erfahrung, das zu bewerkstelligen. Weiterhin müssen Senior-QA-Ingenieure viele Tricks und Hacks kennen und über Testkarten und -szenarien, Optimierungsansätze und das Wissen verfügen, welche Fälle vor der Entwicklung mit dem Team besprochen werden müssen.

Durch den Einsatz unserer ausgelagerten Senior-QA-Ingenieure hat Sbermarket die multidisziplinären, hochqualifizierten Spezialisten erhalten, die sie benötigten. Sie können sich von Team zu Team wechseln und dringende Aufgaben abschließen, ohne Zeit zu verlieren.

Neben dem eigentlichen Testing haben wir das Unternehmen bei Aufgaben der Wissensvermittlung unterstützt. Da das gesamte Unternehmen dynamisch wächst, verläuft der Einstellungsprozess schnell, und die neuen Mitarbeiter müssen ohne große Umwege einsatzbereit sein. Einer unserer QS-Experten hat also als Wissensmanager fungiert und die auf Wissensmanagement basierenden Systeme beaufsichtigt und gepflegt.

Der Wissensmanager hat Informationen über die Bedürfnisse des Projekts, undurchsichtige Prozesse sowie fehlende Anweisungen und Wissen gesammelt, diese aufbereitet, in einer lesbaren und zugänglichen Form gespeichert und anderen Mitarbeitern dabei geholfen, diese Informationen zu nutzen. Diese Informationen müssen auch auf dem neuesten Stand gehalten werden, da sie unter Umständen schnell obsolet werden.

Die Weitergabe von Informationen hilft den Mitarbeitern gleich zu Beginn, angefangen beim Onboarding. Wenn ein neuer Experte zum Team stößt, weiß er, wo er alle Informationen erhält, die er für den Anfang braucht: die Zusammensetzung seines Teams, seine Ziele, OKRs, eine Liste der im Projekt verwendeten Tools, Informationen über den Technologie-Stack, die Architektur, Deployment-Merkmale und den Zeitplan für Anrufe und Meetings. Auch das Onboarding-System zwischen den Teams wurde neu aufgebaut, ebenso wie die allgemeine Wissensbasis für die QA, um den Wissensaustausch mit anderen Kollegen bequemer zu gestalten. Das neue Wissensmanagement-System wurde auf Basis von Confluence aufgebaut und unterstützt dabei, wertvolles Wissen zu standardisieren.

Routinemäßige Frontend-Aufgaben

Die Spezialisten von Evrone haben ihre Arbeit am Frontend mit kleinen Routineaufgaben begonnen: Ändern von Texten und Ersetzen von Bildern und Animationen. Diese Dinge haben uns dabei geholfen, uns mit der Codebasis vertraut zu machen, was bei Refactoring-Aufgaben enorm hilfreich war.

Wir mussten zum Beispiel die Reihenfolge ändern, in der Popup-Modale und Benachrichtigungen angezeigt werden. Vor der Überarbeitung war die Anzeige eher chaotisch und hat sich oft überlappt, was für den Benutzer irreführend war. Nach der Überarbeitung erschienen diese Meldungen der Reihe nach, so dass klar wurde, welche wofür gilt.

Ändern des Authentifizierungsprotokolls

Die Verwendung einer Telefonnummer zur Anmeldung bei einer Anwendung ist sicherer als die Verwendung einer E-Mail-Adresse und eines Passworts. Bei letzterem können Angreifer z. B. durch Leaks anderer Dienste Zugriff auf Ihr Postfach erlangen. Das ist nun unmöglich, denn um sich anzumelden, müssen Sie das Telefon in der Hand halten, das die SMS empfängt.

Wir haben die gerenderten Bildschirme untersucht, den Code analysiert und die notwendige Funktionalität im Frontend implementiert. Nach der Einführung der neuen Authentifizierung haben wir dabei geholfen, Probleme bei der Benutzermigration zu vermeiden.

Wenn die Anmeldung gemäß der neuen „Bestimmungen“ sofort aktiviert wird, können einige Benutzer verloren gehen, da viele die Anwendung nicht schließen, sondern einfach minimieren, oder eine endlose Websitzung aufrechterhalten. Aufgrund der neuen Bestimmungen müssten sich diese erneut ein Konto erstellen, und viele von ihnen würden sich von dieser Komplikation abschrecken lassen.

Daher haben wir Benutzer in Teilen migriert. Wir haben mit denjenigen begonnen, die über dieselbe Telefonnummer bestellt haben. Wir haben ganz einfach die verwendete Nummer mit ihrem Konto verknüpft, so dass sich diese Kunden auf eine neue Art und Weise anmelden konnten.

Für andere aktive Benutzer haben wir Onboarding-Bildschirme mit Anweisungen zum Verknüpfen einer Telefonnummer mit einem Konto erstellt. Mithilfe von AB-Tests haben wir ermittelt, zu welchem Zeitpunkt die Anweisungen angezeigt werden sollten, um möglichst viele Konten mit verknüpften Telefonen zu erhalten.

Mit diesen Methoden ist es uns gelungen, den Großteil der Zielgruppe, also die aktivsten Nutzer, zu erfassen. Jeder, der auf Probleme gestoßen ist, wurde zum technischen Support geschickt, so dass wir diese gesamte Phase ohne Verluste durchlaufen konnten.

Erstellen eines Subsystems für AB-Tests

Eine weitere herausfordernde Aufgabe war die Erstellung eines Subsystems für AB-Tests (mit dem die Authentifizierung per Code von SMS getestet wurde). Wir waren an der Erstellung der ersten Version beteiligt, ein MVP, das den Anforderungen der Produktanalysten entsprach. Natürlich gab es auch Open-Source-Lösungen, aber deren Funktionalität war unzureichend, so dass das Management entschied, dass die Entwicklung einer eigenen Lösung sinnvoll sei.

Dieses Subsystem wurde in AA-Tests debugged (Überprüfung der korrekten Verteilung der Benutzer) und gestartet. Es arbeitet weiterhin korrekt und hilft den Analysten bei der Datenerfassung.

Backend

Im Backend haben sich unsere Entwickler an den Aufgaben des Orderroutings und der Zahlungsabwicklung beteiligt. Der Auftragsrouter berechnet, geleitet von seiner internen Geschäftslogik, wie der Auftrag am profitabelsten und schnellsten ausgeliefert werden kann und entscheidet, ob es sich lohnt, ein Partnertaxi zu rufen oder nicht. Wir arbeiten derzeit weiterhin an diesem System.

Aufgrund der Umstellung auf ein neues Zahlungsgateway war eine neue Methode der Weiterverarbeitung erforderlich. Gleichzeitig sollte sichergestellt werden, dass die Benutzer den Unterschied beim aufgeben einer Bestellung nicht bemerken.

Obwohl beide Ziele im „verborgenen“ Backend angegangen wurden, stehen sie in direktem Zusammenhang mit den Geschäftsergebnissen. Zum Beispiel wird die Automatisierung von Logistik und Lieferung zu einer verbesserten Benutzererfahrung führen.

Darüber hinaus helfen unsere Spezialisten bei verschiedenen APIs und der Umstellung des Admin-Panel-Frontends auf eine separate Anwendung.

Übertragung des Admin-Panels von Rails-Templates in die React-Anwendung

Die Backoffice-Mitarbeiter verwenden das Admin-Panel, um Produkte, Geschäfte und Händler hinzuzufügen sowie Betriebsarten, Lieferzeiten usw. zu verwalten. Der technische Support nutzt es ebenfalls, um Bestellungen manuell zu verwalten, falls es ein Problem gibt. Tatsächlich werden alle Website-Einstellungen über das Admin-Panel vorgenommen.

Zuvor hatte das Admin-Panel mit Rails-Templates gearbeitet, und das Rendering des Frontends fand im Backend statt, wodurch die Server belastet wurden. Jetzt wechseln wir auf React, wodurch es allmählich zu einem eigenständigen Projekt wird. Das Backend wiederum wird angepasst, um die React-Anwendung mit den notwendigen Daten zu versorgen, und zwar durch die Überarbeitung alter und die Erstellung neuer API-Endpunkte, was auch die Erstellung und Ergänzung der Dokumentation erfordert.

Entwicklung einer universellen API für Vertriebspartner

Im Backend arbeiten wir an einer neuen API für eine Einbindung externer Partner und berücksichtigen dabei deren Bedürfnisse. Die wichtigsten Endpunkte dieser API beziehen sich auf die Auftragsabwicklung, einschließlich Erstellung, Bewertung, Status und Austausch von Zahlungsinformationen.

Darüber hinaus helfen wir manchmal bei der Lösung von Vererbungsproblemen, da frühere Ansätze unter neuen Gegebenheiten möglicherweise nicht funktionieren. Aus diesem Refactoring resultiert eine erhöhte Leistung.

Das Ergebnis

Wir arbeiten weiter an Sbermarket und fügen neue Mitarbeiter zu den bestehenden Teams hinzu. Auch Experten, die schon lange im Einsatz sind, wachsen durch ihre Arbeit am Projekt und bringen immer mehr Nutzen.

Wir unterstützen Sbermarket beispielsweise auch mit Interviews. Im Wesentlichen bieten wir technische Interviews als Dienstleistung an, da mit dem Wachstum des Produkts und dem Beitritt weiterer Entwickler eine genauere Betrachtung ihrer Kompetenzen erforderlich ist. Der QA-Manager, der die Funktionen eines Senior-Testers mit dem Bereich des Wissensmanagements kombiniert, ist nun eng in die Ansammlung und Verbreitung von Wissen eingebunden, allerdings in der Größenordnung des gesamten Unternehmens Sbermarket.

Bei abgeschlossenen Aufgaben beraten unsere Entwickler und Tester weiterhin andere Teams und neue Mitarbeiter.

Das Wachstum unserer Spezialisten und ihre Fähigkeit, die Vorstellungsgespräche des Kunden erfolgreich zu bestehen, zeigen, dass Sbermarket im Team von Evrone die benötigten hochqualifizierten Experten gefunden hat – Experten, die über die nötige Erfahrung und Einsicht verfügen, um mögliche Fehler im Design und in der Entwicklung des Dienstes zu erkennen.

Wir planen, das Team von unserer Seite aus zu erweitern und uns an der Entwicklung von Microservices in Go zu beteiligen, da wir Erfahrung mit dieser Technologie sowohl in Foodtech- als auch in Fintech-Projekten haben.

Wenn Sie QA-Tests auslagern möchten oder zuverlässige Experten mit Erfahrung im E-Grocery-Bereich benötigen, die schnell in Ihren Workflow einsteigen und Ihr eigenes Entwicklungsteam verstärken, füllen Sie das untenstehende Formular aus und wir werden uns mit Ihnen in Verbindung setzen, um Ihr Projekt zu besprechen.

Sbermarket ist ein komplexes und großes Projekt. Daher erwarteten wir von den Spezialisten nicht nur starke technische Fähigkeiten, sondern auch den Wunsch, sich in das Produkt zu vertiefen und es mit Interesse zu verstehen. Unter diesem Gesichtspunkt ist das Team von Evrone ein ausgezeichneter Partner. Sie erfüllen nicht nur die zugewiesenen Aufgaben und helfen bei der Einführung neuer Funktionen, sondern teilen auch tiefgreifendes Fachwissen in verschiedenen Bereichen: Entwicklung, QS oder Wissensmanagement.
Dmitry Chudinov
Leiter des Frontends bei Sbermarket
Kontaktieren Sie uns
Schwebt Ihnen ein Projekt vor?
Setzen wir es gemeinsam um
Datei anhängen
Die Dateien müssen kleiner als 8 MB sein.
Zulässige Dateierweiterungen: jpg jpeg png txt rtf pdf doc docx ppt pptx.
Diese Website wird durch reCAPTCHA geschützt. Es gelten die Datenschutzerklärung und die Nutzungsbedingungen von Google.