Wie man in 3 Wochen ein neues Land übernimmt

Stellen Sie sich eine kugelförmige Pizzakette in einem Vakuum vor, das die Welt erobern will (es ist nie passiert, und hier ist es wieder). Sie hat bereits Pizzerien in 13 Ländern eröffnet und plant, diese Zahl zu erhöhen. Noch vor einem Jahr war der Start (einer Website, einer Anwendung und eines Informationssystems) selten - 1 Land pro Jahr, und jetzt wurde die Laufzeit auf 3 Wochen verkürzt. Was uns daran gehindert hat, bevor das IT-Team geholfen hat, wie wir Excel losgeworden sind und wie sich herausgestellt hat, dass es schneller geht, werden wir im Artikel erzählen.







Dodo Pizza ist ein internationales Unternehmen - wir sind in 13 Ländern tätig und planen nicht aufzuhören. Die meisten Pizzerien befinden sich in der Region Eurasien: Russland, Kasachstan, Weißrussland, Kirgisistan, Usbekistan. Dies ist bereits ein großes operatives Geschäft, wir sind führend in der Anzahl der Pizzerien. Dieses Geschäft muss nur eingehend unterstützt und weiterentwickelt werden, da hier Geschäft und IT an verständlichen Funktionen zusammenarbeiten.



  • .

  • .

  • .

  • .

  • : , LTV .



Und dann kommt (plötzlich) ein Unternehmen und sagt: „Wir wollen in Nigeria anfangen“, in demselben 13. Land, in dem bereits zwei Pizzerien betrieben werden. Bis 2019 war der Start selten - 1 Land pro Jahr. Das Entwicklungsteam, das den Start begleitete, wechselte ständig. Bei diesem Ansatz lag kein Schwerpunkt auf der Beschleunigung.



Es ist nicht klar, ob das neue Land "schießen" wird oder nicht. Wer wird das Land starten? Aus welchem ​​Produkt müssen Sie ein Team nehmen? Das „glückliche“ Team muss von seiner Killer-Funktion ablenken, sich daran erinnern, wie das System bereitgestellt wird, und sich bestimmten Schwierigkeiten stellen. Lassen Sie uns herausfinden, welche.



Gründungsschwierigkeiten für ein Unternehmen



Die Entdeckung eines neuen Landes ist (vielleicht) eine Überraschung. Manchmal gibt es Möglichkeiten im Unternehmertum, die einfach nicht verpasst werden können, selbst wenn Sie nicht bereit sind. Zum Beispiel:



  • Es ist ein starker Partner erschienen, der bereit ist, Risiken einzugehen.

  • ein starker lokaler Spieler verlässt die Region;

  • der Partner suchte, suchte, suchte und fand plötzlich eine Traumvoraussetzung;

  • Nach der internationalen Geschäftsreise stellten wir fest, dass eine Verschiebung nicht mehr möglich war und wir das Land dringend starten mussten.



Wir versuchen, Eröffnungen im Voraus zu planen, aber manchmal nimmt das Leben seine eigenen Anpassungen vor.



Einzelne Starts. Wenn Sie ein Land pro Jahr gründen, ist es nicht sinnvoll, ein engagiertes Team zu führen. Das Entwicklerteam, das das letzte Land ins Leben gerufen hat, hat ein weiteres Killer-Feature geschnitten.



Wenn es an der Zeit ist, ein neues Land zu eröffnen, sind alle Checklisten veraltet, und das Team, das das letzte Land ins Leben gerufen hat, kann nur bei Anfällen und Starts helfen. Bei diesem Ansatz lag kein Fokus darauf, den Systemstart zu beschleunigen. Start und okay - wir sind in einem Jahr zurück :) 



Razfokus.Aufgrund einzelner Starts muss sich das Entwicklungsteam, das sich mit dem neuen Land befassen wird, von den Killer-Features für Eurasien lösen, um zweifelhafte Vorteile in Europa oder Afrika zu erzielen. Ein neues Land, die erste Pizzeria, die Investition wird sich in 1-2 Jahren auszahlen - vieles kann schief gehen.



Viele Komponenten, ein riesiges System und viele Verbindungen - es gibt kein eingebautes Startsystem und keine Experten. Das Starten eines neuen Landes ist aus Sicht von Dodo IS nicht nur ein Kopieren und Einfügen des Codes oder das Drücken einer magischen Taste. Dies ist ein separates Projekt mit eigenen lokalen Merkmalen. Der Start dauert 3-4 Monate (manchmal länger).



