7 poin oleh GN⁺ 2024-11-15 | 4 komentar | Bagikan ke WhatsApp
  • Ada keyakinan bahwa utang teknis (tech debt) akan menjadi kurang penting karena AI membantu menulis dan merapikan kode
  • Namun kenyataannya, AI justru membuat biaya utang teknis menjadi lebih besar
  • Pada codebase dengan utang rendah, peningkatan kecepatan dari alat AI bisa dimaksimalkan, tetapi pada codebase legacy dengan utang tinggi, efisiensi alat AI menurun drastis
  • Akibatnya, codebase dengan banyak utang teknis mengalami kesulitan yang lebih besar dalam memanfaatkan alat AI

AI generatif rentan terhadap kode yang kompleks

  • Alat coding AI seperti Cursor atau Aider sangat sensitif terhadap kompleksitas kode
    • Pada kode dengan pola atau antarmuka yang sudah terdefinisi dengan baik, peningkatan kecepatan sangat besar, tetapi pada kode dengan alur kontrol yang kompleks dan banyak dependensi, alat ini kesulitan menghasilkan respons yang valid
  • Codebase yang kompleks bukan hanya menyulitkan model AI, tetapi juga membuat developer lebih sulit menyusun permintaan dengan jelas
  • Karena itu, banyak developer cenderung menunggu sampai alat AI mampu menangani kompleksitas tingkat ‘production’

Memanfaatkan alat AI dengan benar

  • Daripada memaksakan penggunaan alat AI pada codebase legacy, yang penting adalah pakar manusia melakukan refactoring agar AI bisa bekerja dengan lancar
  • Jika refactoring langsung berisiko, metode seperti pola Strangler Fig dapat digunakan untuk mengembangkan modul baru dan melalui itu segera memanfaatkan keunggulan alat AI
  • Dengan demikian, tim pengembang dapat fokus pada abstraksi tingkat lebih tinggi, dan lebih menitikberatkan desain arsitektur daripada implementasi detail kode

Pendekatan yang ramah AI

  • Agar alat AI dapat bekerja dengan baik, penting untuk memodularisasi sistem dan mendefinisikan interaksi antarmodul melalui antarmuka yang jelas
  • Menjaga struktur modul yang memungkinkan fungsi inti dan aliran data dijelaskan dalam bahasa alami adalah tolok ukur yang berguna
  • Dengan menggunakan alat seperti Gauge Tach untuk menetapkan visibilitas dan aturan arsitektur, sistem dapat berkembang menjadi lebih modular

Kualitas menentukan kecepatan

  • Menjaga codebase berkualitas tinggi menjadi lebih penting daripada sebelumnya
  • Jika berinvestasi pada arsitektur modular, tim dapat memaksimalkan dampak alat AI sekaligus membangun pengembangan fitur yang cepat dan software berkualitas tinggi

4 komentar

 
savvykang 2024-11-21

Pembengkakan perangkat lunak tampaknya adalah nasib yang tak terelakkan.

 
koreaisbest 2024-11-21

Sepertinya para manajer atau orang-orang semacam itu pernah melihat sesuatu lalu punya pola pikir bahwa AI akan menyelesaikan semuanya. ChatGPT terlalu banyak melahirkan halusinasi. Rasanya perlu ditekankan bahwa saat ini AI masih seperti anak sekolah dasar. Perlu dijelaskan juga bahwa AI hanya membantu sedikit sebagai alat pendukung saja.. Dan yang di atas terasa sangat relate, kalau sudah rumit AI jadi salah paham. Sepertinya AI tidak bisa menangkap alur keseluruhan proyek.

 
kallare 2024-11-18

ternyata tetap tidak bisa lepas dari garbage in garbage out

 
GN⁺ 2024-11-15
Opini Hacker News
  • Perusahaan dengan codebase yang muda dan berkualitas tinggi mendapat manfaat terbesar dari alat AI generatif. Sebaliknya, perusahaan dengan codebase legacy yang kompleks mengalami kesulitan untuk mengadopsinya. Saya juga mengalami hal serupa saat menggunakan LLM pada proyek pribadi. Begitu codebase menjadi sedikit saja unik, model mulai membuat kesalahan dan pekerjaan menjadi lebih sulit

  • LLM membuat pekerjaan yang mudah menjadi lebih mudah, tetapi melakukan kesalahan pada pekerjaan yang sulit. Kesenjangan ini bukan mengecil, malah semakin besar

  • Dalam lingkungan dengan 'utang tinggi', AI kesulitan menghasilkan respons yang berguna karena alur kontrol yang halus, dependensi jangka panjang, dan pola tak terduga. Dalam banyak kasus, ini bukan 'utang teknis', melainkan tanda kedewasaan codebase

  • Daripada memaksa alat AI generatif untuk menyelesaikan masalah kompleks di codebase legacy, lebih baik pakar manusia merefaktor kode legacy agar AI generatif dapat bekerja dengan lancar

  • Muncul keyakinan bahwa AI akan membuat utang teknis menjadi kurang penting. Namun, kode yang dihasilkan AI cenderung tidak teratur, tidak konsisten, dan sangat sensitif terhadap prompt serta input konteks tertentu

  • Kode hasil generasi AI memang bisa bernilai nyata, tetapi kerangka pemikiran dalam artikel ini tidak realistis

  • Machine learning itu seperti kartu kredit berbunga tinggi bagi utang teknis. Semakin mudah menghasilkan kode, semakin banyak kode yang dibuat, dan biaya pemeliharaan pun meningkat

  • Saya kagum dengan kemampuan LLM dalam menghasilkan kode, tetapi tujuannya adalah mengurangi jumlah kode

  • AI menangani pekerjaan sederhana dan menghasilkan lebih banyak kode, tetapi juga menciptakan bug yang sulit ditemukan. Alat-alat ini memang bisa membuat kita bergerak lebih cepat, tetapi kita perlu beroperasi dengan cara yang berbeda

  • AI dapat membantu memahami dan memodifikasi kode, tetapi menyalin-tempel secara membabi buta bukanlah hal yang baik. Review kode, meminta penjelasan, dan iterasi tetap diperlukan