Revolusi AI dalam Pemrograman Menciptakan Krisis Kualitas dalam Pengembangan Perangkat Lunak

Tim Komunitas BigGo
Revolusi AI dalam Pemrograman Menciptakan Krisis Kualitas dalam Pengembangan Perangkat Lunak

Seiring kecerdasan buatan mengubah cara perangkat lunak ditulis, para pengembang sedang menghadapi konsekuensi tak terduga: banjir kode berkualitas rendah yang membanjiri peninjau kode dan mengancam seni pemrograman itu sendiri. Apa yang awalnya adalah alat untuk meningkatkan produktivitas telah menjadi sumber ketegangan dalam tim pengembang di seluruh dunia.

Kebangkitan Sampah Hasil Generasi AI

Di seluruh industri teknologi, para pengembang melaporkan peningkatan dramatis dalam apa yang banyak sebut sebagai sampah AI - kode yang dihasilkan oleh model bahasa besar yang terlihat benar secara dangkal tetapi mengandung cacat mendasar. Masalahnya bukan hanya teknis; ini budaya. Pengembang yang sangat bergantung pada alat AI menghasilkan kode dalam jumlah besar tanpa sepenuhnya memahami apa yang mereka ajukan untuk ditinjau.

Seorang pengembang menggambarkan kefrustrasian yang banyak dirasakan: Peninjau kode rekan kerja dengan cepat kehilangan akal sehat mereka ketika mereka menyadari kenyataan pahit bahwa mereka sekarang menjadi lapisan kontrol kualitas pertama, bukan salah satu yang terakhir. Para peninjau menemukan diri mereka menangkap segala sesuatu mulai dari fungsi yang tidak digunakan dan referensi pustaka hasil halusinasi hingga kesalahan runtime yang jelas yang seharusnya ditangkap oleh penulis aslinya.

Masalah Umum dalam Kode yang Dihasilkan AI:

  • Fungsi yang tidak digunakan dan tidak pernah dipanggil
  • Referensi ke library yang tidak ada
  • Error runtime atau kompilasi yang jelas
  • Pola kode yang terlalu bertele-tele dan berulang
  • Kurangnya penanganan error yang tepat
  • Algoritma dan struktur data yang tidak efisien

Kesenjangan Tanggung Jawab

Mungkin tren paling mengkhawatirkan adalah munculnya apa yang beberapa sebut sebagai budaya whoopsie. Ketika dihadapkan pada kode bermasalah, beberapa pengembang mengalihkan tanggung jawab dengan komentar seperti whoopsie, Claude yang menulis itu. AI yang konyol, ha-ha. Sikap ini mewakili pergeseran fundamental dalam bagaimana programmer mendekati pekerjaan mereka. Di mana pengembang dulu bangga dengan kepemilikan kode mereka, beberapa sekarang memperlakukan output hasil AI sebagai masalah orang lain.

Tanggapan komunitas telah jelas: Jika seseorang melakukannya sekali, mereka mendapat pesan tegas tentang hal itu. Jika terjadi dua kali, itu ditolak dan dikirim ke manajer mereka. Banyak pengembang berpengalaman berpendapat bahwa terlepas dari bagaimana kode ditulis, orang yang mengirimkannya tetap bertanggung jawab atas kualitasnya. Solusinya, menurut seorang komentator, sederhana: Solusinya adalah menolak commit dengan pesan 'bersihkan ini' segera setelah Anda melihat beberapa omong kosong. Kepercayaan itu diperoleh!

Metrik Produktivitas Versus Kualitas

Dorongan menuju pengkodean berbantuan AI tidak terjadi dalam ruang hampa. Tim manajemen yang ingin menunjukkan peningkatan produktivitas seringkali mengukur hal yang salah. Seperti yang dicatat seorang pengamat, Orang yang melempar sampah LLM ke GitHub memiliki metrik yang bagus ketika para pemimpin melihat penggunaan kursor, baris kode, angka PR, sementara orang yang melambat untuk benar-benar membaca apa yang dikirimkan orang lain sekarang begitu tenggelam dalam sampah sehingga mereka memiliki lebih sedikit waktu untuk menghasilkan sendiri.

Ini menciptakan struktur insentif yang keliru di mana kuantitas mengalahkan kualitas. Pengembang yang menghasilkan ribuan baris kode berbantuan AI tampak lebih produktif daripada mereka yang dengan hati-hati membuat solusi yang lebih kecil dan lebih efisien. Seorang pengembang menunjukkan perbedaan utama: Yang ditulis LLM hampir seluruhnya bersifat tambahan, sedangkan insinyur senior yang baik sering menghapus sebanyak yang mereka tambahkan. Ini menggema cerita terkenal dari hari-hari awal Apple tentang baris kode negatif sebagai ukuran produktivitas.

