บทเรียนจากไลบรารี no-code: การพัฒนาแบบขับเคลื่อนด้วยสเปกไม่ใช่สมการเส้นตรง แต่เป็นสามเหลี่ยม
(dbreunig.com)ในยุคของ AI coding agent การมอง การพัฒนาแบบขับเคลื่อนด้วยสเปก (Spec-Driven Development) เป็นเพียงสมการเส้นตรงว่า “สเปก → โค้ด” คือมุมมองที่ผิด
ข้อโต้แย้งหลัก
การพัฒนาแบบขับเคลื่อนด้วยสเปกไม่ใช่ สมการคงที่ แต่เป็นสามเหลี่ยมแบบพลวัต
วงจรป้อนกลับที่ทั้งสามแกนส่งอิทธิพลต่อกันอย่างต่อเนื่อง:
- สเปก (Spec)
- โค้ด (Code)
- การทดสอบ (Tests)
ทั้งสามองค์ประกอบนี้ต้องซิงก์กันจึงจะทำงานได้อย่างถูกต้อง
กรณีศึกษาและการทดลองสำคัญ
- ไลบรารีแบบไม่มีโค้ด whenwords ที่สร้างโดย Drew Breunig
→ วางไว้เพียงสเปก (Markdown) + การทดสอบ 750 รายการ (YAML) โดยไม่มีโค้ด แล้วให้ AI agent สร้างโค้ดขึ้นมา
→ ได้รับความสนใจจาก Andrej Karpathy + มีดาวบน GitHub มากกว่า 1k + มีผู้ร่วมพัฒนาอย่างคึกคัก
แต่ปัญหาที่เกิดซ้ำในงานทดลองลักษณะนี้คือ:
- การพัฒนาทำได้เร็ว แต่พอความซับซ้อนเพิ่มขึ้นเพียงเล็กน้อย แก้ส่วนหนึ่งแล้วอีกส่วนก็พัง
- สุดท้ายแล้วโปรเจกต์ส่วนใหญ่ก็ถูกปล่อยค้างไว้ไม่เสร็จสมบูรณ์
- ต่อให้สเปกดีแค่ไหน ก็ยังมีการถกเถียงเรื่องวิธีลงมือทำอยู่ต่อเนื่อง
ทำไมจึงเป็นสามเหลี่ยม?
เมื่อสร้างโค้ดไปเรื่อย ๆ → พบความกำกวม/ข้อผิดพลาดในสเปก → แก้สเปก → ต้องมีการทดสอบใหม่ → แก้โค้ดอีกครั้ง → …
→ เพราะนี่คือ ลูป ที่วนซ้ำอย่างต่อเนื่อง
แนวทางแก้ที่เสนอ: เครื่องมือ Plumb
CLI tool Plumb ที่ Drew สร้างขึ้น
- ทุกครั้งที่ Git commit จะวิเคราะห์ทั้งบันทึกบทสนทนากับ agent + การเปลี่ยนแปลงของโค้ด
- agent ดึงการตัดสินใจโดยนัยที่เกิดขึ้นออกมา → ให้นักพัฒนาอนุมัติ
- การตัดสินใจที่อนุมัติแล้ว → อัปเดตสเปกอัตโนมัติ
- มีรายงานช่องว่างของความครอบคลุมระหว่างสเปก/การทดสอบ
→ ด้วย “โหมด commit failure” จึงบังคับให้การตัดสินใจสำคัญต้องผ่านการทบทวนโดยมนุษย์เสมอ
บริบททางประวัติศาสตร์
ตอนนี้เรากำลังเผชิญ ‘วิกฤตซอฟต์แวร์’ แบบยุคทศวรรษ 1960 อีกครั้ง
ในเวลานั้น โค้ดมีขนาดใหญ่เกินกว่าจะเก็บไว้ในหัวได้ → จึงเกิด Waterfall, Agile และ CI/CD
ตอนนี้กลับกลายเป็นว่า แม้แต่อ่านโค้ดก็ยังทำไม่ได้ → จึงต้องการกระบวนการแบบใหม่
→ มีข้อเสนอว่าเครื่องมืออย่าง Plumb กำลังชี้ทิศทางนั้น
สรุปหนึ่งบรรทัด
แม้จะเป็นยุคที่ AI สร้างโค้ดได้รวดเร็วมหาศาล
แต่สิ่งที่ยากจริง ๆ คือการ ทำให้สามเหลี่ยม สเปก-โค้ด-การทดสอบ ซิงก์กันอยู่ตลอดเวลา
ยังไม่มีความคิดเห็น