Jedes Land benötigt sein eigenes Fachwissen, beispielsweise zum Scheckfiskalisierungssystem. Um in lokale Systeme zu integrieren, müssen Sie die Besonderheiten in Adressensystemen kennen. In Slowenien ist beispielsweise der Nachname des Kunden Teil der Adresse, die bei den Kundendiensten berücksichtigt werden muss.



Es gibt viele ähnliche Funktionen, und unser Team verfügt definitiv nicht über alle Kenntnisse. Dies bedeutet, dass wir Menschen von dem anderen Team ablenken werden, das über Fachwissen verfügt - Sucht für lange Zeit.



Technische Schwierigkeiten



Dodo Pizza wurde im April 2011 eingeführt. Im Juni 2011 begann die Entwicklung von Dodo IS. Zu dieser Zeit dachte niemand, dass wir bald Pizzerien in anderen Ländern eröffnen würden, weil es notwendig war, das wachsende Geschäft in Russland schnell (sehr, sehr schnell) zu unterstützen. Zum Beispiel erschien die erste Kasse eines Restaurants in zwei Wochen der Entwicklung im System, da es ohne sie unmöglich war, ein Restaurant in der ersten Pizzeria zu eröffnen.



Es war keine Zeit, über alles nachzudenken und Skalierbarkeit und länderunabhängige Komponenten in die Systemarchitektur einzubeziehen. Das Letzte, was wir dachten, war, dass der Code, den wir jetzt schreiben, irgendwo in Slowenien oder den Vereinigten Staaten verwendet wird. Daher hat sich im Laufe der Jahre des schnellen Wachstums eine Menge technischer Schulden angesammelt, was den Start jetzt verlangsamt.



Die Bereitstellung der Website und des Backoffice von Dodo IS dauert lange... Sie können nicht einfach eine Domain für ein neues Land in den Nginx-Konfigurationen übernehmen und registrieren und das System über die Schaltfläche bereitstellen. Das ist schade.



Darüber hinaus hat jedes Land seine eigenen Besonderheiten. Es ist notwendig, dem Partner ein Produkt zu geben, das für ein bestimmtes Land geeignet ist, und nicht nur einen "allgemeinen Dodo IS". Beginnend mit der Anpassung von Adressformaten, Telefonnummern, Arten von Straßen und Siedlungen, Organisationen und endend mit globaleren Anpassungen. Fügen wir dazu viele manuelle Operationen hinzu und kopieren und einfügen nach Code: Aufzählungen, Konfigurationen, Skripte.



Übersetzungen in die Landessprache . Wir alle lieben Excel: Tabellen erstellen, Linien färben, komplexe Formeln schreiben, auf Daten aus einem anderen Dokument verweisen. Dafür wurde es entwickelt.



In Excel haben wir Zeilen mit Begriffen an den Partner hochgeladen, er hat übersetzt (ohne Kontext und Bilder), wir haben Excel mit Übersetzungen zurück geladen und die Übung wiederholt. Dafür wurde Excel nicht erstellt. Ja, und die Ressourcen enthielten leider nicht alle Projekte und Zeilen - der Code musste bearbeitet werden.





Ein Beispiel für eine Datei mit Übersetzungen.



Darüber hinaus erscheinen nach dem Start des Landes neue Funktionen im System - Teams für Eurasien hören nicht auf, Funktionen zu schreiben, während wir das Land ausrollen. Für diese Funktionen werden Übersetzungen in Excel benötigt. Lang, teuer, unpraktisch. Ohne Entwickler geht das nicht.



Kassen und Steuern... Restaurantkasse und Lieferkasse sind Bestandteile von Dodo IS. Ohne sie kann weder in einem Restaurant noch zur Lieferung etwas verkauft werden. Die Kaufabwicklung muss für das neue Land angepasst werden. Der Code befindet sich in einem Monolithen und weist viele Abhängigkeiten auf. Es stellt sich heraus, dass neben der Geschäftsentwicklung (Steuern, Steuersätze, Anforderungen für einen Scheck) die Logik für das neue Land sorgfältig geschrieben werden muss, damit der Druck von Schecks in Russland nicht unterbrochen wird. 



Mobile Anwendung . Wir wussten nicht, wie wir es sofort mit der Eröffnung des Landes starten sollten: Es gab nicht genug Fachwissen, Zeit, alles. Der Partner musste manchmal sechs Monate (manchmal länger) warten, bis wir die Anwendung nach der Eröffnung des Landes starteten . Es ist unangenehm. 



Hinweis... Es gibt eine Anwendung für alle Länder - die Situation ist wie bei Registrierkassen. Wenn Sie eine Anwendung in Rumänien starten, ist es wichtig, andere Länder nicht zu "binden".



