- Sebuah eksperimen selama 2 minggu untuk membuat aplikasi hanya dengan workflow pengembangan berbantuan AI dilakukan, tetapi hasilnya tidak sememuaskan yang diharapkan
- Menggunakan stack berbasis Claude Code dan Remix, proses definisi isu → implementasi oleh AI → code review → deployment diulang terus-menerus
- Namun, rasa frustrasi makin besar karena kekurangan konteks, duplikasi kode yang tidak bisa digunakan ulang, alur yang terputus, halusinasi (hallucination), dan masalah hukum Pareto
- Pada akhirnya, setelah 2 minggu, pendekatan pengembangan yang berpusat pada AI ditinggalkan dan kembali ke cara lama, lalu merasa lebih puas setelah merapikan kode dan meningkatkan kualitasnya
- Saat ini AI hanya digunakan untuk keperluan terbatas seperti pencarian, rubber ducking, code snippet, pengujian, dan penyuntingan bahasa, dan belum ada rencana memperluas pemakaiannya sampai ada perubahan teknologi yang mendasar
Gambaran eksperimen
- Dilakukan eksperimen pengembangan aplikasi selama 2 minggu dengan langsung menerapkan workflow pengembangan berbasis LLM (large language model) yang belakangan banyak mendapat perhatian
- Berdasarkan pengalaman UI yang kompleks pada akun Facebook Ads, pengembangan prototipe adbrew, alat manajemen iklan yang disederhanakan dan hanya memanfaatkan Facebook Ads API, pun dimulai
- Eksperimen ini dijalankan dengan tujuan memverifikasi potensi AI sekaligus ekspektasi bahwa ia bisa membantu menyelesaikan masalah nyata
Pendekatan
- Mengikuti berbagai akun terkait AI dan meneliti workflow, lalu memilih stack teknologi Remix/React Router v7
- Setelah berlangganan Claude Code, waktu diinvestasikan untuk menyiapkan lingkungan awal seperti prompt, pengaturan alat DX, dan definisi isu
- Rutinitas harian
- Mendefinisikan isu
- Meminta AI melakukan implementasi
- Menyesuaikan kebutuhan bersama AI
- Meninjau detail kode yang dihasilkan
- Commit/deploy kode
- Mengulangi proses
- Secara berkala memperbaiki panduan dan file pemeriksaan otomatis
- Upaya untuk terus menyelaraskan alur pengembangan dengan AI dilakukan secara berkelanjutan
Masalah yang sering muncul
- Konteks selalu kurang
- Bahkan ketika banyak konteks sudah diberikan, AI tidak meminta umpan balik yang dibutuhkan
- AI melanjutkan pekerjaan dengan asumsi sepihak, yang pada akhirnya sering menghasilkan implementasi yang salah
- Kode tidak bisa digunakan ulang maupun dipelihara
- Lemah dalam menghasilkan abstraksi dan kode yang reusable
- Terus membuat komponen yang sudah ada, sehingga beban review meningkat
- Dampak penerapan guideline pun minim
- Alur kerja terputus
- Saat AI bekerja, perlu pemantauan terus-menerus
- Sulit mendapatkan waktu fokus yang efisien untuk tiap isu, sehingga produktivitas menurun
- Fenomena halusinasi (Hallucination)
- Dikombinasikan dengan Facebook API yang kompleks, dokumentasi yang kurang, dan SDK yang salah ketik, kepercayaan diri AI yang keliru makin menambah kebingungan
- AI berulang kali menghasilkan informasi yang salah tentang berbagai framework dan library
- Fenomena Pareto makin parah
- AI dapat menyelesaikan 80% pekerjaan dengan cepat, tetapi 80% usaha justru habis untuk menuntaskan dan memperbaiki 20% sisanya
- Banyak cacat dan bug utama muncul pada penanganan pengecualian, interaksi antarfungsi, dan sebagainya
Hasil dan refleksi
- Setelah 2 minggu, kode makin berantakan dan tidak bisa dikendalikan
- Karena hilangnya kesenangan dalam proses pengembangan serta masalah kualitas, akhirnya kembali ke workflow lama
- Saat kembali merapikan kode secara manual, ditemukan banyak hal yang terlewat dalam review AI, dan hasilnya fondasi kode yang lebih baik pun didapat
Cara memanfaatkan AI saat ini
- Mesin pencari yang kuat: efisien untuk menelusuri informasi kompleks dan memberi jawaban yang sesuai konteks, serta bisa cepat kembali ke cara lama jika gagal
- Rubber duck (brainstorming ide): sangat efektif untuk memberi alternatif, memperluas eksplorasi, dan memperkuat pencarian kata kunci terkait
- Asisten code snippet: mengurangi kelelahan pengembangan dengan mengotomatisasi pembuatan fungsi utilitas yang berulang
- Pendamping kode pengujian: AI digunakan untuk menemukan skenario baru terkait pengujian
- Pekerjaan terkait bahasa: berguna untuk mengedit teks seperti commit message, isu, dan PR
- Belakangan bahkan muncul pembalikan pola: alih-alih AI yang menulis, pengembang menulis lalu AI yang mereview
Kesimpulan dan prospek
- AI akan tetap digunakan untuk membantu pekerjaan sehari-hari, tetapi untuk mendelegasikan seluruh proses pengembangan, sikapnya saat ini masih negatif
- Sedang berupaya memprioritaskan penggunaan LLM lokal dan mempertahankan kontrol atas data
- Tetap memperhatikan kemungkinan perubahan teknologi di masa depan, tetapi untuk saat ini berencana menjaga cakupan penggunaan AI tetap terbatas
2 komentar
Ini kekurangan yang sangat sering saya rasakan saat mengerjakan tugas yang kompleks.
Hilangnya kesenangan + kode jadi berantakan..
Sering kali rasanya memang tidak cocok digunakan selain untuk refactoring kode + mencari ide.
Opini Hacker News
Baru-baru ini saya menghabiskan lebih dari satu jam mencoba meminta ChatGPT memberi perintah
rsyncyang sangat sederhana, tetapi ia terus memberikan parameter perintah yang tidak berfungsi pada versirsyncdi Mac yang saya miliki. Sekitar setengah dari kegagalan itu berujung pada troubleshooting yang tidak masuk akal, dan sisanya adalah jawaban versi yang salah sambil mengklaim sudah “menyadari” kesalahannya. Saya sudah menyuruhnya memverifikasi parameter sesuai versi yang saya punya, tetapi jelas tidak mampu melakukannya. Padahal kalau saya kerjakan sendiri, ini selesai dalam 5 menit, tetapi saya malah terus melihat teknologi menakjubkan ini membuang-buang waktu saya. Saya bukan developer profesional, tetapi jadi penasaran apakah pengalaman seperti ini juga umum di kalangan developer. Mungkin kalau menulis kode untuk versi software yang sesuai dengan set pelatihan utama LLM, masalah seperti ini tidak terjadi. Saya juga penasaran apakah ada cara menghindarinya lewat prompt. Untuk saat ini, saya sulit melihat LLM benar-benar menghemat waktu dalam pekerjaan coding; justru menurut saya sifatnya yang aneh membuat lebih banyak waktu terbuang.Bahkan ketika saya meminta LLM memverifikasi parameter yang cocok dengan versi saya, ia tetap tidak melakukannya dengan baik. Saya penasaran dengan pendapat para ahli AI soal ini. Saya juga sering mengalami hal seperti ini. Pada akhirnya, LLM memang tidak benar-benar memahami apa yang saya katakan. Secara matematis pun ada penjelasannya. Namun di saat yang sama, sepertinya teknologi seperti transformer atau trik tambahan tertentu memang dipakai untuk tugas-tugas yang tidak sememalukan seperti menghitung huruf. Mungkin ada sesuatu yang saya lewatkan.
Pengalaman seperti ini juga sangat umum di kalangan developer. Mungkin ada yang bilang, “Saya tidak pernah mengalaminya,” tetapi itu hanya pengecualian yang sangat kecil, dan kebanyakan orang mengeluhkan hal yang serupa. Anda juga bertanya apakah prompt bisa menghindari masalah seperti ini; kalau isinya tidak ada di data pelatihan, itu tidak ada gunanya sama sekali. Dalam banyak bahasa, LLM benar-benar buruk. Untuk alat CLI, meskipun Anda memberi tahu LLM bahwa itu macOS atau versi BSD, sering kali ia tetap memberikan flag GNU. Terutama di macOS, baru-baru ini ada perubahan pada
rsync, jadi informasi online juga masih sedikit. Lihat tautan ini: tulisan tentang penggantian rsync, dan anggapan bahwa LLM akan menghemat waktu dalam coding itu sendiri adalah skenario terbaik. Bahkan sering juga ada kasus orang terlalu percaya pada kode dari LLM lalu commit, sehingga muncul bug atau celah keamanan. Referensi: blog ai-coding-slowdown dan paper arxivSaya tidak yakin soal apakah prompt bisa menghindari masalah ini, tetapi di Claude Code Anda bisa menjalankan perintah secara langsung. Artinya, alih-alih membiarkan LLM mengarang, tambahkan keluaran nyata dari perintah seperti
! man rsyncatau! rsync --helpke dalam konteks.Saya mempertanyakan kenapa orang tetap memakai LLM ketika hanya ingin mencari manual untuk alat tertentu.
Soal menghabiskan lebih dari satu jam demi mendapatkan perintah
rsyncsederhana dari ChatGPT: cobalah beberapa kali sambil menambahkan informasi lingkungan dan pesan error yang cukup, lalu kalau masih gagal, coba model lain seperti Claude atau Gemini. Jika setelah jumlah percobaan yang Anda tentukan sendiri tetap tidak terpecahkan, berarti sulit mendapatkan bantuan dari LLM, jadi berhentilah dan cari informasi dengan cara lama seperti manual atau forum karena itu jauh lebih cepat. Biasanya mencoba selama 10–20 menit lalu pindah itu adalah patokan yang realistis. Ada masalah yang memang tidak bisa diselesaikan LLM, berapa lama pun dicoba; ia hanya akan berputar-putar.Saya juga sering mengalami hal seperti ini. AI benar-benar membantu saat saya memintanya mengerjakan sesuatu yang sebenarnya sudah bisa saya lakukan sendiri. Jika saya bisa menjelaskan masalah dengan cukup akurat sehingga LLM bisa memahaminya, ia dapat memberi hasil yang lumayan, dan saya bisa langsung mengecek apakah kode keluarannya memang yang saya inginkan. Kalau saya menyerahkan sesuatu yang sama sekali tidak saya pahami, justru jadi lebih rumit.
Menurut saya tulisan ini (selain judulnya) punya sudut pandang yang cukup seimbang. “Serahkan semuanya ke LLM!” itu penuh masalah, sementara “menyerahkan sebagian kode repetitif untuk menghemat waktu atau sebagian kode test itu cukup oke; hanya saja judul biasa seperti ‘kadang AI berhasil, kadang tidak’ jelas tidak akan mendatangkan klik.
AI lebih terasa seperti intern daripada kontraktor.
Saya sangat setuju dengan pernyataan bahwa “informasi konteks tidak pernah cukup.” Sebanyak apa pun konteks yang kita masukkan, AI kebanyakan tetap menebak-nebak sendiri tanpa meminta klarifikasi, lalu gagal. Saya jadi teringat adegan di sebuah acara TV ketika seseorang membuat permohonan kepada jin, lalu harus bicara seperti pengacara sambil memeriksa semua syarat dengan teliti. Berbicara dengan LLM terasa mirip seperti itu.
AI itu seperti rekan kerja yang sangat pintar tetapi tidak pernah mau mengungkapkan isi kepalanya. Rasanya seperti ia seharusnya bisa melakukan apa saja, tetapi sama sekali tidak cocok untuk kerja tim, dan percakapan seperti “Saya tidak paham apa yang Anda inginkan di sini, bisa jelaskan sedikit lagi?” tidak pernah keluar dari AI.
(Saya rasa saya tahu adegan TV yang tadi dimaksud.) Di adegan itu pada akhirnya semuanya terselesaikan dengan baik, tetapi saya rasa LLM sama sekali tidak merasa perlu menepati “janji”-nya. Malah sang jin lebih mirip AI ala fiksi ilmiah klasik yang terikat kuat pada aturan dan regulasi. LLM sama sekali berbeda.
Saya kurang suka
vibe coding, yaitu lebih banyak berkomunikasi dengan AI daripada benar-benar coding. Sebaliknya, perubahan terbesar yang saya lakukan adalah menyusun proses pengembangan lebih terstruktur sejak lebih awal. Pertama saya menulis file spesifikasi, lalu meminta LLM memecah hal-hal yang perlu dijelaskan dengan jelas berdasarkan codebase dan informasi online, serta membaginya menjadi checklist langkah implementasi. Setelah tiap langkah selesai, baru lanjut ke sesi berikutnya untuk menyempurnakan hasilnya. Kalau percakapan dengan AI mulai melelahkan, saya atau anggota tim bisa langsung mengimplementasikannya sesuai spesifikasi, jadi pemakaiannya cukup fleksibel.Dalam proyek terbaru, saya mulai mengadopsi AI coding. Saya tidak tahu persis apa itu
vibe coding, tetapi pendekatan yang saya pilih adalah interaksi berulang yang santai. Saya memakai Gemini AI studio dan sangat puas dengan hasilnya, sampai-sampai seluruh prosesnya saya dokumentasikan dan rilis sebagai proyek open source. Ini memberi dorongan produktivitas yang nyata bagi saya. Satu hal yang agak mengganggu adalah AI berbicara terlalu sopan. Menurut saya, ROI tertinggi muncul ketika hasil yang saya inginkan sudah jelas dan selama prosesnya saya perlu membandingkan beberapa opsi. Saya memakainya untuk semua artefak proyek (kode inti, test case, build script, dokumentasi, sample app, utility). Seluruh transkrip percakapan pengembangan bisa dilihat di sini, dan sumber proyeknya ada di sini.Saya memakai AI dengan cara yang mirip. Mengharapkan abstraksi revolusioner dari AI itu terlalu berlebihan. Ia bekerja baik di jalur yang sangat biasa, yang sudah dilalui ribuan developer sebelumnya. Dalam hal itu, ia mirip search engine yang sangat kuat.
Cara yang saya sukai adalah meminta LLM memberi solusi awal atau contoh kode secara singkat, lalu setelah itu saya lanjutkan sendiri tanpa terus-menerus memoles prompt. Di tahap akhir, kalau perlu, saya meminta LLM meninjau kode saya. Keuntungan terbesarnya adalah bisa melewati loop penyempurnaan prompt. Loop ini benar-benar membosankan, menyita banyak waktu, dan dalam jangka panjang justru bisa menurunkan efisiensi kerja.
Sangat menjengkelkan bahwa AI terus berjalan sendiri tanpa umpan balik atau pertanyaan yang jelas.
Ada pendapat tim bahwa “untuk kondisi saat ini kami memakai AI hanya sampai titik itu, dan kalau nanti teknologinya berubah secara mendasar, kami akan melihat lagi situasinya.” Saya penasaran apakah LLM bisa melakukan lebih dari itu. Bahkan sekarang pun, kalau digunakan dengan benar, menurut saya sudah sangat berguna.
Menggunakan AI untuk meningkatkan Facebook Ads itu seperti para breakers di seri Dark Tower.