Code review telah menjadi medan pertempuran harian bagi software engineer. Seiring kecerdasan buatan menghasilkan lebih banyak kode, tinjauan manusia menjadi semakin kritis. Namun apa sebenarnya yang harus dicapai oleh proses ini? Diskusi komunitas yang hangat mengungkap perbedaan pendapat yang mendalam tentang segala hal mulai dari volume komentar hingga filosofi persetujuan.
Dilema Review yang Memblokir
Salah satu perdebatan paling kontroversial berpusat pada kapan harus memblokir pull request versus kapan menyetujui dengan komentar. Banyak engineer yang bergumul dengan keputusan ini, khawatir mereka akan terlihat kasar dengan secara formal memblokir perubahan. Hasilnya sering kali berupa ambiguitas yang memperlambat seluruh tim.
Secara pribadi saya benci ketika orang hanya meninggalkan komentar pada PR saya tanpa secara eksplisit memblokir atau menyetujuinya. Bagi saya itu terkesan tidak tegas.
Sentimen ini bergema melalui komunitas pengembang. Ketika reviewer meninggalkan komentar tanpa status pemblokiran yang jelas, penulis menghadapi ketidakpastian. Haruskah mereka merge dan berisiko mengabaikan kekhawatiran yang valid? Atau menunggu tanpa batas waktu untuk klarifikasi? Komunitas terbelah antara mereka yang melihat komentar non-blokir sebagai saran yang membantu dan mereka yang menganggapnya sebagai gerbang penghalang yang pasif-agresif.
Poin Konflik Umum dalam Code Review:
- Review yang memblokir vs. non-blocking
- Kuantitas komentar (5-6 vs. tidak terbatas)
- Persyaratan konsistensi vs. selera pribadi
- Pengujian lokal vs. ketergantungan pada CI pipeline
- Review manusia vs. automated tooling
Kontroversi Kuantitas Komentar
Berapa banyak komentar yang dianggap terlalu banyak? Saran artikel tentang maksimal lima hingga enam komentar memicu perdebatan sengit. Beberapa pengembang berargumen bahwa batasan ini mencegah umpan balik penting dari terkubur, sementara yang lain bersikeras bahwa review yang menyeluruh membutuhkan komentar yang mendalam.
Masalah sebenarnya muncul ketika komentar menjadi berulang atau berfokus pada preferensi pribadi daripada masalah objektif. Seorang pengembang mencatat bahwa volume komentar yang masif sering menunjukkan masalah yang lebih dalam - baik pull request terlalu besar, atau tim kekurangan alat yang tepat untuk pengecekan gaya otomatis. Ketika manusia secara manual menegakkan aturan pemformatan yang bisa ditangani mesin, waktu semua orang terbuang percuma.
Konsistensi Versus Selera Pribadi
Garis antara mempertahankan konsistensi dan memaksakan selera pribadi terbukti sangat kabur. Sebagian besar engineer setuju bahwa codebase harus konsisten, tetapi sangat tidak setuju tentang apa yang merupakan konsistensi yang diperlukan versus preferensi yang sewenang-wenang.
Beberapa berpendapat bahwa konsistensi dalam codebase yang matang menjadi sangat penting untuk pemeliharaan, mengubah apa yang seharusnya menjadi preferensi pribadi menjadi standar penting. Yang lain membantah bahwa banyak aturan konsistensi yang disebut hanyalah kumpulan dokumentasi dari selera seseorang. Ketegangan muncul ketika anggota tim yang berbeda menegakkan aturan tidak tertulis yang berbeda, terutama terhadap kontributor yang kurang asertif.
Debat Pengujian Lokal
Haruskah reviewer melakukan checkout branch secara lokal? Pertanyaan praktis ini mengungkap perbedaan filosofis tentang infrastruktur pengembangan. Beberapa engineer bersikeras bahwa pipeline CI harus menjadi sumber kebenaran tunggal, sementara yang lain menganjurkan pengujian lokal untuk menangkap masalah lingkungan.
Jalan tengah yang pragmatis mengakui bahwa meskipun CI harus andal, organisasi di dunia nyata sering memiliki sistem yang tidak sempurna. Pengembang yang bekerja di perusahaan dengan tim DevOps terpisah terkadang menemukan pengujian lokal diperlukan ketika sistem pusat tidak dapat diandalkan atau di luar kendali mereka. Ini mencerminkan ketegangan yang lebih luas antara praktik rekayasa yang ideal dan kendala tempat kerja yang praktis.
Praktik Terbaik Code Review dari Diskusi Komunitas:
- Gunakan status blocking/non-blocking yang jelas
- Otomatisasi pemeriksaan gaya dan format
- Fokuskan review pada arsitektur dan logika
- Seimbangkan konsistensi dengan fleksibilitas
- Percayai penilaian teknis rekan kerja
- Gunakan komentar untuk edukasi, bukan gatekeeping
Masa Depan Code Review
Seiring kode yang dihasilkan AI menjadi lebih umum, proses tinjauan manusia berevolusi. Komunitas menyadari bahwa kode yang diproduksi LLM memiliki kelemahan khusus - sering kali melewatkan fungsionalitas yang ada dan kesulitan dengan pemahaman kontekstual. Ini membuat pengawasan manusia lebih berharga dari sebelumnya, bahkan ketika sifat pengawasan itu berubah.
Diskusi mengungkapkan bahwa code review melayani banyak tujuan di luar menangkap bug: berbagi pengetahuan, diskusi desain, penegakan gaya, dan memastikan banyak orang memahami perubahan sistem. Tim yang berbeda memprioritaskan tujuan ini secara berbeda, yang mengarah ke budaya review yang bervariasi. Yang tetap konstan adalah bahwa code review yang efektif membutuhkan komunikasi yang jelas, saling menghormati, dan fokus pada apa yang benar-benar penting untuk kualitas kode dan kecepatan tim.
Percakapan terus berlanjut saat tim di seluruh dunia bergumul dengan menyeimbangkan kelengkapan versus kecepatan, konsistensi versus fleksibilitas, dan alat otomatis versus penilaian manusia. Pada akhirnya, praktik code review yang sukses mengakui bahwa meskipun standar penting, mempercayai keahlian dan penilaian kolega Anda juga sama pentingnya.
Referensi: Mistakes I see engineers making in their code reviews