Das Starten ist ebenfalls Unterstützung . Landing Pages, Küchenalarmtöne, Übersetzungsfehler - all diese kleinen Belästigungen treten normalerweise in den ersten Monaten auf. Daher ist nach dem Start des Landes auch die Unterstützung wichtig.



Wie wir geschäftliche Probleme gelöst haben



Wir waren im Mai 2019 in einer solchen Situation. Und 2020 versprach heiß zu werden - wir wollten 4 Länder gleichzeitig starten. Ich musste etwas tun, um es nicht zu vermasseln.



Wir haben ein neues unabhängiges Produkt herausgegriffen - "Einführung neuer Länder" - und uns ein ehrgeiziges Ziel gesetzt - die Einführung eines Landes "auf Knopfdruck". Mit einem Knopf könnten wir:



  • Stellen Sie das System so bereit, wie es ist.

  • , : , , ;

  • , -, . 



Befehl. Das Ziel kann ohne Team nicht erreicht werden. Daher stimmte das MyLittleCoders-Team im Mai 2019 zu, 100% der Zeit das Country Discovery-Team zu werden. Wir haben die Eröffnung eines neuen Produkts hervorgehoben: Es gibt eine Metrik für die Startgeschwindigkeit, es gibt ein Team, der Beschleunigungsstau ist voll von überfüllten Aufgaben. Es kam alles zusammen - es ist Zeit zu handeln.





MyLittleCoders (MLC)



Story Map- Teamlogo . Die langfristige Strategie ist klar: Beschleunigen, Menschen suchen, Kompetenzen übernehmen. Es war notwendig zu lernen, wie man "das Land schlüsselfertig startet", ohne andere Teams abzulenken.



Wir haben mit dem Start von Nigeria 3 Monate vor der Eröffnung begonnen. Nigeria wurde zu einem Testland, aus dem systematisch ein klarer Startprozess aufgebaut wurde. Und so haben wir es gemacht. 



Abgesehen von unserem Hauptziel, im Oktober eine Pizzeria zu eröffnen, haben wir die zeitaufwändigsten Dinge aufgezeichnet, auf die wir nach dem Start zurückkommen müssen. Nach dem Start haben wir eine Story Map erstellt und den Beobachtungen zufolge die Dinge notiert, die am meisten Zeit in Anspruch nehmen.





Fragment der Story Map des Starts eines neuen Landes.



Wie wir technische Probleme gelöst haben



Assistent für die anfängliche Ländereinstellung. Die Analyse der Story Map ergab, dass einige der Phasen automatisiert werden können, was den Start erheblich beschleunigt. Daher war die erste signifikante Verbesserung der Länderassistent.



Nach dem Kauf eines neuen iPhone werden die Einstellungen des alten Telefons mit wenigen Klicks übertragen - 3 Bildschirme und das neue Telefon ist betriebsbereit. Wir wollten etwas Ähnliches für Dodo IS tun.



  • Führen Sie den Länderinitialisierungsassistenten aus.

  • : « ».

  • , , , .

  • ( ).

  • Next, next, next — - .


Im Laufe der Arbeit änderte sich das Konzept. Zunächst wollten wir alle Systemeinstellungen zum Länderassistenten hinzufügen (das Produkt, von dem RO wollte und träumte, das Team war zurückhaltend und optimistisch). Wir hatten jedoch bereits ein internes Admin-Panel, das im Setup-Assistenten nicht dupliziert werden konnte. Dann haben wir nur das Minimum an Einstellungen darin gelassen, ohne das das System einfach nicht starten könnte. Produkte, Menüs, Lieferantenpreise und Verpackungen können später angepasst werden.



Warum kann das System nicht ohne so viele Parameter gestartet werden? In der Vergangenheit waren solche Parameter für die Entwicklung des Dodo IS erforderlich. Es ist eine separate Aufgabe für das Team, solche Abhängigkeiten zu entkoppeln und für den Start optional zu machen.



Am Ende hat alles super geklappt. Anstelle vieler Stellen, an denen Sie etwas bearbeiten müssen, bieten wir:



  • 1 Assistenten für die Ersteinrichtung durchlaufen;

  • wir bekommen einen neuen Dump des Systems;

  • Wir geben es den Jungs von der Infrastruktur zum Rollen.



Zwei Tage (und nicht wie zuvor ein Monat) - und das System ist betriebsbereit.





Ein Beispiel für die Konfiguration von Übermittlungsparametern mithilfe des Assistenten für die Erstkonfiguration.



