Bagaimana Gojek Bekerja
Posted on August 27, 2019

Dulu Gojek hanya memiliki permintaan layanan sekitar 100 – 150 per harinya (Sekarang telah melebihi 3 juta). Kala itu, Gojek masih berfungsi sebagai call center. Pelanggan menelpon call center dan pengemudi yang tersedia akan ditugaskan secara manual untuk setiap pemesanan.

Dulu Gojek hanya memiliki empat developers (dan tiga diantaranya adalah konsultan). Tugas seorang developer kala itu adalah mengotomatisasikan seluruh proses bisnis ke dalam satu aplikasi. Ia berpikir itu seperti Uber, tapi untuk versi sepeda motor, dan dengan beberapa fitur lainnya.

Dengan pemikiran sang developer tersebut, Ia berpikir ini akan menjadi sebuah proyek kecil-kecilan, yang akan memakan waktu 3-4 bulan saja.

Tidak Ia sangka bahwa Gojek akan menjadi sebuah unicorn; sebuah startup yang sangat berpengaruh di penjuru negeri ini. Mari kita uraikan cerita dari perspektif seseorang yang menjadi saksi, bagaimana Gojek berjalan dari empat orang pengembang di tempat yang sempit hingga kini melebihi 250 pengembang.

Awal Mula Teknologi

Masalahnya sangat sederhana: Gojek tak bisa menyeimbangkan antara modal yang tersedia dengan permintaan pengguna (yang saat itu ditunjang dengan produk Gojek). Proses yang berlangsung secara vertikal: business, operations, dan management.

Ketika Gojek sadar bahwa permintaan tidak bisa diimbangi dengan ketersediaan, mereka menangani banyak hal untuk diautomatisasikan dengan mesin, secara iteratif:

  • Automatisasi panggilan kepada pengemudi dengan menyediakan sebuah sistem dan aplikasi untuk pengemudi. Setiap pesanan akan disampaikan dengan mekanisme penawaran langsung dari dalam sistem.
  • Automatisasi panggilan dari pelanggan dengan menyediakan aplikasi untuk pelanggan. Aplikasi tersebut dapat melakukan akses langsung untuk menugaskan pengemudi dan memenuhi kebutuhan pelanggan.

Sebuah contoh: Data Gojek menunjukkan banyak pengguna yang meminta pengemudi mereka untuk membeli makanan dari restoran favorit mereka, melalui ‘fitur’ shopping GOjek (Ya, hal tersebut dimulai sebagai fitur). Kemudian datang sebuah pertimbangan untuk mengautomatisasi proses ini menjadi lebih sederhana:

  • Tersedia restoran-restoran pada area tertentu, menunya, alamatnya, dll.
  • Memasukkan pesanan yang diinginkan pemesan
  • Menjelaskan detail atau permintaan khusus pesanan kepada pengemudi, untuk kemudian diberitahu kepada restoran tujuan.

Jadi, Gojek merilis GO-FOOD sebagai sebuah produk – untuk mengautomatisasi proses menjadi hanya dalam beberapa clicks saja. Pemesan juga sekarang dapat mencari restoran dan menu langsung pada aplikasi, melakukan beberapa langkah, dan pengemudi akan secara otomatis menerima pesanan beserta detailnya. Praktis. Otomatis.

Menelusuri lebih dalam lagi

Beberapa poin di atas merupakan untuk pihak eksternal Gojek (yaitu pelanggan dan pengemudi). Bagaimana dengan business team mereka yang jelas-jelas memerlukan detail dari restoran-restoran, memasukannya satu-per-satu? Tentu saja Gojek mengotomatisasikannya pula. Mereka membangun sebuah alat untuk mendapatkan daftar restoran, beserta menu dan sub-kategorinya. Hal ini cukup mempermudah business team -nya untuk menstruktur data yang telah diterima. Kemudian, mereka membentuk alat lain untuk memasukkan data-data dalam jumlah besar, seperti menu, harga, promo, dsb.

Dengan pertumbuhan yang cepat, selalu ada ruang untuk perbaikan. Seperti itulah siklus yang tak pernah berhenti di GOJEK. Teknologi baru selalu membawa efisiensi, kecepatan, stabilitas yang lebih baik, beserta dengan potensial yang jauh lebih hebat.

Gojek menyediakan kebutuhan pengguna untuk memudahkan hidup mereka, juga hidup tim Gojek sendiri.

Jadi, porsi yang baik dari bekerja adalah dengan menjadi seseorang yang tekun dan pendengar yang baik. Banyak dari produk Gojek yang menyesuaikan dengan feedback dari pengguna Gojek. Tim Gojek juga ikut berperan sebagai pengguna dan memerankan sesuatu yang ‘jahat’. Itulah bagaimana mereka beriterasi. Sasaran utama atas itu semua adalah untuk membuat mesin melakukan pekerjaannya.

Dengarkan – Pahami – Definisikan – Laksanakan – Automatisasi.

Masalahnya ada pada data.

Ketika permintaan melanda, tim bisnis dan operasional merasakan kesulitan untuk mencerna seluruh umpan balik yang diterima. Hal tersebut merupakan hambatan untuk kemampuan mereka mengembangkan produk-produk Gojek. Mampu menganalisa berbagai macam data sekaligus menyalurkan hasil pembelajaran menjadi sebuah keputusan, merupakan hal yang membuat Gojek produk yang superior.