Metrik Dampak Tim:

  • Waktu code review meningkat 3-5x untuk submission yang dihasilkan AI
  • Jumlah baris pull request biasanya 200-500% lebih tinggi dengan bantuan AI
  • Tingkat defect pada kode yang dihasilkan AI: 2-3x lebih tinggi pada submission awal
  • Transfer pengetahuan antar anggota tim menurun sekitar 40-60%
  • Waktu onboarding untuk developer baru meningkat karena kompleksitas kode

Koneksi Manusia Memudar

Di luar kualitas kode, banyak yang khawatir tentang apa arti AI bagi dinamika tim dan berbagi pengetahuan. Cara tradisional pengembang belajar dari satu sama lain - pemrograman berpasangan, diskusi arsitektur, dan pembimbingan - sedang digantikan oleh interaksi manusia-mesin. Meraih LLM daripada orang ketika kita membutuhkan pemrogram berpasangan, seseorang untuk memantul-mantulkan solusi, membuat prototipe, membuat sketsa arsitektur, atau membantu menjawab pertanyaan ahli tentang bagian-bagian esoterik dari basis kode menjadi hal yang biasa.

Pergeseran ini memiliki implikasi mendalam bagi bagaimana pengetahuan menyebar dalam organisasi. Pengembang junior yang mungkin belajar dari rekan senior melalui tinjauan kode dan kolaborasi sekarang mendapatkan umpan balik utama mereka dari sistem AI. Pemahaman mendalam yang datang dari menjelaskan konsep kompleks kepada manusia lain sedang hilang.

Menemukan Keseimbangan yang Tepat

Tidak semua pengembang menolak revolusi AI. Beberapa telah menemukan cara produktif untuk mengintegrasikan alat-alat ini ke dalam alur kerja mereka sambil mempertahankan standar kualitas. Seorang pengembang membagikan perjalanan mereka: Saya mengalami lintasan ini: hanya menggunakan AI untuk hal-hal kecil, sangat terkesan → memberikan tugas lebih besar kepada AI → mode agenik penuh → menyadari bahwa saya masih perlu memikirkan semua kode → kembali ke memberikan tugas kecil kepada AI.

Pendekatan paling sukses tampaknya adalah menggunakan AI untuk penelitian, proof-of-concept, dan kode sekali pakai sambil menjaga pengkodean gambaran besar tetap di tangan manusia. Seperti yang dicatat pengembang lain, Saya menemukan AI sangat berguna untuk penelitian, proof-of-concept dan kode sekali pakai dari 'ini bekerja, tetapi benar-benar tidak dapat diterima dalam produksi'. Ini pekerjaan yang cenderung saya lakukan sebelum mulai menangani solusi akhir.

Pendekatan Developer terhadap AI Coding:

  • Riset & Prototyping: Menggunakan AI untuk kode eksploratif dan proof-of-concept
  • Bantuan Tugas Kecil: Penggunaan terbatas untuk fungsi atau utilitas tertentu
  • Mode Agentic Penuh: Membiarkan AI menangani seluruh fitur dengan tinjauan manusia
  • Pendekatan Hybrid: Menggabungkan generasi AI dengan penyempurnaan manusia yang signifikan
  • Resistensi: Menghindari tools AI sepenuhnya untuk kode produksi

Krisis Identitas Semakin Dalam

Bagi banyak programmer, ini bukan hanya tentang alat dan produktivitas - ini tentang identitas. Seni pemrograman, dengan fokus mendalam dan kepuasan pemecahan masalah, adalah apa yang menarik banyak orang ke bidang ini. Seperti yang dikeluhkan seorang pengembang, Pada tingkat tertentu saya agak kesal dengan fakta bahwa saya tidak benar-benar bisa melakukan hobi saya untuk pekerjaan lagi. Ini sekarang sesuatu yang fundamentally berbeda.

Pembagian antara mereka yang melihat pemrograman sebagai sarana untuk mencapai tujuan dan mereka yang melihatnya sebagai kerajinan tangan tidak pernah lebih lebar. Beberapa berpendapat bahwa pengkodean adalah sarana untuk mencapai tujuan, bukan tujuan itu sendiri, sementara yang lain membantah bahwa memecahkan masalah adalah hasil dari pemrograman, bukan tujuan pemrograman. Ketidaksepakatan filosofis ini mencerminkan pertanyaan yang lebih dalam tentang apa artinya menjadi programmer di era AI.

Transformasi pengembangan perangkat lunak melalui AI menciptakan ketegangan mendasar antara produktivitas dan kualitas, antara iterasi cepat dan pemahaman mendalam. Saat industri menavigasi transisi ini, para pengembang dipaksa untuk mempertimbangkan kembali apa artinya menulis kode yang baik dan menjadi programmer yang bertanggung jawab. Alat-alatnya mungkin berubah, tetapi kebutuhan akan pengembangan perangkat lunak yang hati-hati dan penuh pertimbangan tetap sama pentingnya seperti sebelumnya.

Referensi: The Programmer Identity Crisis