- 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
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.
Mungkin mirip dengan diskusi bahwa IDE merusak pengembang..
Saya lelah memperbaiki kode AI yang dibuat pelanggan
Begitu AI mulai mengambil alih penilaian, rasanya sudah tidak ada jawaban yang tepat
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.
Terjemahan yang paling natural untuk
production-readyapa ya?Tingkat siap untuk layanan nyata
Tingkat setara produk
Siap diluncurkan!
Saya biasanya menerjemahkannya sebagai
siap dirilisatausiap untuk dirilis."Kayaknya bagus kalau "siap dirilis"!"
“(untuk penggunaan nyata atau untuk pelanggan) siap untuk diterapkan” kurang lebih bagaimana?
Bagaimana dengan yang sudah teruji di praktik nyata?
Sepertinya untuk validasi di lapangan, ungkapan yang sering dipakai adalah battle tested.
Opini Hacker News
AI, seperti banyak alat di masa lalu, mencoba menggantikan sebagian pemrograman. Namun pekerjaan yang esensial tetap membutuhkan otak manusia
AI seperti pengembang junior yang antusias di dalam tim
Dengan alat AI, alat baru bisa dikembangkan dengan cepat
Bagi pengembang junior, AI adalah pedang bermata dua
Pola "percaya, tapi verifikasi" itu penting
csscolorparsermilik Rust ke PythonAI bisa menulis kode dengan cepat, tetapi tidak mempercepat proses belajar
Copilot gagal pada tugas yang kompleks
GenAI dapat memberikan hasil yang mendalam untuk solusi dengan kebutuhan yang sudah sangat dikenal
Penting untuk memverifikasi pekerjaan AI
Sulit untuk benar-benar bertemu orang yang produktivitasnya meningkat drastis karena AI