Kemudian, lahirlah tim Data Engineering.

Perkembangan seperti ini selalu terjadi pada setiap organisasi. Setiap tim bergantung satu sama lain. Produk terhadap bisnis, bisnis terhadap orientasi partner, rekomendasi data dengan inteligensi bisnis, dan lain lain.

Di dalam tim engineering, Gojek memiliki peran penuh untuk mendukung automatisasi antar departemen – untuk perkembangan pihak internal juga.

Analoginya, teknologi bagaikan listrik; hal yang merupakan fondasi utama dari setiap proses dan kegiatan di dalam organisasi. Tim Gojek di sini untuk memastikan hal tersebut selalu tersedia dan terbaik.

Kompleksitas Engineering adalah Tentang Kesederhanaan

Di balik backend system, dimulai hanya dengan satu codebase saja. Sebelum tim Gojek mulai sadar bahwa basis kode ini tidak akan sanggup mengikuti pertumbuhan, itu merupakan hal yang terlalu besar untuk dibedah. Tim Gojek menyebut codebase pertama mereka sebagai Stan Marsh. Stan Marsh bagaikan sebuah entitas yang ikut bernafas di dalam Gojek, dan kamu dapat membaca tentangnya disini. Tahun-tahun telah berlalu untuk membagi satu codebase ini menjadi beberapa codebase dan infrastruktur yang lebih kecil, untuk mempermudah tim Gojek dalam mengatur, mempertimbangkan, dan memperbaiki.

Hingga sekarang, tim Gojek memiliki lebih banyak microservices dibandingkan engineers. Dan sampai sekarang semuanya terus berkembang.

Sebagai konsekuensi, kompleksitas dari sistem terus berlanjut untuk tumbuh. Automatisasi alat internal merupakan tugas tersendiri; untuk menciptakan perkembangan, monitoring, debugging, dan deployments yang lebih mudah. Semuanya untuk memudahkan kehidupan kita😉.

Sebuah tantangan – Gojek harus memberi support produksi, seperti mengotomatisasi kebutuhan-kebutuhan baru dari pengguna (baik dari pihak dalam maupun pihak luar sebagai fitur atau produk).  Keseluruhannya adalah: mengelola sistem yang sudah ada, merancang ulang pembaharuan, dan memindahkan sistem tersebut tanpa jeda yang bermakna.

Jika dikupas dengan cara seperti ini, terdengar seperti tantangan, kan?

Tentu saja, tim Gojek berusaha untuk membangun alat untuk memonitor detail, sistem peringatan cerdas, environment setups yang bersahabat, dan alat deployment dengan cara yang terskalakan. Bukan hal yang mudah, tetapi hal tersebut harus segera dimulai, diatur, hingga tumbuh. Seperti produk eksternal lainnya, produk internal ini juga merupakan sebuah pekerjaan yang sedang berlangsung. Sama seperti bisnis dan operasional yang kian bertumbuh, mereka juga akan selalu bertembuh.

Dalam ideasi yang terus berlangsung, jutaan cerita dan milyaran tantangan menanti tim Gojek.

Sebagai contoh, ketika mereka memulai dari awal, mereka membangun package aplikasi secara local dan mengunggahnya ke setiap server secara manual. Setiapnya mempunyai log file terpisah dan memakai layanan pihak ketiga untuk mengatur atau memberi peringatan. Seiring jumlah server dan services bertambah, Gojek menambah kapabilitas untuk memiliki manajer deployment tersentralisasi. Sekarang, mereka dapat men-deploy ke beberapa server sekaligus dalam satu klik – membangun sistem pencatatan tersentralisasi untuk memantau catatan diantara pelayanan dan server, secara lebih cepat dan sederhana.

Tak berhenti sampai disitu, tim Gojek juga berkembang dengan mengatur sebuah deployment pipeline. Hal ini mengotomatisasi pengaturan untuk penginterasian terhadap alat monitoring dan peringatan yang tersentralisasi, berdasarkan yang dinyatakan, manajemen konfigurasi tersentralisasi, dll. Siklus ini tidak akan pernah berhenti.

Gojek melayani jutaan orang di Indonesia sekarang. Awal mula semua cerita ini diawali dengan pembukaan yang sangat  sederhana; membuat sesuatu yang membosankan menjadi lebih keren dan elegan. Tak mudah untuk menulis kembali, tak menyenangkan untuk menjalani testing, tapi mereka melakukan apa yang harus dilakukan, karena mereka bersemangat menjalani hal-hal tersebut. Mereka didorong dengan kemampuan Gojek untuk membuat impact dengan kode. Tim mereka mendobrak batasan yang ada, karena apa yang mereka lakukan menggema di seluruh penjuru negeri. Tak ada yang lebih baik daripada rasa kepuasan membangun sesuatu yang besar dari nol.

GOJEK telah tumbuh menjadi unicorn startup yang memproses rata-rata 50 pesanan tiap detiknya. Dari yang hanya empat orang tim saja, telah tumbuh hingga lebih dari 250. Menyelesaikan masalah di tengah rintangan yang ada sekarang telah menjadi budaya dari Gojek. Menyenangkan bukan? Kunjungi superapp.is dan raih kesempatan untuk menjadi bagian dari perjalanan yang sangat luar biasa ini.🚀

© 2019 COMPFEST