Starten Sie Checklisten. Eine Beschleunigung ist nicht immer nur durch Entwicklung und Automatisierung möglich. Ein Beispiel hierfür sind Startup-Checklisten. Manchmal reicht es aus, zu beschreiben, was und wofür zu tun ist, wo zu drücken ist, wen zu treten ist, welches Skript zu rollen ist. 



Daher hat das Analysten-Entwickler-Team den gesamten Prozess akribisch beschrieben. Als Ergebnis haben wir ein großes Dokument mit Zahlen und Punkten: Was ist vor dem Start zu tun, was während und was danach?





Fragment der Start-Checkliste.



Das Recycling alter Checklisten macht Spaß. Die Entwickler gingen abwechselnd mit ihren Händen durch die Checklisten, öffneten und richteten Testländer ein, sammelten Schmerzen und verbesserten die Checklisten. Und so mehrmals. Der Bonus dieses Ansatzes ist das tiefe Eintauchen der Jungs in das System selbst.



Ländereinstellungen von einem Punkt aus . Das Sammeln aller Einstellungen mit dem Länderassistenten reicht nicht aus. Es ist wichtig, dass das System und seine Komponenten diese Einstellungen auch aus demselben Repository lesen. Ansonsten stellen sich lustige Situationen heraus. Zum Beispiel, wenn der Büroleiter die richtige Währung (für Nigeria, Naira) anzeigt und die Vitrine der Stücke auf verräterische Weise Rubel anzeigt. Jeder Dienst sah es als seine Pflicht an, seine eigenen Einstellungen zu erstellen. Ich musste 7-8 Stellen im System durchlaufen, damit alle endlich die richtige Währung zeigten. 



Ich wollte die Einstellungen an einer Stelle bearbeiten und dann im gesamten System anwenden. In der Realität stehen wir vor der Notwendigkeit, Änderungen an fast jeder Komponente im System vorzunehmen. Die Änderungen sind gering, aber es gibt viele Komponenten. 



Durch die titanischen Bemühungen des Teams, 100.500 Zeilen Remote Copy-Paste und eine Prise Programmiermagie übernimmt das System nun Einstellungen aus einem einzigen Repository. Die "Schwänze" bleiben weiterhin erhalten, aber die meisten Einstellungen wurden zentralisiert. Jetzt können Sie eine Telefonmaske oder ein Adressformat oder andere Einstellungen für ein ganzes Land an einem Ort festlegen.



Hinweis . Die Geschichte, wie wir Copy-Paste für eine lange Zeit ausgeschnitten und das System für die Verwendung des Verzeichnisdienstes übersetzt haben, verdient einen separaten technischen Artikel. Bei Interesse schreiben Sie in die Kommentare.



Übersetzungen. Anstelle von Excel wollte ich ein einfaches und verständliches System zur Lokalisierung, damit:



  • Es war nicht erforderlich, etwas in Dateien von Drittanbietern hochzuladen.

  • Benachrichtigungen erhalten, dass eine neue Übersetzungszeile hinzugefügt wurde;

  • Es war klar, welche Zeilen und in welcher Sprache noch nicht übersetzt wurden.



Wir suchten nach Lokalisierungsdiensten, sprachen mit dem Support und entschieden uns für den Crowdin- Dienst . Einfach, mit einer Differenzierung der Rollen - kam wie angegossen. Besonders gut hat mir die In-Context-Funktion gefallen: Wenn wir eine Website oder ein Backoffice in einer speziellen Umgebung öffnen und die Zeilen direkt in der Benutzeroberfläche bearbeiten. So können Sie sofort sehen, wo und was genau wir korrigieren - praktisch.





Crowdin-In-Context-Bearbeitung.



Crowdin war zuerst mit dem Backoffice verbunden und verband nach und nach den Monolithen, dann die abgesägten Dienste und dann die Website. Nicht alles hat sofort funktioniert, aber jetzt reicht es aus, neue Zeilen für die Übersetzung hinzuzufügen, damit die Partner sie selbst sehen und übersetzen können.



Kein Excel mehr. 


Die gesamte Lokalisierung wurde vereinfacht: Der Partner kann jetzt Übersetzungen im Voraus und ohne die Hilfe von Entwicklern vornehmen. Wenn wir also bereit sind, Dodo IS und die Website einzuführen, sind die Übersetzungen normalerweise fertig.



Zuvor befanden sich Übersetzungen im Code - der Übersetzungsgeschäftsprozess musste an Entwicklung und Releases gebunden sein. Dank des Crowdin-Dienstes stellte sich heraus, dass diese beiden Prozesse unabhängig sind. Jetzt testen wir alle neuen Dienste, Zielseiten und stellen überall dort, wo es etwas für Übersetzungen gibt, eine direkte Verbindung zu Crowdin her. Dies vereinfacht das Leben erheblich und gibt dem Partner die Möglichkeit, Übersetzungen in unserem eigenen Tempo zu erstellen, und wir stellen das System in unserem eigenen Tempo bereit.



