Tugas Anda adalah menyerahkan kode yang terbukti berfungsi
(simonwillison.net)- Di lingkungan pengembangan berbantuan AI, semakin banyak kasus engineer yang belum berpengalaman mengirimkan PR besar yang belum tervalidasi
- Tugas inti developer bukan sekadar menulis kode, melainkan menyediakan kode yang terbukti berfungsi
- Untuk itu, dua tahap yaitu pengujian manual dan pengujian otomatis wajib dilakukan
- Coding agent juga harus dikonfigurasi agar memverifikasi sendiri perubahan yang dibuatnya
- Pada akhirnya, tanggung jawab ada pada developer manusia, dan hanya kode yang disertai bukti verifikasi yang benar-benar bernilai
Masalah mengirimkan kode yang belum tervalidasi
- Disebutkan adanya kasus engineer junior yang memanfaatkan alat LLM lalu mengirimkan PR besar yang belum diuji dan bergantung pada code review
- Ini dinilai tidak sopan, tidak efisien, dan merupakan bentuk pengabaian tanggung jawab sebagai developer
- Peran software engineer bukan sekadar menghasilkan kode, tetapi menyediakan kode yang terbukti berfungsi
- Kode yang belum tervalidasi dianggap sebagai tindakan memindahkan beban ke reviewer
Dua tahap untuk membuktikan bahwa kode berfungsi
- Tahap pertama adalah pengujian manual, yaitu harus memeriksa sendiri bahwa kode benar-benar bekerja dengan semestinya
- Perlu melalui proses menyiapkan sistem ke kondisi awal, menerapkan perubahan, lalu memverifikasi hasilnya
- Perintah terminal dan hasil output dapat dilampirkan pada komentar code review atau dibuktikan dengan video rekaman layar
- Setelah dipastikan berjalan normal, perlu menelusuri masalah lewat pengujian edge case
- Tahap kedua adalah pengujian otomatis, yang ditekankan sebagai prosedur wajib berkat kemajuan alat LLM
- Pengujian otomatis harus disertakan bersama perubahan, dan jika implementasinya dibalik maka pengujian harus gagal
- Penulisan pengujian mengikuti prosedur yang sama dengan pengujian manual, dan kemampuan integrasi test harness sangat penting
- Menganggap pengujian otomatis saja sudah cukup lalu melewatkan pengujian manual disebut sebagai pendekatan yang keliru
Peran dan verifikasi coding agent
- Arus utama di ranah LLM pada 2025 adalah pertumbuhan pesat coding agent, dengan Claude Code dan Codex CLI sebagai contoh representatif
- Mereka dapat menjalankan kode dan memperbaiki masalah sendiri
- Coding agent juga harus membuktikan perubahannya sendiri, serta melakukan pengujian manual dan otomatis
- Untuk alat CLI, agent dapat dilatih agar mengeksekusinya langsung, atau diotomatisasi dengan sistem seperti CLIRunner dari Click
- Untuk perubahan CSS, hasilnya dapat diperiksa dengan mengatur pengambilan screenshot
- Jika proyek sudah memiliki pengujian yang ada, agent akan memperluasnya atau menggunakan ulang polanya
- Struktur dan kualitas kode pengujian secara langsung memengaruhi kualitas pengujian yang dihasilkan agent
- Sense estetika terhadap kode pengujian disebut sebagai kemampuan inti yang membedakan engineer senior
Tanggung jawab manusia dan nilai kode
- Komputer tidak bisa dimintai tanggung jawab, dan manusialah yang harus mengambil peran itu
- Fakta bahwa LLM dapat menghasilkan patch besar bukan lagi hal yang bernilai
- Nilai yang sesungguhnya ada pada penyediaan kode yang terbukti berfungsi
- Saat mengirim PR, wajib menyertakan bukti bahwa kode benar-benar bekerja dengan benar
4 komentar
Sangat setuju. Saat ini, tanggung jawab atas kode berbasis PR dialihkan kepada maintainer dan reviewer. Tidak ada kerugian bagi orang yang mengirimkan kode LLM tanpa meninjaunya.
Kalau melihat kontribusi ke codebase Google, mereka tampaknya mengukur hal-hal seperti credit kontributor; saya rasa open source / perusahaan lain juga akan mulai mengadopsi hal seperti ini. Saya merasa kepercayaan akan menjadi aset yang semakin penting.
Oh, jadi Google menggunakan konsep seperti itu.
Komentar Hacker News
Belakangan ini sering terlihat anekdot yang menyedihkan. Insinyur junior yang dipersenjatai alat LLM melempar PR besar yang tidak diuji ke rekan kerja atau maintainer open source, lalu berharap code review akan membereskan sisanya. Yang lebih buruk, perilaku seperti ini bukan hanya dari junior, tetapi juga dari developer senior
Cara membuat PR yang baik berlaku bukan hanya untuk kode buatan AI, tetapi untuk semua kasus. Saat menulis deskripsi PR, aku menyusun secara berurutan bagaimana perilaku saat ini, alasan perubahan, dan apa yang diubah. Aku juga menyertakan cara pengujian, screenshot, bahkan perintah E2E test untuk mengurangi beban reviewer. Ini juga membantu kolaborasi asinkron atau tim dengan perbedaan zona waktu
Hakikat seorang engineer adalah memahami requirement, mengubahnya menjadi alur logis, menyeimbangkan trade-off, dan bertanggung jawab atas hasilnya. Pembuatan kode atau pengiriman PR acak hanyalah gejala dari hilangnya dasar-dasar ini. Agen coding justru menjadi pemicu untuk kembali mengingatkan hakikat engineering
Testing itu perlu, tetapi tidak cukup. Kode juga harus divalidasi secara logis. Testing hanya membuktikan bahwa ia berjalan normal pada input dan lingkungan tertentu
Aku tidak mewajibkan testing. Aku melakukannya hanya karena ingin melihat kodenya benar-benar bekerja. Kalau melihat kode berjalan tidak membuatmu bersemangat, mungkin pekerjaan ini bukan untukmu
Aku mendengar cerita bahwa berkat LLM, junior melempar PR raksasa, tetapi di organisasi kami hal seperti itu belum ada
Aku tidak setuju dengan pernyataan “tugasmu adalah menyerahkan kode dalam keadaan terbukti”. Pekerjaan yang sebenarnya adalah menyelesaikan masalah bisnis. Tentu dalam kebanyakan kasus itu berujung pada kode, tetapi pembedaan ini penting
Di tempat kerja lamaku, aku bekerja di produsen hardware berkualitas tinggi dari Jepang, dan jika departemen QA menemukan bug, peluncuran produk akan dihentikan. Karena itu tiap departemen pengembang membentuk tim QC sendiri untuk memperkuat pengujian sebelumnya. Hasilnya, software diverifikasi dengan sangat menyeluruh
Belakangan ini hakikat pekerjaan berubah menjadi menutup tiket. Kualitas kode tidak tercatat dalam statistik, jadi dianggap tidak penting. Aku tidak mau ikut dalam sistem seperti ini. Sekarang craftsmanship sudah hilang, dan semua orang hanya menginginkan triplek murah dan lem
Masalahnya terletak pada arti “kode yang terbukti”. Ada juga kasus orang menempelkan test buatan LLM lalu mengajukan PR besar. Aku sendiri melakukan vibe coding untuk proyek pribadi, tetapi melakukannya di level tim adalah kebiasaan buruk. Alasan kita mempekerjakan engineer adalah untuk membeli keahlian mereka