Product Engineering - Part I

Semalem coba-coba nyimak video webinar dari Sekolah Beta tentang Product Engineering yang disampaikan oleh kak Janice Kartika. Penjabarannya menarik (at least untuk saya yang belum pernah terjun ke dunia Startup) dan memberikan insight bagaimana pola kolaborasi yang dilakukan di sana. Beberapa insights yang saya perlu ingat baik-baik untuk diri saya sendiri:

  1. Koneksi. Atau lebih tepatnya mentor. Penting banget ini untuk mengarahkan kita ke arah yang tepat.
  2. Jangan terlalu perfeksionis. Kata salah satu atasan kak Janice dulu, "early optimization is the root of all evil."
  3. Keterampilan yang diperlukan selalu berkembang cepat seiring dengan perkembangan teknologi. Android yang dulu butuh Java, sekarang didominasi Kotlin. iOS yang sebelumnya di Objective-c sekarang yang lebih banyak dicari Swift. Bahasa back-end juga ternyata macam-macam. Sebelum ini, setahu saya bahasa back-end yang populer paling Ruby atau Python. Ternyata di Gojek, ada Golang, Clojure, dan lain-lain.
  4. Tidak hanya ngerti syntax, tapi perlu pemahaman dan implementasi dari SOLID Principles, Design patterns, dan lain-lain.
  5. Tak ada yang abadi. Kode yang kita tulis akan selalu berubah. Karena kecepatan rilis adalah fokus utamanya. Kecuali kalo klean mrogram pake COBOL, yak. Katanya program yang ditulis pake COBOL tak akan lekang oleh waktu 🤣

Selain itu, saat bekerja dalam tim tentu pola komunikasi itu sangat penting. Dan menurut pemaparan kak Janice, berikut beberapa hal yang ia lakukan di Gojek untuk menjalin komunikasi yang aktif.

  1. Bertanya tanpa sungkan. Kebiasaan, nih, orang Indonesia dikit-dikit minta maaf. Katanya di mata orang barat kelihatan kita kaya kurang percaya diri. Selain itu, hal tersebut juga menghabiskan waktu. Daripada maaf-maafan langsung ke point utamanya aja, deh.
  2. Kemukakan pendapat. Tapi kalau masih baru dan minim pemahaman konteks pembicaraan, bingung juga, kan, mau ngomong apa. Nah, di sini kita bisa kemukakan kesetujuan kita dengan opini yang sudah ada.
  3. Memberikan saran/kritik. Ini sama dengan yang tadi, ya. Karena menyampaikan saran dan kritik butuh memahami banyak konteks.
  4. Mengajukan solusi dari masalah yang sedang didiskusikan. Ini juga sama.
  5. Ga terlalu diem atau terlalu galak. Jangan buru-buru shut-down orang lain karena bisa jadi dia akan kasih insight baru yang terlewatkan.

Yang tak kalah pentingnya, perlu kita ingat kalau tidak semua orang memiliki latar belakang yang sama dengan kita. Sehingga pemilihan kata yang tepat sangat membantu dalam komunikasi yang efektif. Atau kita perlu jelaskan terlebih dahulu sebelumnya supaya yang belum paham jargon di spesialisasi kita bisa paham arah obrolannya.

Setelah itu, kak Janice kasih kita gambaran kesehariannya bekerja dalam tim yang menggunakan Scrum. Nah, yang ini kita tulis di post lain lagi, ya.