Stellen Sie als Bonus die Systemsprache standardmäßig auf Englisch ein... Bisher verwendete das System standardmäßig Russisch, was für internationale Partner und deren Mitarbeiter nicht geeignet ist. Wenn nun einige Übersetzungen im System fehlen, sieht der Partner die englischen Texte. Dies geschieht normalerweise unmittelbar nach der Bereitstellung des Systems.



Was ist das Ergebnis



Seit Juli 2019 haben wir großartige Arbeit geleistet - wir haben ein Startsystem aufgebaut und den gesamten Prozess strukturiert . Wir richten das System über den Assistenten ein, der Partner übersetzt die Schnittstellen unabhängig und ist nicht von den Entwicklern abhängig.



Der gesamte Weg der Einführung eines neuen Landes wird ausführlich beschrieben . Jetzt dauert die Reise 2-3 Wochen anstatt 3 Monate früher. Eine Woche nach dem Start sind die Website und das Backoffice geöffnet. Sie sind noch nicht mit Daten gefüllt, können aber bereits Bestellungen entgegennehmen.



Pläne



Fügen Sie ungefähr die gleiche Menge hinzu - alles, was darüber liegt, ist nicht einmal die halbe Arbeit. Jetzt erwartet uns eine neue Herausforderung - schrittweise, Schritt für Schritt, Land für Land, um dieses System zu verbessern. Zum Beispiel:



  • Erweitern Sie schrittweise das "Startpaket" und fügen Sie dort neue Funktionen hinzu, z. B. "Site für die Arbeit in Dodo" oder "Site für Testkäufer".

  • Hinzufügen mehrsprachiger Unterstützung auf der Website und in der Anwendung;

  • Vereinfachen Sie den Assistenten zum Einrichten des ersten Landes noch weiter.

  • Fügen Sie ein Plug-In-System für Registrierkassen hinzu, um lokale Outsourcer für die Entwicklung eines Moduls zum Drucken von Schecks für ein bestimmtes Land zu gewinnen.


Anwendung . Seit Januar 2020 ist das mobile Team der Legionäre (3 Personen) zu uns gekommen. Wir planen, "Schulden zu verteilen" - um die Anwendung in allen Ländern zu starten und zu lernen, wie Sie mit der Anwendung sofort neue Länder starten können.



Checkout-Integration . Dies ist die längste Phase des Starts des Landes - wir planen, sie zu beschleunigen. Wir planen, die Registrierkassen (die Logik zum Drucken von Belegen) aus dem Monolithen herauszuschneiden, in einen separaten Dienst zu verschieben und dort eine Plug-In-Architektur zu erstellen. Auf diese Weise können wir Teams von Drittanbietern einbeziehen, um ein Plugin für ein bestimmtes Land zu entwickeln. Zum Beispiel wird ein Outsourcing-Unternehmen in Polen eine Kassiererintegration für Polen durchführen, indem es ein geeignetes Plugin schreibt. Dadurch können Sie noch schneller werden.



Schließlich



Das Land zu starten ist die halbe Miete - jetzt müssen Sie auch die bestehenden Partner unterstützen (die gerade zu einem weiteren geworden sind):



  • UK;

  • ;

  • «» «» ;

  • .



Darüber hinaus gibt es viele Hypothesen, Entwicklungsanfragen von bestehenden internationalen Partnern. Diese Anfragen sind möglicherweise nicht interessant für Eurasien, wo sich der Markt bereits gebildet hat, aber relevant für Europa, wo wir gerade erst anfangen zu wachsen.



Deshalb stellen wir ein neues Team für die EMEA-Region zusammen. Dieses Team wird das System an die lokalen Märkte anpassen und so die Einzigartigkeit schaffen, die das Geschäft in Großbritannien vom Geschäft in Nigeria unterscheidet. Wir suchen erfahrene Entwickler für das Team. Wenn Sie daran interessiert sind, die Welt zu entdecken, neue Pizzerien auf der Karte zu eröffnen und nicht routinemäßige Aufgaben zu lösen, warten wir darauf, dass Sie dem Team beitreten. Schreiben Sie mir unter d.pavlov@dodopizza.com - ich werde gerne sprechen :)



Hinweis . In der Post hat Katya Landyreva ausführlicher beschrieben, was Sie ein wenig erwartet und warum es cool ist, in unserem Produkt zu arbeiten.



All Articles