Apakah Pembangunan Berasaskan Spesifikasi?

Kebanyakan pengekodan AI bermula dengan cara yang sama. Anda memberikan ejen satu prom yang ringkas. Anda melihatnya menulis kod. Ia kelihatan pantas. Kemudian anda menyedari ejen tersebut membina sesuatu yang salah. Anda menghabiskan masa sejam untuk membetulkannya.

Ejen tersebut tidak bergelut untuk menulis kod. Ia bergelut untuk memahami niat anda.

Pembangunan berasaskan spesifikasi (spec-driven development) menyelesaikan masalah ini. Daripada meminta kod melalui prom, anda mencipta spesifikasi terlebih dahulu. Spesifikasi ini adalah satu pelan bertulis. Anda membetulkan pelan tersebut sehingga ia betul. Hanya selepas itu anda membenarkan ejen tersebut membina.

Alatan baharu seperti AWS Kiro dan GitHub spec-kit memudahkan perkara ini. Namun, idea ini sudah lama. Ia hanyalah kejuruteraan yang baik.

Spesifikasi yang baik mempunyai tiga bahagian:

• Keperluan (Requirements): Apa yang dilakukan oleh ciri tersebut dan cara untuk mengukur kejayaan. Ini menerangkan tingkah laku, bukan kod. • Reka Bentuk (Design): Pelan teknikal. Ini termasuk seni bina, model data, dan kekangan. • Tugasan (Tasks): Unit kecil yang boleh diuji. Ini cukup ringkas untuk diselesaikan oleh ejen dalam satu percubaan.

Setiap bahagian menyumbang kepada bahagian seterusnya. Keperluan memandu reka bentuk. Reka bentuk mencipta tugasan. Tugasan memandu ejen.

Dahulu, menulis kod adalah perlahan. Menulis spesifikasi terasa seperti membuang masa. Sekarang, AI menulis kod dalam beberapa minit. Kekangan bukan lagi pada menaip. Kekangan adalah pada menentukan dengan tepat apa yang perlu dibina.

Spesifikasi memindahkan kesilapan anda ke tempat yang murah. Ayat yang salah dalam dokumen mudah untuk dibetulkan. Pelaksanaan yang salah dalam kod sumber (codebase) adalah mahal untuk diubah semula.

Menyemak kod adalah sukar. Anda perlu melakukan kejuruteraan berbalik (reverse-engineer) terhadap apa yang dimaksudkan oleh penulis. Menyemak spesifikasi adalah mudah. Anda bersetuju dengan niat tersebut sebelum sebarang kod wujud.

Kaedah ini juga membantu anda menskala (scale). Anda boleh memberikan tugasan yang berbeza kepada ejen yang berbeza. Spesifikasi bertindak sebagai kontrak untuk memastikan mereka selaras.

Pendekatan ini tidak selalunya menjadi jawapan.

  • Ia berlebihan untuk pembetulan kecil. Jangan tulis spesifikasi untuk perubahan satu baris kod.
  • Spesifikasi boleh menjadi lapuk. Jika kod berubah tetapi spesifikasi tidak, spesifikasi tersebut menjadi tidak benar.
  • Ejen tidak sentiasa patuh. Spesifikasi mengurangkan kekeliruan, tetapi anda masih perlu menyemak hasil output.

Gunakan spesifikasi untuk menjelaskan niat anda. Gunakannya untuk menangkap kesilapan semasa ia masih sekadar perkataan.

Sumber: https://dev.to/jcamarate/what-is-spec-driven-development-with-ai-coding-agents-56mc

Komuniti pembelajaran pilihan: https://t.me/GyaanSetuAi