8 poin oleh GN⁺ 2025-08-15 | Belum ada komentar. | Bagikan ke WhatsApp
  • Insinyur perangkat lunak yang efektif membangun dan mempertahankan model mental yang jelas tentang requirement dan kode, lalu menjalankan loop untuk terus membandingkan dan memperbaruinya
  • LLM dapat menulis dan memodifikasi kode, menulis test, serta melakukan debugging, tetapi kekurangan kemampuan untuk mempertahankan model mental yang akurat, sehingga mudah bingung dalam tugas yang kompleks
  • Saat ini LLM memiliki keterbatasan dalam mendeteksi konteks yang hilang, bias resensi, dan halusinasi, sehingga sulit memahami perbedaan antara kode dan requirement secara tepat lalu memperbaikinya dengan sesuai
  • Manusia dapat beralih cara berpikir secara fleksibel sesuai situasi, misalnya menyimpan konteks keseluruhan secara sementara, atau menyembunyikan detail sejenak untuk melihat gambaran besar, tetapi LLM belum mampu melakukan ini
  • LLM berguna untuk tugas dengan requirement sederhana, tetapi dalam pengembangan perangkat lunak yang kompleks, insinyur perangkat lunak tetap harus bertanggung jawab langsung atas kejelasan requirement dan perilaku kode, sementara LLM berperan sebagai alat bantu

Loop rekayasa perangkat lunak

  • Insinyur berpengalaman bekerja dengan mengulangi langkah-langkah berikut
    1. Membangun model mental dari requirement
    2. Menulis kode sesuai model tersebut
    3. Memahami apa yang benar-benar dilakukan oleh kode yang ditulis
    4. Mengidentifikasi perbedaan lalu memperbaiki kode atau requirement
  • Inti dari loop ini adalah kemampuan untuk memiliki model mental yang akurat dan dapat dipertahankan

Keterbatasan LLM

  • LLM mampu melakukan berbagai fungsi seperti menulis kode, mengidentifikasi masalah lalu memperbaikinya, menulis dan menjalankan test, menambahkan logging, serta menggunakan debugger
  • Namun, karena tidak mampu mempertahankan model mental, masalah berikut pun muncul
    • Mengasumsikan kode yang ditulisnya sendiri bekerja dengan baik
    • Saat test gagal, bergantung pada tebakan untuk menentukan apakah kode atau test yang harus diperbaiki
    • Saat bingung, menghapus seluruh kode dan menulis ulang dari awal
  • Tidak seperti manusia, saat test gagal LLM kurang fleksibel dalam memeriksa modelnya untuk menentukan arah perbaikan, atau mengurai masalah melalui percakapan saat mengalami kebuntuan
  • Insinyur perangkat lunak menjalankan test di tengah proses kerja, dan saat muncul masalah mereka dapat menilai dengan jelas bagian mana yang harus diperbaiki
  • Terkadang, bahkan ketika memulai ulang seluruh pekerjaan, hasilnya justru berupa pemahaman yang lebih dalam tentang masalah

Kemungkinan ke depan

  • Model mungkin akan berubah seiring perkembangan di masa depan, tetapi rekayasa perangkat lunak menuntut lebih dari sekadar pembuatan kode
  • Saat menyelesaikan masalah penting, manusia dapat mengeluarkan seluruh konteks dari ingatan secara sementara untuk diproses, lalu fokus pada isu tertentu atau melihat gambaran besar
  • Yang penting bukan terus menambah informasi konteks, melainkan cara berpikir yang menangani informasi yang diperlukan secara selektif
  • LLM tidak memiliki kemampuan untuk menyimpan dan memulihkan konteks secara sementara seperti manusia, atau berpindah antara gambaran besar dan detail saat berpikir
  • Batasan utama LLM saat ini
    • Context omission: kurang mampu menemukan bagian yang kehilangan informasi penting
    • Recency bias: terlalu berat menekankan informasi terbaru di dalam context window
    • Hallucination: menciptakan detail yang sebenarnya tidak ada
  • Jika fitur memori ditambahkan, sebagian hal mungkin membaik, tetapi ketika kompleksitas terlampaui, LLM tetap gagal dalam memahami konteks dan mempertahankan model
  • LLM juga kurang memiliki kemampuan untuk mempertahankan dua model mental yang mirip sekaligus, menganalisis perbedaannya, lalu memutuskan bagian mana dari requirement atau kode yang harus diperbaiki

Peran dan pemanfaatan saat ini

  • LLM unggul dalam pembuatan kode cepat serta integrasi requirement dan dokumentasi, sehingga cukup berguna untuk tugas yang sederhana dan jelas
  • Namun, pada masalah yang tidak sederhana, menjaga konteks yang memadai dan melakukan perbaikan berulang tetap sulit
  • Karena itu, klarifikasi requirement dan verifikasi kode tetap menjadi tanggung jawab insinyur perangkat lunak
  • Kita memang mengarah pada lingkungan di mana manusia dan agen (LLM) membangun perangkat lunak bersama, tetapi untuk saat ini insinyur harus memimpin, dan LLM digunakan sebagai alat

Belum ada komentar.

Belum ada komentar.