Dodo Pizza adalah perusahaan internasional - kami beroperasi di 13 negara dan tidak berencana berhenti. Sebagian besar restoran pizza terletak di wilayah Eurasia: Rusia, Kazakhstan, Belarus, Kyrgyzstan, Uzbekistan. Ini sudah menjadi bisnis yang beroperasi besar, kami adalah pemimpin dalam jumlah restoran pizza. Bisnis ini hanya perlu didukung dan dikembangkan secara mendalam, karena di sini bisnis dan IT bekerja sama dalam fitur-fitur yang dapat dimengerti.
- .
- .
- .
- .
- : , LTV .
Dan kemudian (tiba-tiba) sebuah bisnis masuk dan berkata: "Kami ingin memulai di Nigeria", di negara ke-13 yang sama, di mana 2 restoran pizza sudah beroperasi. Hingga 2019, peluncurannya jarang terjadi - 1 negara per tahun. Tim pengembang yang menyertai peluncuran terus berubah. Tidak ada fokus pada akselerasi dengan pendekatan ini.
Tidak jelas apakah negara baru itu akan "menembak" atau tidak. Siapa yang akan meluncurkan negara? Dari produk apa Anda harus mengambil tim? Tim yang "beruntung" harus mengalihkan perhatian dari fitur mematikan mereka, mengingat cara menerapkan sistem dan menghadapi kesulitan tertentu. Mari kita cari tahu yang mana.
Kesulitan memulai bisnis
Penemuan negara baru adalah suatu kejutan (mungkin). Terkadang ada peluang dalam kewirausahaan yang tidak bisa dilewatkan, bahkan jika Anda belum siap. Misalnya:
- telah muncul mitra yang kuat yang siap mengambil risiko;
- pemain lokal yang kuat meninggalkan wilayah tersebut;
- pasangan mencari, mencari, mencari dan tiba-tiba menemukan premis impian;
- setelah perjalanan bisnis internasional, kami menyadari bahwa kami tidak dapat lagi menunda dan kami sangat perlu meluncurkan negara.
Kami mencoba merencanakan bukaan terlebih dahulu, tetapi terkadang kehidupan membuat penyesuaiannya sendiri.
Peluncuran tunggal. Saat meluncurkan satu negara dalam setahun, tidak masuk akal untuk memiliki tim yang berdedikasi. Tim pengembang yang meluncurkan negara terakhir pergi untuk memotong fitur pembunuh lainnya.
Ketika tiba giliran untuk membuka negara baru, semua daftar periksa sudah usang, dan tim yang meluncurkan negara terakhir hanya dapat membantu dalam situasi pas dan awal. Tidak ada fokus untuk mempercepat startup sistem dengan pendekatan ini. Kami memulainya dan oke - kami akan kembali dalam satu tahun :)
Razfokus.Karena peluncuran tunggal, tim pengembang yang akan berurusan dengan negara baru harus melepaskan diri dari fitur-fitur mematikan untuk Eurasia demi keuntungan yang meragukan di Eropa atau Afrika. Sebuah negara baru, restoran pizza pertama, investasinya akan terbayar dalam 1-2 tahun - banyak yang bisa salah.
Banyak komponen, sistem besar, dan banyak koneksi - tidak ada sistem peluncuran dan pakar bawaan. Meluncurkan negara baru, dari sudut pandang Dodo IS, bukan hanya sekadar menyalin dan menempelkan kode atau menekan satu tombol ajaib. Ini adalah proyek terpisah dengan karakteristik lokalnya sendiri. Perlu waktu 3-4 bulan untuk peluncuran (terkadang lebih lama).
Setiap negara membutuhkan keahliannya sendiri, misalnya dalam sistem fiskal cek. Untuk berintegrasi dengan sistem lokal, Anda perlu mengetahui secara spesifik dalam sistem alamat. Misalnya, di Slovenia, nama belakang klien adalah bagian dari alamat yang harus diperhitungkan di layanan klien.
Ada banyak fitur serupa, dan tim kami pasti tidak memiliki semua pengetahuan tentang fitur tersebut. Ini berarti kami akan mengalihkan perhatian orang dari tim lain yang memiliki keahlian - kecanduan, untuk waktu yang lama.
Kesulitan teknis
Dodo Pizza diluncurkan pada April 2011. Pada Juni 2011, pengembangan Dodo IS dimulai. Pada saat itu, tidak ada yang menyangka bahwa kami akan segera meluncurkan pizzeria di negara lain, karena itu diperlukan untuk secara cepat (sangat, sangat cepat) mendukung bisnis yang berkembang di Rusia. Misalnya, pembayaran pertama sebuah restoran muncul di sistem dalam pengembangan 2 minggu, karena tanpanya mustahil untuk membuka restoran di restoran pizza pertama.
Tidak ada waktu untuk memikirkan semuanya dan memasukkan skalabilitas dan komponen agnostik negara ke dalam arsitektur sistem. Hal terakhir yang kami pikirkan adalah bahwa kode yang kami tulis sekarang akan digunakan di suatu tempat di Slovenia atau Amerika Serikat. Oleh karena itu, selama bertahun-tahun pertumbuhan pesat, banyak hutang teknis telah menumpuk, yang sekarang memperlambat peluncuran.
Butuh waktu lama untuk menyebarkan situs web dan back office Dodo IS... Anda tidak bisa begitu saja mengambil dan mendaftarkan domain untuk negara baru di konfigurasi Nginx dan menerapkan sistem dengan mengklik tombol. Itu sangat disayangkan.
Selain itu, setiap negara memiliki kekhususannya masing-masing. Penting untuk memberi mitra produk yang akan sesuai untuk negara tertentu, dan bukan hanya "Dodo IS umum". Dimulai dengan adaptasi format alamat, nomor telepon, jenis jalan dan permukiman, organisasi, dan diakhiri dengan adaptasi yang lebih global. Tambahkan ke ini banyak operasi manual dan salin-tempel dengan kode: enums, configs, scripts.
Terjemahan ke dalam bahasa negara . Kita semua menyukai Excel: membuat tabel, mewarnai garis, menulis rumus kompleks, merujuk ke data dari dokumen lain. Untuk itulah ia dirancang.
Di Excel, kami mengunduh baris dengan istilah ke mitra, dia menerjemahkan (tanpa konteks dan gambar), kami memuat Excel dengan terjemahan kembali dan mengulangi latihan. Ini bukan untuk apa Excel dibuat. Ya, dan sayangnya, di resource, tidak semua project dan baris - kodenya harus diedit.
Contoh file dengan terjemahan.
Selain itu, setelah peluncuran negara, fitur baru muncul di sistem - tim untuk Eurasia tidak berhenti menulis fitur saat kami meluncurkan negara. Untuk fitur ini, terjemahan diperlukan dan sekali lagi di Excel. Panjang, mahal, tidak nyaman. Anda tidak dapat melakukannya tanpa pengembang.
Meja kas dan pajak... Checkout restoran dan checkout pengiriman adalah komponen Dodo IS. Tanpa mereka, tidak ada yang bisa dijual baik di restoran atau untuk pengiriman. Pembayaran perlu disesuaikan untuk negara baru, dan kodenya dalam monolit dan menarik banyak dependensi. Ternyata, selain pengembangan bisnis (pajak, tarif, persyaratan cek), logika untuk negara baru harus ditulis dengan cermat, agar pencetakan cek di Rusia tidak rusak.
Aplikasi seluler . Kami tidak tahu bagaimana meluncurkannya segera dengan pembukaan negara: tidak ada cukup keahlian, waktu, semuanya. Mitra terkadang harus menunggu enam bulan (terkadang lebih lama) bagi kami untuk meluncurkan aplikasi setelah negara dibuka . Itu tidak menyenangkan.
Catatan... Ada satu aplikasi untuk semua negara - situasinya seperti dengan mesin kasir. Saat meluncurkan aplikasi di Rumania, penting untuk tidak "menggaet" negara lain.
Peluncuran juga mendukung . Halaman arahan, suara peringatan dapur, kesalahan terjemahan - semua gangguan kecil ini biasanya muncul dalam beberapa bulan pertama. Karena itu, setelah peluncuran negara, dukungan juga penting.
Bagaimana kami memecahkan masalah bisnis
Kami berada dalam situasi seperti itu pada Mei 2019. Dan tahun 2020 berjanji akan panas - kami ingin meluncurkan 4 negara sekaligus. Saya harus melakukan sesuatu agar tidak mengacaukannya.
Kami telah memilih produk independen baru - "meluncurkan negara baru" - dan menetapkan tujuan yang ambisius - meluncurkan negara "dengan tombol". Dengan sebuah tombol, kita dapat:
- menerapkan sistem sebagaimana adanya;
- , : , , ;
- , -, .
Perintah. Tujuan tidak dapat dicapai tanpa tim. Oleh karena itu, pada Mei 2019, tim MyLittleCoders setuju untuk menjadi tim penemuan negara 100% setiap saat. Kami telah menyoroti pembukaan produk baru: ada metrik "kecepatan peluncuran", ada tim, backlog percepatan penuh dengan tugas yang melimpah. Semuanya datang bersamaan - saatnya bertindak.
Logo tim
Peta Cerita MyLittleCoders (MLC) . Strategi jangka panjangnya jelas: mempercepat, mencari orang, mengadopsi kompetensi. Itu perlu untuk belajar bagaimana "meluncurkan negara secara turnkey" secara mandiri, tanpa mengganggu tim lain.
Kami mulai dengan peluncuran Nigeria, 3 bulan sebelum pembukaan. Nigeria menjadi negara uji coba tempat mereka mulai secara sistematis membangun proses peluncuran yang jelas. Dan inilah cara kami melakukannya.
Selain tujuan utama kami untuk meluncurkan restoran pizza di bulan Oktober, kami mencatat hal-hal yang paling memakan waktu setelah peluncuran. Setelah peluncuran, kami membuat peta cerita dan, menurut pengamatan, mencatat hal-hal yang memakan waktu paling lama.
Fragmen peta cerita peluncuran negara baru.
Bagaimana kami memecahkan masalah teknis
Wizard Pengaturan Negara Awal. Analisis peta cerita menunjukkan bahwa beberapa tahapan dapat diotomatiskan, yang secara signifikan akan mempercepat peluncuran. Oleh karena itu, peningkatan signifikan pertama adalah Country Wizard.
Setelah membeli iPhone baru, pengaturan dari telepon lama ditransfer dalam beberapa klik - 3 layar dan telepon baru siap untuk bekerja. Kami ingin melakukan hal serupa untuk Dodo IS.
- Jalankan wizard inisialisasi negara.
- : « ».
- , , , .
- ( ).
- Next, next, next — - .
Dalam perjalanan pekerjaan, konsep itu berubah. Awalnya, kami ingin menambahkan semua pengaturan sistem ke wizard Negara (produk yang diinginkan dan diimpikan oleh RO, tim terkendali dan optimis). Tapi kami sudah memiliki panel admin internal, yang tidak ada gunanya diduplikasi di wizard penyiapan. Kemudian kami meninggalkan hanya pengaturan minimum itu, yang tanpanya sistem tidak dapat memulai. Produk, menu, harga supplier dan kemasan bisa disesuaikan nanti.
Mengapa sistem tidak dapat dimulai tanpa banyak parameter? Secara historis, parameter seperti itu diperlukan untuk pengembangan Dodo IS. Ini adalah tugas terpisah bagi tim untuk memisahkan dependensi tersebut dan menjadikannya opsional untuk peluncuran.
Pada akhirnya, semuanya berjalan dengan baik. Alih-alih banyak tempat di mana kami perlu mengedit sesuatu, kami:
- melalui 1 wizard pengaturan awal;
- kami mendapatkan dump baru dari sistem;
- kami memberikannya kepada orang-orang dari infrastruktur untuk bergulir.
Dua hari (dan bukan sebulan seperti sebelumnya) - dan sistem siap bekerja.
Contoh mengonfigurasi parameter pengiriman menggunakan Wizard Konfigurasi Awal.
Luncurkan daftar periksa. Tidak selalu mungkin untuk mencapai akselerasi hanya melalui pengembangan dan otomatisasi. Daftar periksa startup adalah contohnya. Kadang-kadang cukup menjelaskan secara berurutan apa dan untuk apa yang perlu dilakukan, di mana harus mengklik, siapa yang harus ditendang, skrip mana yang akan diputar.
Oleh karena itu, tim pengembang-analis dengan cermat mendeskripsikan keseluruhan proses. Hasilnya, kami memiliki dokumen besar dengan angka dan poin: apa yang harus dilakukan sebelum peluncuran, apa selama, dan apa setelahnya.
Bagian dari daftar periksa peluncuran.
Mendaur ulang daftar periksa lama adalah proses yang menyenangkan. Para pengembang bergiliran berjalan melalui daftar periksa dengan tangan mereka, membuka dan menyiapkan negara uji, mengumpulkan rasa sakit dan meningkatkan daftar periksa. Dan beberapa kali. Bonus dari pendekatan ini adalah pendalaman mendalam dari orang-orang dalam sistem itu sendiri.
Pengaturan negara dari satu titik . Mengumpulkan semua pengaturan dari wizard Negara tidaklah cukup. Sistem dan komponennya juga harus membaca pengaturan ini dari repositori yang sama. Jika tidak, situasi lucu berubah. Misalnya, ketika manajer kantor menunjukkan mata uang yang benar (untuk Nigeria, naira), dan etalase barang dengan licik menunjukkan rubel. Setiap layanan menganggapnya sebagai tugas untuk membuat pengaturannya sendiri. Saya harus melewati 7-8 tempat dalam sistem sehingga semua orang akhirnya menunjukkan mata uang yang benar.
Saya ingin mengedit pengaturan di satu tempat dan kemudian menerapkannya di seluruh sistem. Pada kenyataannya, kita dihadapkan pada kebutuhan untuk melakukan perubahan pada hampir setiap komponen dalam sistem. Perubahannya kecil, tetapi ada banyak komponen.
Melalui upaya besar tim, 100.500 baris copy-paste jarak jauh dan sedikit keajaiban pemrograman, sistem sekarang mengambil pengaturan dari satu repositori. "Tails" masih tetap ada, tetapi sebagian besar pengaturan telah terpusat. Sekarang Anda dapat mengatur masker telepon atau format alamat atau pengaturan lain untuk seluruh negara di satu tempat.
Catatan . Kisah tentang bagaimana kami memotong salin-tempel untuk waktu yang lama dan menerjemahkan sistem untuk menggunakan layanan direktori layak mendapatkan artikel teknis terpisah. Jika tertarik, tulis di komentar.
Terjemahan. Alih-alih Excel, saya menginginkan sistem pelokalan yang sederhana dan mudah dipahami, sehingga:
- tidak perlu mengunggah apa pun ke file pihak ketiga;
- menerima pemberitahuan bahwa baris terjemahan baru telah ditambahkan;
- jelas baris mana dan bahasa apa yang belum diterjemahkan.
Kami mencari layanan pelokalan, berbicara dengan dukungan, dan memilih layanan Crowdin . Sederhana, dengan diferensiasi peran - tampil seperti sarung tangan. Saya terutama menyukai fitur dalam konteks: ketika kami membuka situs web atau kantor belakang di lingkungan khusus dan mengedit baris tepat di antarmuka. Jadi Anda dapat segera melihat di mana dan apa sebenarnya yang kami perbaiki - nyaman.
Pengeditan dalam konteks Crowdin.
Crowdin pertama-tama dihubungkan ke back office, secara bertahap menghubungkan monolit, lalu layanan penggergajian, dan kemudian situs web. Tidak semuanya langsung berfungsi, tetapi sekarang cukup menambahkan baris baru untuk terjemahan sehingga mitra dapat melihat dan menerjemahkannya sendiri.
Tidak ada lagi Excel.
Semua pelokalan telah disederhanakan: mitra sekarang dapat membuat terjemahan lebih awal dan tanpa bantuan pengembang. Jadi, saat kami siap meluncurkan Dodo IS dan situsnya, terjemahan biasanya sudah siap.
Sebelumnya, terjemahan ada dalam kode - proses bisnis terjemahan secara paksa dikaitkan dengan pengembangan dan rilis. Berkat layanan Crowdin, ternyata 2 proses ini menjadi mandiri. Sekarang kami mencoba semua layanan baru, halaman arahan, dan di mana pun ada sesuatu untuk diterjemahkan, terhubung langsung ke Crowdin. Ini sangat menyederhanakan hidup dan memberi mitra kesempatan untuk membuat terjemahan sesuai kemampuan kami sendiri, dan kami menerapkan sistem dengan kecepatan kami sendiri.
Sebagai bonus, setel bahasa sistem ke bahasa Inggris secara default... Sebelumnya, sistem menggunakan bahasa Rusia secara default, yang tidak cocok untuk mitra internasional dan karyawan mereka. Sekarang, jika beberapa terjemahan hilang dalam sistem, mitra akan melihat teks bahasa Inggris. Ini biasanya terjadi segera setelah sistem diterapkan.
Apa hasilnya
Sejak Juli 2019, kami telah melakukan pekerjaan dengan baik - kami telah membangun sistem peluncuran dan menambahkan struktur ke seluruh proses . Kami menyiapkan sistem melalui wizard, mitra menerjemahkan antarmuka secara mandiri dan tidak bergantung pada pengembang.
Keseluruhan jalur peluncuran negara baru dijelaskan secara rinci . Sekarang perjalanannya memakan waktu 2-3 minggu, bukan 3 bulan sebelumnya. Seminggu setelah dimulainya, website dan back office dibuka. Mereka belum terisi data, tapi sudah bisa menerima pesanan.
Rencana
Tambahkan tentang jumlah yang sama - semua yang di atas bahkan bukan setengah dari pekerjaan. Sekarang tantangan baru menanti kita - secara bertahap, langkah demi langkah, negara demi negara, untuk meningkatkan sistem ini. Misalnya:
- memperluas "paket peluncuran" secara bertahap, menambahkan fitur baru, misalnya, "Situs untuk bekerja di Dodo" atau "Situs untuk pembeli misterius";
- menambahkan dukungan multibahasa di situs web dan dalam aplikasi;
- Sederhanakan Wizard Pengaturan Negara Awal lebih jauh;
- menambahkan sistem plug-in untuk mesin kasir guna menarik agen outsourcing lokal untuk mengembangkan modul pencetakan cek untuk negara tertentu.
Aplikasi . Sejak Januari 2020, tim mobile Legiuner (3 orang) telah bergabung dengan kami. Kami berencana untuk "mendistribusikan hutang" - untuk meluncurkan aplikasi di semua negara, dan mempelajari cara meluncurkan negara baru segera dengan aplikasi tersebut.
Integrasi pembayaran . Sekarang ini adalah tahap terlama peluncuran negara - kami berencana untuk mempercepatnya. Kami berencana untuk memotong mesin kasir (logika untuk mencetak tanda terima) dari monolit, memindahkannya ke layanan terpisah dan membuat arsitektur plug-in di sana. Dengan cara ini kami dapat melibatkan tim pihak ketiga untuk mengembangkan plugin untuk negara tertentu. Misalnya, perusahaan outsourcing di Polandia akan melakukan integrasi kasir untuk Polandia dengan menulis plugin yang sesuai. Ini akan memungkinkan Anda untuk lebih cepat lagi.
Akhirnya
Meluncurkan negara adalah setengah dari pertempuran - sekarang Anda juga perlu mendukung mitra yang ada (yang baru saja menjadi satu lagi):
- UK;
- ;
- «» «» ;
- .
Selain itu, terdapat banyak hipotesis, permintaan pembangunan dari mitra internasional yang ada. Permintaan ini mungkin tidak menarik untuk Eurasia, di mana pasar telah terbentuk, tetapi relevan untuk Eropa, tempat kami baru mulai tumbuh.
Itulah mengapa kami menyusun tim baru untuk wilayah EMEA. Tim ini akan menyesuaikan sistem dengan pasar lokal, menciptakan keunikan yang membedakan bisnis di Inggris dari bisnis di Nigeria. Kami mencari pengembang berpengalaman untuk bergabung dengan tim. Jika Anda tertarik untuk menjelajahi dunia, meluncurkan pizza baru di peta dan menyelesaikan tugas non-rutin - kami menunggu Anda untuk bergabung dengan tim. Kirimkan kepada saya di d.pavlov@dodopizza.com - Saya akan senang berbicara :)
Catatan . Dalam posting tersebut, Katya Landyreva menjelaskan secara lebih rinci apa yang menunggu Anda sedikit dan mengapa keren untuk bekerja di produk kami.