Mengapa Spec-Driven Development gagal pada skala besar dan bagaimana memperbaikinya
(arcturus-labs.com)Postingan ini berargumen bahwa spec-driven development (pengembangan berbasis spesifikasi) menjanjikan untuk pekerjaan coding dengan memanfaatkan agen AI, tetapi gagal ketika diperluas ke skala besar dalam konteks produk global karena ambiguitas spesifikasi bahasa alami. Untuk mengatasinya, penulis mengusulkan sistem "living specifications" yang hierarkis dan evolusioner, yang mengintegrasikan kode dan AI percakapan. Sistem ini membentuk loop umpan balik untuk keputusan produk, mengurangi ketidaksesuaian, dan memungkinkan pengembangan berskala besar yang didukung AI secara efektif.
Alasan utama spec-driven development gagal pada skala besar
Spec-driven development tradisional menimbulkan masalah pada spesifikasi produk global karena alasan berikut:
-
Ambiguitas spesifikasi bahasa alami: Spesifikasi skala besar ditulis dalam bahasa alami sehingga tidak presisi dan ambigu. AI dapat menghasilkan kode secara konsisten berdasarkan spesifikasi, tetapi hasilnya bisa berbeda dari maksud developer. Misalnya, ketika spesifikasi seluruh produk website ditulis dan agen AI membangunnya dalam 2 hari, hasilnya sesuai dengan spesifikasi tetapi melenceng dari niat sebenarnya. Jika untuk mengatasinya kita terus menambahkan bagian rinci tanpa batas demi memperjelas ambiguitas, dokumen akan menjadi terlalu bertele-tele, kehilangan manfaat penulisan spesifikasi, dan pada akhirnya berubah menjadi bahasa formal yang nyaris tak berbeda dari kode.
-
Kurangnya konteks bersama dan pemahaman dunia: AI memiliki pengetahuan luas dari data publik, tetapi tidak memahami praktik khas perusahaan, aturan codebase, dan "cara kerja" internal. Sebaliknya, manusia mengumpulkan hal-hal ini melalui trial and error, review PR, rapat, dan percakapan informal. Satu dokumen konteks saja tidak cukup untuk menangkap semuanya.
-
Inefisiensi dalam menangani klarifikasi: Manusia, berkat konteks bersama, dapat menyelesaikan hanya ambiguitas yang relevan secara efisien (misalnya tidak perlu bertanya untuk bagian yang sudah jelas seperti pemilihan library), sedangkan AI, karena kurang memahami nuansa konteks, sering mengajukan pertanyaan yang tidak perlu atau kemampuan klarifikasinya masih pada tahap awal. Ini membuat AI seperti "intern yang terlalu ambisius" sehingga membutuhkan arahan terus-menerus.
Karena masalah-masalah ini, spec-driven development global tidak realistis tanpa mekanisme tambahan dan belum mampu menyamai kelancaran kolaborasi manusia.
Contoh konkret
- Skenario spec-driven yang ekstrem: Developer menulis spesifikasi seluruh website dan AI menghasilkan produk lengkap dalam 2 hari, tetapi hasilnya berbeda dari maksud awal karena ambiguitas.
- Proses pembelajaran manusia: Developer mempelajari norma perusahaan melalui perubahan kode awal, review PR, rapat, dan percakapan di koridor, sementara AI tidak dapat mengakumulasi pengetahuan implisit seperti ini.
- Codebase yang menua: Dalam workflow tradisional, developer membaca dan mengubah kode tanpa spesifikasi, sehingga codebase berubah menjadi "patchwork quilts" yang tidak selaras, dan keputusan produk yang hilang menjadi "terinjak-injak".
Postingan ini juga merujuk pada postingan sebelumnya (tentang roaming RAG) untuk menyebutkan bahwa AI mahir menavigasi struktur tautan yang hierarkis. Tidak ada studi kasus formal; pembahasannya berpusat pada contoh hipotetis dan penjelasan.
Solusi yang diusulkan
Postingan ini mengusulkan solusi yang saling terhubung dengan fokus pada penanganan ambiguitas, pembangunan konteks, dan integrasi kode:
Mengaktifkan klarifikasi melalui klarifikasi percakapan
- Menerapkan interaksi bolak-balik antara AI dan developer (misalnya pengalaman chat) untuk mengidentifikasi dan memperjelas ambiguitas dalam spesifikasi. Untuk tugas kecil, AI dapat menghasilkan beberapa versi implementasi dari spesifikasi untuk menonjolkan ambiguitas, lalu membandingkan dan mendiskusikannya bersama developer.
Membangun world model agen melalui spesifikasi hierarkis
- Menggunakan spesifikasi global berstruktur hierarkis untuk memahami norma perusahaan dan codebase. Alih-alih satu dokumen raksasa, spesifikasi utama menaut ke dokumen subspesifikasi:
- seperti spesifikasi per file (versi rollup direktori) yang terhubung ketat dengan struktur kode.
- gaya wiki bentuk bebas (tetapi perlu waspada terhadap kompleksitas berlebihan).
- Memanfaatkan kemampuan AI dalam menelusuri tautan (merujuk pada postingan sebelumnya).
Peran kode sebagai spesifikasi tertinggi
- Memperlakukan kode yang sudah ada sebagai spesifikasi tingkat daun yang jelas untuk asumsi tingkat rendah. Alih-alih regenerasi penuh dari spesifikasi master, pendekatannya adalah melakukan perubahan berdasarkan codebase saat ini. Ini mengakui bahwa bahasa alami tidak dapat menjamin output yang sama setiap saat, sehingga menghindari tuntutan presisi yang mustahil.
Living specifications: penggunaan dan evolusi
- Menjadikan spesifikasi sebagai "dokumen hidup" yang berevolusi bersama codebase:
- AI menelusuri spesifikasi global untuk menyelaraskan implementasi, serta menjaga keputusan produk lebih baik dibanding workflow manusia.
- Developer mengekstrak informasi spesifikasi yang relevan lewat percakapan dengan AI (tanpa perlu membaca semuanya); ketidaksesuaian diberi flag saat scoping.
- Saat kode berubah, pembaruan spesifikasi dipicu: perubahan dibandingkan dengan spesifikasi yang ada lalu diedit, dan perubahan spesifikasi disertakan dalam PR.
- Manfaatnya: memudahkan engineer memahami dampak perubahan, meningkatkan partisipasi product manager (mengedit spesifikasi yang mudah dibaca), dan mendukung eksekutif untuk mengkueri evolusi produk. Masalah dokumen tradisional yang tidak diperbarui dapat diotomatisasi oleh AI.
Kesimpulan dan rekomendasi
Masa depan spec-driven development bukan pada penyempurnaan spesifikasi bahasa alami, melainkan pada sistem yang menangani ambiguitas dengan percakapan, konteks hierarkis, dan basis kode. Terobosan sejatinya adalah living specifications yang dipelihara AI, yang membentuk loop umpan balik untuk menjaga keputusan produk, mempertahankan konteks, dan menghapus kesenjangan antara spesifikasi dan implementasi. Rekomendasinya: mengadopsi spesifikasi hierarkis dan evolusioner yang terintegrasi dengan kode dan AI percakapan untuk mewujudkan workflow AI yang skalabel dan melampaui pengembangan manusia tradisional.
1 komentar
Rasanya sangat seperti postingan yang dilempar begitu saja setelah diproses dengan GPT