27 poin oleh GN⁺ 2024-12-07 | 12 komentar | Bagikan ke WhatsApp
  • Ada dua pola utama dalam cara developer memanfaatkan AI
    • Bootstrapper:
      • Menggunakan alat seperti Bolt, v0, dan AI screenshot-to-code untuk dengan cepat membuat prototipe awal.
      • Memanfaatkan AI dengan desain atau konsep sebagai titik awal untuk menghasilkan codebase awal, lalu mengembangkan prototipe yang berfungsi dalam hitungan jam atau hari
    • Iterator:
      • Menggunakan alat seperti Cursor, Cline, Copilot, dan WindSurf dalam pengembangan sehari-hari untuk penyelesaian kode, refactoring kompleks, pembuatan test, dan dokumentasi

Perbedaan Pemanfaatan AI antara Developer Berpengalaman dan Developer Pemula

  • Developer berpengalaman: terus merefactoring kode yang disarankan AI, menangani edge case, memperkuat definisi tipe, dan meninjau keputusan arsitektur
  • Developer pemula: cenderung menerima output AI begitu saja, sehingga berisiko menghasilkan kode seperti 'rumah kartu' yang bisa menimbulkan masalah di lingkungan nyata

Paradoks Alat AI: Paradoks Pengetahuan

  • Developer berpengalaman: mempercepat pekerjaan yang memang sudah mereka pahami melalui AI
  • Developer pemula: mencoba menggunakan AI untuk mempelajari apa yang harus dilakukan
  • Hasil: efektivitas pemanfaatan AI sangat berbeda tergantung tingkat kemahiran

Masalah 70% saat Non-Ahli Menggunakan Alat Coding AI

  • Kemajuan awal: dengan alat AI, 70% dari fitur yang diinginkan dapat diimplementasikan dengan cepat
  • Sisa 30%: saat mencoba memperbaiki bug kecil, masalah baru muncul, dan ketika mencoba menyelesaikannya justru bisa terjebak dalam lingkaran setan yang memunculkan lebih banyak masalah

Strategi untuk Memanfaatkan Alat AI Secara Efektif

  • Pola draf AI: gunakan AI untuk membuat implementasi dasar lalu tinjau dan refactor secara manual
  • Menggunakan AI sebagai alat belajar: pahami kode yang dihasilkan AI melalui percakapan berkelanjutan, pelajari juga konsep dasar pemrograman, dan bangun pengetahuan secara bertahap
  • Menyadari keterbatasan AI: alat AI berguna untuk pengembangan prototipe, bantuan belajar, dan validasi ide, tetapi untuk membangun software yang maintainable dan siap produksi tetap dibutuhkan pengetahuan engineering yang nyata

Munculnya Agentic Software Engineering

  • Sistem agentic: berkembang melampaui sekadar merespons perintah, menjadi sistem yang dapat merencanakan, mengeksekusi, dan mengulang
  • Prospek masa depan: AI tidak menggantikan developer, melainkan bergerak menjadi kolaborator yang semakin proaktif, menghormati arahan dan keahlian manusia sambil mengambil inisiatif untuk memecahkan masalah
  • AI sudah berguna untuk membantu mengimplementasikan pola yang telah diketahui, membuat prototipe ide dengan cepat, dan mengeksplorasi berbagai pendekatan
  • AI mengotomatisasi tugas coding yang berulang dan rutin sehingga developer bisa fokus pada masalah yang lebih menarik

Hal yang Perlu Diperhatikan saat Menggunakan Alat AI

  • Pentingnya pengalaman pengguna: dengan AI, demo bisa dibuat dengan cepat, tetapi jika error message, edge case, dan status UI yang mungkin muncul saat dipakai pengguna nyata tidak ditangani dengan cermat, hal itu dapat menimbulkan ketidaknyamanan bagi pengguna
  • Kebangkitan kembali craftsmanship:
    • AI telah mempercepat pengembangan software, tetapi ada risiko hilangnya seni dalam menciptakan pengalaman dengan kualitas konsumen yang sesungguhnya.
    • Alat AI dapat menangani tugas coding sehari-hari sehingga developer dapat fokus pada detail-detail penting.

Kesimpulan

  • Peran AI:
    • AI bukan sekadar membantu menulis lebih banyak kode dengan lebih cepat, tetapi membantu membangun software yang lebih baik
    • AI tidak secara dramatis meningkatkan kualitas software.
  • Bagian tersulit dari pengembangan software masih tetap membutuhkan penilaian manusia.
  • AI memungkinkan eksplorasi cepat untuk menemukan solusi yang lebih baik, tetapi tidak dapat menggantikan praktik software yang baik.
  • Tanggung jawab manusia: tetap menjadi tugas manusia untuk menggunakan AI dengan bijak, menjaga prinsip-prinsip engineering, dan meningkatkan kualitas software

12 komentar

 
dbs0829 2024-12-10

