Ini Cara Gojek Mengelola 1 Juta Pengemudi Hanya dengan 12 Engineer

Kisah tim pertama GOJEK, dan konsekuensinya, tentang bagaimana 200 engineers menjalankan Super App dari 18+ produk.

Ini Cara Gojek Mengelola 1 Juta Pengemudi Hanya dengan 12 Engineer

Dalam mitologi nordik, Yggdrasil adalah sebuah pohon besar yang menghubungkan sembilan dunia dalam kosmologi nordik. Ia merupakan pohon suci dengan cabang yang menyentuh langit. Para dewa mengadakan pertemuan di bawahnya, memperdebatkan nasib para dewa lain, manusia, dan monster. Ia merupakan pohon kehidupan dan pusat dari segalanya.

Di GOJEK, Tim Alokasi merupakan pohon Yggdrasil yang abadi itu. Berbagai produk bergantung pada tim ini untuk menugaskan para pengemudi dan memastikan pesanan telah diselesaikan. Tim ini memutuskan produk dan layanan mana saja yang mesti diberhentikan dan bertanggung jawab atas lebih dari 1 juta pengemudi yang terdaftar. Saat awal-awal berdirinya GOJEK, tim ini hanya terdiri dari 12 engineer.

Dan ini adalah kisah mereka.

Masalah yang berlimpah

Pada tahun 2010, GOJEK dimulai sebagai layanan call center. Pelanggan akan menelpon nomor tertentu. Seseorang dari pusat panggilan akan “mengalokasikan” pengemudi kepada si penelpon setelah melihat daftar pengemudi di lembaran Excel.

Nadiem Makarim selaku CEO GOJEK adalah orang pertama yang melakukan uji coba aplikasi GOJEK ini. Tak lama setelah pesanan tiruan dibuat dan Nadiem mendapat pemberitahuan pertama, aplikasi kemudian dijalankan sebagai bisnis.

2014, GOJEK akhirnya memiliki 200 pengemudi. Tim engineer yang awalnya terdiri dari tiga orang kemudian menciptakan model sementara untuk mempertemukan pelanggan dengan pengemudi.

Basis kode kemudian dibuat ulang agar sesuai dengan skala. Maka dibuatlah basis kode hanya dalam waktu dua hari yang akhirnya mampu menangani sekitar 700 pengemudi. Tapi semuanya masih tetap berjalan manual. Tim kemudian berpikir harus melakukan sesuatu untuk mengotomatiskan seluruh proses.

Baca Juga: WARNING! Ada 2000 Lebih Aplikasi Berbahaya di Play Store

Awal 2015, versi aplikasi akhirnya diluncurkan untuk mengimbangi meningkatnya permintaan. Produk-produk lainnya pun muncul – GO-RIDE, GO-FOOD, dan GO-SEND -. Para pelanggan akan “bid (memesan)“ pengemudi, kemudian pengemudi akan mendapatkan pemberitahuan dan menerima pesanan.

Ini adalah kelahiran “bid engine”, mak comblang klasik antara penawaran dan permintaan (dalam hal ini, pengemudi dan pelanggan). Ini pula yang akhirnya membentuk asal usul berdirinya GOJEK.

Tapi ada masalah: kotak isolasi.

Secara keseluruhan ada tiga produk dengan infrastruktur dasar yang sama, tetapi tanpa keterkaitan. Itu adalah masalah yang seharusnya tidak ada ketika keberhasilan tergantung pada hubungan yang lebih dalam di seluruh tim. Masalahnya menjadi serius, karena ketiga tim bekerja pada infrastuktur yang sama.

Selain itu, GOJEK tidak siap menangani jenis adopsi dan pertumbuhan yang cepat setelah aplikasi diluncurkan.
Algoritme mulai hancur. Rekayasa kode dilakukan lebih sederhana dan dibuat hanya sekitar 10 hingga 15 baris kode. Rekayasa ini hanya untuk memecahkan masalah terkait sekumpulan kecil data. Ketika pengemudi meningkat, gangguan pada aplikasi menjadi masalah rutin yang kerap dihadapi. Ada terlalu banyak hambatan.

GOJEK gagal dengan begitu cepat.

Tak lama kemudian, GOJEK akhirnya menggandeng salah satu perusahaan konsultan terbaik India, Code Monk, sebagai bagian dari “senjata” mereka. Tugas yang diberikan pada tim engineer adalah mengerjakan sistem penawaran dan memastikan bahwa tidak ada lagi kegagalan.

GOJEK harus melakukan sesuatu atau tidak sama sekali

Basis kode mulanya ditulis dengan bahasa pemrograman Java. Ini adalah bahasa pemrograman yang biasa digunakan pada era internet, tapi tidak diperuntukkan bagi startup dengan tingkat permintaan yang sedang meledak. Juga disertai dengan kurangnya sumber daya serta rekayasa teknis di dalam tim.

Mengapa kami menggunakan Java? Karena anti-pola Golden Hammer: “Saya menguasai Java, jadi Java adalah yang terbaik.”

Niranjana Paranjape selaku Chief Technology Officer GOJEK, memasang hard drive dan memeriksa kodenya. Segera setelah dia membuka file readme, baris pertama yang muncul adalah mvn install -DskipTests.

Kode ini belum pernah di uji coba. Dengan kata lain, kode ini dijalankan tanpa pernah melalui uji coba kualitas.

Basis kode yang lama itu disebut Stan Marsh. Buat yang belum tahu, Stan Marsh adalah karakter dari serial TV animasi South Park.

Stan Marsh merupakan kode warisan tempat GOJEK akan dibangun. Tapi karena tidak dilakukan tes harness, sulit untuk mengetahui bagian mana dari aplikasi yang berfungsi dan mana yang tidak. Mengingat aplikasi sudah diluncurkan, tidak ada yang mau menyentuh “bom waktu” tersebut.

Paranjape kemudian menulis ulang seluruh basis kode dengan Golang, sebuah bahasa pemrograman yang ia sendiri tidak kuasai. Golang bisa menangani konkurensi dan mengelola beban: masalah yang sedang dihadapi GOJEK. Memutuskan menggunakan Golang bukan hal yang mudah, karena tidak banyak yang mengetahui jenis bahasa pemrograman ini.

Tapi beberapa risiko memang layak untuk diambil, dan inilah yang mendefinisikan engineering yang baik dengan yang hebat.

Baca Halaman Berikutnya
1
2
CATEGORIES
TAGS
Share This
%d bloggers like this: