Kebun binatang dan keheningan

Dua bulan jadi mentor bootcamp coding di Brunei mengajariku bahwa 'senior developer' itu cuma yang ditulis di slide. Apakah kamu benar-benar bisa menjelaskan sesuatu — itu antara kamu dan ruangan berisi wajah-wajah yang diam.

7 menit baca
  • teaching
  • communication
  • craft
  • career

Hari Selasa pagi di Bandar Seri Begawan. Slide-nya bertuliskan class Mammalia. Aku tiga menit masuk ke penjelasan tentang inheritance, di depan dua puluh peserta Coding BN Cohort 3, dan aku baru sadar tidak ada satu pun yang mengangguk.

Tidak ada yang mengetik. Tidak ada yang bertanya. Tidak ada yang melihat laptop mereka. Mereka semua melihat slide, dan slide-nya balik menatap mereka, dan di antara slide dan ruangan itu ada keheningan yang bisa aku rasakan menempel di kemejaku.

Ini bukan keheningan sopan dari kami sudah tahu ini. Ini keheningan dari kami tidak tahu apa yang sedang kamu bicarakan. Senior engineer fasih membaca jenis pertama. Kebanyakan dari kita tidak pernah belajar membaca yang kedua.

Aku buka Canva di tab kedua. Aku mulai menggambar kebun binatang.

Slide yang tidak nyantol

Contoh klasik dari textbook: Mammalia sebagai parent class, Lion dan Whale sebagai child, eat() dan breathe() sebagai method yang di-inherit. Aku sudah pernah lihat di belasan tutorial. Aku sudah pernah menggambarnya di whiteboard kantor, menyaksikan kolega-kolegaku mengangguk, dan tidak pernah mempertanyakannya.

Contoh itu mengasumsikan kamu sudah ketemu Linnaeus. Mengasumsikan bahwa kingdom → phylum → class → order terasa natural. Mengasumsikan kalimat “Mammalia adalah parent dari Lion” membawa informasi, bukan misteri.

Dua puluh peserta bootcamp, rata-rata umur 22, yang datang untuk belajar cara men-ship software, tidak otomatis punya semua itu. Kenapa harus punya? Pengalaman terdekat mereka dengan inheritance adalah pohon keluarga sendiri. Kenapa Mammalia jadi parent dari Lion? Kenapa Lion mewarisi breathe()? Apa gunanya parent kalau child yang mengerjakan?

Felienne Hermans menyebut ini chunking problem di The Programmer’s Brain — kemampuanmu membaca kode dibatasi oleh pola-pola yang sudah ter-chunk di memori jangka panjangmu. Programmer baru tidak kekurangan kecerdasan; mereka kekurangan chunk. Dan contoh yang aku anggap nyaman itu mengasumsikan chunk yang sudah aku punya sejak biologi SMA.

Slide-nya tidak gagal. Aku yang gagal — dengan memilih contoh yang tugas pertamanya adalah mengajarkan model yang belum mereka punya, sebelum bisa mengajarkan model yang sebenarnya ingin aku ajarkan.

Solo Leveling sebagai UML

Aku tidak ingat persis kapan aku pivot. Sekitar pertanyaan ketiga — kenapa Lion butuh parent? — aku tutup slide-nya dan mulai dari awal.

Di Canva, aku gambar class Animal dengan name, age, dan method eat(). Aku gambar Lion yang meng-extend-nya: name dan age yang sama, tapi raungannya. Penguin: name dan age yang sama, tapi waddle alih-alih lari. Aku tanya ke ruangan: kalau aku tambahkan Whale minggu depan, apa yang parent kasih ke aku gratis? Ada yang menjawab. Bentuk ruangan berubah.

Lalu aku lanjutkan. Kalian nonton Solo Leveling kan? Sung Jin-Woo punya stat. HP, MP, Strength. Dia punya method — Shadow Extraction, Ruler’s Authority. Hunter is-a Person dengan field tambahan. S-Rank Hunter is-a Hunter dengan field yang lebih banyak lagi. Shadow soldier yang dia extract meng-inherit dari base class Shadow. Setengah ruangan tertawa. Setengah lainnya mulai mengetik.

Di Omniscient Reader’s Viewpoint, para Constellation memberi sponsor ke incarnation yang mendapat skill yang di-inherit dari domain Constellation-nya. Itu mixin composition. Para Dokkaebi menjalankan sistem yang memberikan dan men-track skill itu — itu runtime-nya.

Mereka sudah punya semua ini di kepala. Aku cuma perlu menunjuk.

Yang aku pelajari di jam itu, dan terus aku pelajari ulang setiap minggu, sederhana sekali. Mental model-nya yang melakukan kerjanya, bukan penjelasannya. Penjelasan cuma jalur dari tempat mereka berada ke tempat model itu tinggal. Kalau jalurnya pendek, kamu kelihatan seperti pengajar hebat. Kalau jalurnya panjang, kamu kelihatan tidak siap. Chip dan Dan Heath menyebut prinsip ini concrete-and-unexpected di Made to Stick — prinsip yang membuat suatu ide bisa bertahan di kepala orang lain adalah prinsip yang tidak mengharuskan pendengarnya meng-import model yang belum mereka punya.

Aku sudah menganggap remeh jalur pendek itu sepanjang karierku. Jalur panjang itulah yang disebut mengajar.

Cermin

Dua bulan aku mengajar hampir setiap malam kerja. Setelah kelas pertama aku mulai menyimpan file catatan bernama hal-hal yang tidak nyantol hari ini. Isinya panjang.

Yang catatan itu tunjukkan, minggu demi minggu:

Aku sudah lolos dari penjelasan yang buruk di kantor selama bertahun-tahun. Product manager mengangguk. Reviewer kasih thumbs-up. New hire terlalu sopan untuk bilang aku tidak ngerti. Peserta bootcamp tidak sopan. Mereka tinggal tidak menjawab. Keheningan itu adalah feedback loop yang berhenti diterima senior engineer.

Kosakata yang paling aku sukai adalah kosakata yang paling sering harus aku terjemahkan. Abstraction, coupling, idempotent, side effect — kata-kata itu aku pakai seolah netral, padahal itu dialek dari sebuah suku yang aku lupa kapan aku bergabung. Mengucapkan idempotent ke pemula bukan berkomunikasi. Itu menandakan keanggotaan.

Steven Pinker menyebut ini curse of knowledge di The Sense of Style — begitu kamu tahu sesuatu, kamu tidak bisa lagi mengingat rasanya tidak tahu, dan penjelasanmu diam-diam berhenti memperhitungkan jurang itu. Obatnya bukan menambah rigor. Obatnya adalah menatap ruangan-ruangan yang jurangnya terlihat sampai kamu bisa merasakan di mana ia tinggal.

Engineer terbaik yang pernah aku kerja sama dengan bukanlah yang paling kedengaran pintar. Mereka adalah yang, kalau ditengok ke belakang, membuat jalur dari tempat aku berada ke tempat model itu tinggal terasa pendek. Aku selama ini meniru kesimpulan mereka, bukan craft mereka. Craft-nya ada di pembangunan jalur itu.

Dan — yang ini paling lama aku sadari — alat AI tidak menggantikan ini. Alat AI menaikkan harganya. Sebuah model bisa kasih kamu enam penjelasan berbeda untuk class Mammalia dalam tiga detik. Ia tidak bisa tahu yang mana dari enam itu yang nyantol untuk anak 22 tahun ini yang nonton OMV semalam dan belum pernah lihat class diagram. Triangulasi antara penjelasan dan manusia di depanmu — itulah pekerjaan yang tidak menjadi lebih mudah. Mungkin malah lebih sulit, karena sekarang penjelasan itu murah dan memilih yang tepat adalah seluruh skill-nya.

Komunikasi bukan soft skill. Itu engineering skill yang berkembang berlipat ganda. Itulah yang membedakan senior yang sungguh-sungguh menaikkan level tim dari senior yang cuma pengetik cepat dengan résumé panjang. Mengajar adalah satu-satunya cermin yang menunjukkan kamu yang mana.

Penutupan

Dua bulan kemudian aku berdiri di podium di gedung yang sama. Di belakangku ada slide buatan AITI — foto aku, tulisan AI Engineer | Senior Developer, blurb yang aku tulis tentang cohort ini “ready to deploy, debug, and deliver value from day one.”

Penulis sedang berbicara di podium, dengan slide di layar di belakangnya menampilkan bio: AI Engineer dan Senior Developer di PT. Aegislabs, di samping logo Coding BN.
Di podium. Senior Developer itu yang ditulis di slide. Ruanganlah yang memberitahumu apakah kamu benar-benar bisa menjelaskan sesuatu.

Lebih awal di pagi itu cohort sudah memandu Permanent Secretary Ministry of Finance and Economy dan CEO AITI berkeliling ke meja-meja demo. Aku berdiri di belakang. Peserta yang diam di minggu pertama sekarang sedang menjelaskan diagram arsitektur ke menteri dalam dua bahasa. Mereka sudah membangun sendiri jalur dari tempat mereka mulai ke tempat proyek mereka kini berada. Aku tidak melakukannya untuk mereka. Aku cuma berdiri di ruangan itu sementara mereka mengerjakannya.

Tamu VIP dalam pakaian resmi Brunei — termasuk Permanent Secretary Ministry of Finance and Economy dan CEO AITI — berdiri di depan deretan komputer sementara peserta mempresentasikan proyek mereka.
Permanent Secretary dan CEO AITI di meja-meja demo. Dua bulan sebelumnya kebanyakan peserta belum menulis class pertama mereka.

Ketika giliranku tiba di depan, aku coba bikin pidatonya pendek. Aku ucapkan kalimat tentang Coding BN tidak hanya mengajarkan syntax — bahwa program ini menumbuhkan engineering mindset untuk men-deploy, men-debug, men-deliver. Aku ucapkan karena aku percaya. Yang tidak aku ucapkan di podium — yang sedang aku ucapkan di sini — adalah bahwa aku belajar lebih banyak di ruangan itu daripada yang aku ajarkan. Engineer Indonesia yang terbang ke Brunei untuk jadi mentor satu cohort orang Brunei, lalu turun panggung dengan certificate of recognition yang diserahkan oleh pejabat Kementerian Brunei: aku diberi hadiah dua puluh wajah yang diam, dan ruangan itu mengembalikan sesuatu yang tidak pernah diberikan oleh PR review atau design doc — feedback yang tidak bisa dijawab berupa aku belum mengerti kamu.

Penulis menerima certificate of recognition dari pejabat Kementerian Brunei dalam pakaian resmi, di depan backdrop bertuliskan Coding BN Cohort 3.
Menerima certificate of recognition di penutupan Coding BN Cohort 3. Sertifikatnya untuk kerja mentoring-nya. Pelajarannya, ternyata, untukku.

Yang aku bawa pulang ke Bandung

Aku terbang pulang dengan selembar kertas yang menyatakan aku adalah mentor. Kertasnya bukan artefaknya. Artefaknya adalah hal yang lebih kecil dan lebih jujur yang dua bulan itu masukkan ke kantongku.

Lain kali aku menulis design doc, aku akan bertanya-tanya model apa yang aku asumsikan sudah dimiliki pembaca, dan apakah aku harus mengajarkannya dulu sebelum aku bersandar padanya. Lain kali aku review PR dan penulisnya bilang iya, masuk akal terlalu cepat, aku akan menahan jeda itu. Keheningan jarang berarti mereka mengerti. Keheningan lebih sering berarti jalur yang belum aku bangun.

Kembali ke Bandar Seri Begawan, dua bulan yang lalu, aku ada di depan kelas. Slide-nya bertuliskan class Mammalia. Dua puluh wajah. Tidak ada yang mengangguk.

Sekarang, ketika aku melihat keheningan itu di rumah di Bandung — di thread Slack, di standup, di code review — aku tidak meraih penjelasan yang lebih panjang.

Aku mencari kebun binatang.