Memanfaatkan teknologi itu baik, tetapi terlalu banyak orang yang sampai menyerahkan proses berpikirnya juga; saya jadi khawatir, terutama karena hal seperti itu makin sering terlihat saat ikut kegiatan pendidikan dan semacamnya. Jujur, saya sendiri tidak ingin bekerja dengan orang-orang seperti itu.

 
kandk 2024-12-09

Mungkin mirip dengan diskusi bahwa IDE merusak pengembang..

 
savvykang 2024-12-07

Saya lelah memperbaiki kode AI yang dibuat pelanggan
Begitu AI mulai mengambil alih penilaian, rasanya sudah tidak ada jawaban yang tepat

 
iolothebard 2024-12-07

Saat memberi umpan balik kepada AI, hasilnya tampak membaik... lalu pada suatu titik justru rusak. Perlu cara untuk menangkap momen itu. Dan ketika momen itu datang, kita harus memilih apakah akan meninggalkan AI atau memulai lagi dari awal.

 
yadameda 2024-12-07

Terjemahan yang paling natural untuk production-ready apa ya?

Tingkat siap untuk layanan nyata
Tingkat setara produk

 
kandk 2024-12-09

Siap diluncurkan!

 
binaryeast 2024-12-08

Saya biasanya menerjemahkannya sebagai siap dirilis atau siap untuk dirilis.

 
jhj0517 2024-12-08

"Kayaknya bagus kalau "siap dirilis"!"

 
bus710 2024-12-08

“(untuk penggunaan nyata atau untuk pelanggan) siap untuk diterapkan” kurang lebih bagaimana?

 
savvykang 2024-12-07

Bagaimana dengan yang sudah teruji di praktik nyata?

 
soomtong 2024-12-09

Sepertinya untuk validasi di lapangan, ungkapan yang sering dipakai adalah battle tested.

 
GN⁺ 2024-12-07
Opini Hacker News
  • AI, seperti banyak alat di masa lalu, mencoba menggantikan sebagian pemrograman. Namun pekerjaan yang esensial tetap membutuhkan otak manusia

    • AI tidak dapat melakukan pekerjaan esensial seperti mengelola kompleksitas
    • AI bisa diajak berdialog dalam bahasa Inggris sehingga lebih fleksibel dibanding upaya sebelumnya, tetapi tetap memiliki keterbatasan dalam pemecahan masalah yang mendasar
  • AI seperti pengembang junior yang antusias di dalam tim

    • Baik pengembang junior maupun alat AI sama-sama cenderung menghasilkan banyak bug dan menulis kode yang bertele-tele
    • AI tidak bisa belajar dari umpan balik, sehingga kesalahan yang berulang tetap harus ditinjau terus-menerus
  • Dengan alat AI, alat baru bisa dikembangkan dengan cepat

    • Berkat AI, pekerjaan yang biasanya memakan beberapa hari bisa diselesaikan hanya dalam beberapa jam
    • Meski AI mungkin hanya mengerjakan 70% atau 42,5% dari seluruh pekerjaan, itu tetap merupakan peningkatan besar
  • Bagi pengembang junior, AI adalah pedang bermata dua

    • Jika AI digunakan sebagai jalan pintas untuk belajar, proses belajarnya akan terlewati
    • Namun jika AI digunakan sebagai mentor, pembelajaran yang mendalam tetap dimungkinkan
    • Jika AI menggantikan pekerjaan pengembang junior, hal itu bisa menimbulkan masalah perekrutan
  • Pola "percaya, tapi verifikasi" itu penting

    • Jika kode yang ditulis AI bisa dikompilasi dan lolos test case, itu adalah sinyal positif
    • Sebagai contoh, ada proyek yang melakukan binding csscolorparser milik Rust ke Python
  • AI bisa menulis kode dengan cepat, tetapi tidak mempercepat proses belajar

    • Dengan bantuan AI, kita bisa berkembang lebih cepat, tetapi tetap butuh waktu untuk menulis kode yang terstruktur dengan baik
  • Copilot gagal pada tugas yang kompleks

    • AI menunjukkan keterbatasan dalam skalabilitas
    • Di masa depan, teknologi seperti komputasi kuantum mungkin akan dibutuhkan
  • GenAI dapat memberikan hasil yang mendalam untuk solusi dengan kebutuhan yang sudah sangat dikenal

    • Untuk masalah yang kompleks, hasilnya mungkin hanya sekitar 50%
    • Ada yang menggunakan metode membuat daftar tugas yang rinci lalu menyelesaikan setiap tugas secara terpisah
  • Penting untuk memverifikasi pekerjaan AI

    • Kode yang disarankan AI memang dapat dijalankan, tetapi menggunakan library yang memiliki masalah keamanan
    • Walaupun kode AI dapat berjalan, verifikasi tetap diperlukan
  • Sulit untuk benar-benar bertemu orang yang produktivitasnya meningkat drastis karena AI

    • Alat AI memang praktis, tetapi hanya berguna untuk sebagian aspek coding