Developer Berpengalaman Berbagi Kenyataan Pahit tentang Tools Coding LLM Setelah Mengalami Kesulitan di Produksi

Tim Komunitas BigGo
Developer Berpengalaman Berbagi Kenyataan Pahit tentang Tools Coding LLM Setelah Mengalami Kesulitan di Produksi

Refleksi jujur software engineer Alberto Fortin tentang penggunaan Large Language Models (LLM) untuk coding telah menyentuh hati para developer di seluruh dunia. Setelah awalnya merangkul tools AI dengan antusias, Fortin menghadapi tantangan signifikan saat membangun ulang infrastruktur dengan Go dan ClickHouse , yang membuatnya secara fundamental menilai kembali bagaimana dia mendekati pengembangan yang dibantu LLM.

Fatamorgana Produktivitas

Banyak developer mengalami periode bulan madu awal dengan LLM. Saran autocomplete pertama dan fitur-fitur kecil terasa ajaib, menciptakan ilusi peningkatan produktivitas yang dramatis. Namun, kegembiraan awal ini sering menutupi masalah yang lebih dalam yang muncul ketika bekerja pada proyek yang lebih besar dan kompleks.

Komunitas telah mengidentifikasi pola yang berulang: LLM unggul dalam menghasilkan kode dengan cepat, tetapi codebase yang dihasilkan menjadi sulit untuk dipelihara. Tidak seperti kode yang ditulis oleh developer manusia, kode yang dihasilkan LLM tidak memiliki kepemilikan kognitif yang datang dari membangun solusi langkah demi langkah. Ini menciptakan masalah fundamental - developer menemukan diri mereka mengelola codebase yang tidak sepenuhnya mereka pahami.

Masalah Mental Model

Wawasan kritis yang muncul dari diskusi developer berpusat pada konsep programming sebagai theory building. Ketika developer menulis kode sendiri, mereka membangun model mental tentang bagaimana komponen yang berbeda berinteraksi dan mengapa keputusan tertentu dibuat. Pemahaman mendalam ini menjadi krusial ketika melakukan debugging masalah atau menambahkan fitur baru.

Kode yang dihasilkan LLM mengganggu proses alami ini. Developer menerima solusi yang berfungsi tanpa melalui perjalanan pemecahan masalah yang membangun pemahaman. Ketika bug pasti muncul, memperbaikinya menjadi jauh lebih sulit karena developer tidak memiliki pengetahuan dasar tentang bagaimana kode tersebut dibangun.

Menemukan Keseimbangan yang Tepat

Komunitas developer sedang berkumpul pada pendekatan yang lebih bernuansa terhadap penggunaan LLM. Daripada memperlakukan tools ini sebagai asisten coding otonom, praktisi yang sukses memposisikan ulang mereka sebagai helper canggih untuk tugas-tugas spesifik.

Saya adalah software engineer, senior software engineer, saya adalah arsitek. LLM adalah asisten. Asisten merespons saya; saya yang membuat rencana.

Pergeseran mindset ini terbukti krusial. Developer melaporkan hasil yang lebih baik ketika mereka mempertahankan kontrol arsitektural sambil menggunakan LLM untuk tugas-tugas yang terdefinisi dengan baik dan lebih kecil seperti menghasilkan boilerplate code, menulis unit test, atau menangani pekerjaan refactoring rutin.

Kasus Penggunaan LLM yang Direkomendasikan:

  • Pembuatan potongan kode kecil
  • Pembuatan kode boilerplate
  • Penulisan unit test
  • Tugas refactoring rutin
  • Pencarian dokumentasi yang ditingkatkan
  • Penjelasan konsep dan pembelajaran

Tidak Direkomendasikan:

  • Implementasi fitur lengkap
  • Keputusan arsitektur skala besar
  • Debugging kompleks tanpa pemahaman manusia
  • Proyek yang melebihi batas context window

Spektrum Kesuksesan

Menariknya, efektivitas LLM tampaknya mengikuti pola kurva lonceng. Di satu ujung, developer yang sebelumnya tidak bisa menulis kode tertentu menemukan diri mereka tidak terblokir dan mampu membuat program yang berfungsi. Di ujung lain, developer berpengalaman belajar memperlakukan LLM sebagai pasukan junior coder, mempertahankan kontrol algoritmik tingkat tinggi sambil mendelegasikan detail implementasi.

Perjuangan terjadi di wilayah tengah, di mana developer memiliki keterampilan yang cukup untuk mengenali masalah kualitas tetapi belum mengembangkan strategi efektif untuk mengelola kode yang dihasilkan LLM. Developer ini sering menemukan diri mereka kewalahan oleh pola kode yang tidak familiar dan keputusan arsitektural yang tidak mereka buat.

Pola Penggunaan LLM Berdasarkan Pengalaman Developer:

  • Pemula: Terbantu oleh LLM, dapat membuat program yang berfungsi yang sebelumnya tidak bisa mereka buat
  • Menengah: Sering kesulitan dengan pola kode yang dihasilkan LLM yang tidak familiar
  • Mahir: Berhasil menggunakan LLM sebagai "pasukan junior coder" dengan pengawasan arsitektural

Pelajaran Praktis yang Dipetik

Komunitas telah mengidentifikasi beberapa strategi praktis untuk penggunaan LLM yang efektif. Menggunakan tools ini sebagai search engine yang ditingkatkan atau alternatif Stack Overflow yang dipersonalisasi terbukti lebih berkelanjutan daripada mengandalkan mereka untuk implementasi fitur lengkap. Banyak developer sekarang membatasi penggunaan LLM untuk menghasilkan snippet kode kecil, yang kemudian mereka review dengan hati-hati dan integrasikan secara manual.

Keterbatasan context window juga memainkan peran signifikan dalam efektivitas LLM. Ketika proyek berkembang melampaui apa yang bisa muat dalam konteks model, AI kehilangan jejak arsitektur sistem yang lebih luas, yang mengarah pada saran yang tidak konsisten atau tidak kompatibel.

Melihat ke Depan

Meskipun LLM saat ini memiliki keterbatasan yang jelas, teknologi terus berkembang dengan cepat. Beberapa developer mengantisipasi masa depan di mana LLM menjadi cukup canggih untuk menangani arsitektur kode dan refactoring secara otomatis. Yang lain mempertanyakan apakah model prediksi next-token dapat benar-benar memahami penalaran kompleks yang diperlukan untuk pengembangan software skala besar.

Untuk saat ini, pendekatan yang paling sukses tampaknya adalah memperlakukan LLM sebagai tools yang kuat tetapi terbatas yang memerlukan pengawasan manusia yang hati-hati. Kuncinya terletak pada memahami baik kemampuan maupun keterbatasan mereka, kemudian menyusun workflow untuk memaksimalkan manfaat sambil meminimalkan risiko kode yang tidak dapat dipelihara.

Diskusi yang sedang berlangsung mencerminkan pematangan yang lebih luas dalam bagaimana komunitas pengembangan software mendekati tools AI - bergerak melampaui hype awal menuju strategi integrasi yang lebih realistis dan berkelanjutan.

Referensi: Why I'm Dialing Back My LLM Usage