• การพัฒนาแบบขับเคลื่อนด้วยสเปก (Spec-Driven Development): แนวทางที่ยกระดับ สเปก (Spec) ซึ่งเดิมเป็นเพียงเครื่องมือช่วยในกระบวนการพัฒนาแบบดั้งเดิม ให้กลายเป็น สเปกที่รันได้จริง เพื่อสร้าง การติดตั้งใช้งานที่ทำงานได้จริง จากสเปกโดยตรง
    • เปลี่ยนจากแนวปฏิบัติที่ให้โค้ดเป็นศูนย์กลาง ไปสู่การเน้น การพัฒนาที่ขับเคลื่อนด้วยเจตนา ซึ่งกำหนดก่อนว่า อะไร และ ทำไม แล้วจึงค่อยลงรายละเอียดว่า อย่างไร
    • แนวคิดหลักคือใช้สเปกเพื่อสร้างผลลัพธ์ที่สอดคล้องกัน และ ทำงานซ้ำ ๆ ให้เป็นอัตโนมัติ เพื่อให้นักพัฒนามุ่งเน้นกับปัญหาของผลิตภัณฑ์ได้มากขึ้น
  • Spec Kit คือชุดเครื่องมือที่ช่วยแปลง สเปก ให้เป็น ผลลัพธ์ที่นำไปปฏิบัติได้จริง และช่วยทำให้การติดตั้งใช้งานเป็นอัตโนมัติ
  • หลังติดตั้งแล้ว ใช้ /specify เพื่ออธิบาย อะไร/ทำไม, ใช้ /plan เพื่อประกาศ สแตก/สถาปัตยกรรม, และใช้ /tasks เพื่อสร้าง หน่วยงานงาน
  • เป้าหมายคือช่วยให้องค์กรหลุดพ้นจากการเขียน โค้ดทั่วไปที่ไม่สร้างความแตกต่าง และหันไปโฟกัสที่ สถานการณ์ของผลิตภัณฑ์ มากขึ้น เป็นเฟรมเวิร์กเชิงทดลองที่ต้องการยกระดับทั้งคุณภาพและความเร็วผ่านแนวทางที่ขับเคลื่อนด้วยสเปก

ปรัชญาหลัก: Core philosophy

  • แนวคิดแบบ สเปกมาก่อน ที่ใช้ การพัฒนาที่ขับเคลื่อนด้วยเจตนา โดยให้น้ำหนักกับ อะไร ก่อน และค่อยกำหนด อย่างไร ในภายหลัง
  • เขียน สเปกที่สมบูรณ์ พร้อม ราวกันพลาด และหลักการระดับองค์กร โดยไม่ใช่ การสร้างโค้ดแบบครั้งเดียวจบ แต่เป็นกระบวนการ ขัดเกลาหลายขั้นตอน
  • มุ่งใช้ประโยชน์จาก โมเดล AI ขั้นสูง ที่ พึ่งพาความสามารถในการตีความอย่างจริงจัง เพื่อแปลงสเปกให้เป็นผลลัพธ์ที่นำไปใช้งานได้จริง

กระบวนการขับเคลื่อนด้วยสเปกด้วย Spec Kit

  • Spec Kit ทำให้สเปกเป็นศูนย์กลางของกระบวนการวิศวกรรม โดยขับเคลื่อนการติดตั้งใช้งาน เช็กลิสต์ และการแตกงานย่อย ขณะที่นักพัฒนาทำหน้าที่หลักในการสั่งการ
    • เอเจนต์เขียนโค้ดเป็นผู้รับผิดชอบงานเขียนส่วนใหญ่
  • กระบวนการประกอบด้วย 4 ขั้นตอน โดยแต่ละขั้นมีจุดตรวจสอบที่ชัดเจน และจะไม่ย้ายไปขั้นถัดไปจนกว่างานปัจจุบันจะได้รับการตรวจสอบครบถ้วน
  • ขั้น Specify: เมื่อให้คำอธิบายระดับสูง เอเจนต์เขียนโค้ดจะสร้างสเปกแบบละเอียด ซึ่งเน้นที่เส้นทางของผู้ใช้ ประสบการณ์ และตัวชี้วัดความสำเร็จ มากกว่าสแตกเทคโนโลยี
    • ระบุว่าใครคือผู้ใช้ แก้ปัญหาอะไร มีรูปแบบการโต้ตอบอย่างไร และผลลัพธ์สำคัญคืออะไร
    • สิ่งนี้อยู่ในรูปของ อาร์ติแฟกต์ที่มีชีวิต ซึ่งพัฒนาไปตามการเรียนรู้เกี่ยวกับผู้ใช้
  • ขั้น Plan: เมื่อระบุสแตก สถาปัตยกรรม และข้อจำกัดที่ต้องการ เอเจนต์เขียนโค้ดจะสร้างแผนทางเทคนิคแบบครอบคลุม
    • รวมถึงเทคโนโลยีมาตรฐานของบริษัท การเชื่อมต่อกับระบบเลกาซี การปฏิบัติตามข้อกำหนด และเป้าหมายด้านประสิทธิภาพ
    • สามารถขอแผนได้หลายแบบเพื่อเปรียบเทียบกัน และหากให้เอกสารภายใน ก็สามารถผสานแพตเทิร์นสถาปัตยกรรมได้โดยตรง
  • ขั้น Tasks: จากสเปกและแผน เอเจนต์เขียนโค้ดจะแตกงานออกเป็นชิ้นเล็ก ๆ ที่สามารถตรวจทานได้
    • แต่ละงานสามารถติดตั้งใช้งานและทดสอบได้อย่างอิสระ และออกแบบมาให้ AI ตรวจสอบและติดตามงานได้
    • ตัวอย่างเช่น แทนที่จะเป็น "สร้างระบบยืนยันตัวตน" ก็จะเป็น "สร้างเอนด์พอยต์สมัครผู้ใช้ที่ตรวจสอบรูปแบบอีเมล" ที่เฉพาะเจาะจงกว่า
  • ขั้น Implement: เอเจนต์เขียนโค้ดจะจัดการงานทีละงานหรือแบบขนาน โดยนักพัฒนาจะตรวจทานการเปลี่ยนแปลงที่มีขอบเขตชัดเจน
    • สเปกบอกว่าจะสร้าง อะไร, แผนบอกว่าจะสร้าง อย่างไร, และงานบอกว่าจะลงมือกับ อะไร
  • ในแต่ละขั้น นักพัฒนาจะทำหน้าที่ ตรวจสอบ ด้วยการทบทวนและขัดเกลา ว่าสเปกจับเจตนาได้ถูกต้องหรือไม่ แผนคำนึงถึงข้อจำกัดจริงหรือไม่ และมีส่วนที่ขาดหรือกรณีขอบหรือไม่

วิธีใช้ Spec Kit ในเวิร์กโฟลว์แบบเอเจนต์

  • Spec Kit ทำงานร่วมกับเอเจนต์เขียนโค้ดอย่าง GitHub Copilot, Claude Code, Gemini CLI โดยใช้ชุดคำสั่งสั้น ๆ เพื่อสั่งงานเอเจนต์และสร้างอาร์ติแฟกต์
    • สิ่งนี้ช่วยแปลงพรอมป์ต์ที่คลุมเครือให้กลายเป็นเจตนาที่ชัดเจนและนำไปปฏิบัติได้อย่างน่าเชื่อถือ
  • หลังเริ่มต้นโปรเจ็กต์ หากให้พรอมป์ต์ระดับสูงด้วยคำสั่ง /specify เอเจนต์เขียนโค้ดจะสร้างสเปกทั้งชุด โดยเน้นที่ "อะไร" และ "ทำไม" ของโปรเจ็กต์
  • ด้วยคำสั่ง /plan เมื่อให้ทิศทางทางเทคนิคระดับสูง เอเจนต์เขียนโค้ดจะสร้างแผนแบบละเอียดที่เคารพทั้งสถาปัตยกรรมและข้อจำกัด
  • ด้วยคำสั่ง /tasks จะทำการแตกสเปกและแผนออกเป็นรายการงานที่ลงมือทำได้ และเอเจนต์เขียนโค้ดจะนำสิ่งเหล่านี้ไปใช้เพื่อทำให้ข้อกำหนดของโปรเจ็กต์เกิดขึ้นจริง

ขั้นตอนการพัฒนา: Development phases

  • 0-to-1 (กรีนฟิลด์): รองรับลำดับการทำงานแบบ สร้างสเปก → วางแผน → สร้างแอประดับพร้อมใช้งานจริงในโปรดักชัน จากข้อกำหนดระดับสูง
  • ขั้นสำรวจเชิงสร้างสรรค์: เน้นกระบวนการทดลอง สแตก/สถาปัตยกรรม และ แพตเทิร์น UX ที่หลากหลายผ่าน การติดตั้งใช้งานแบบขนาน
  • ขั้นปรับปรุงแบบค่อยเป็นค่อยไป (บรাউনฟิลด์): การพัฒนาแบบวิวัฒนาการที่ทำซ้ำด้วย การเพิ่มฟีเจอร์, การทำระบบเลกาซีให้ทันสมัย, และ การปรับกระบวนการ

3 สถานการณ์ที่แนวทางนี้ทำงานได้ดี

  • กรีนฟิลด์ (zero-to-one): เมื่อต้องเริ่มโปรเจ็กต์ใหม่ แทนที่จะลงมือเขียนโค้ดทันที จะสร้างสเปกและแผนไว้ก่อนเพื่อให้ AI สร้างสิ่งที่ตั้งใจจริง ๆ และให้ผลลัพธ์ที่ปรับให้เหมาะเฉพาะ แทนโซลูชันทั่วไปตามแพตเทิร์นมาตรฐาน
  • งานฟีเจอร์บนระบบเดิม (N-to-N+1): เมื่อต้องเพิ่มฟีเจอร์ในโค้ดเบสที่ซับซ้อน ใช้สเปกเพื่ออธิบายปฏิสัมพันธ์ของฟีเจอร์ใหม่กับระบบเดิมให้ชัดเจน และใช้แผนเพื่อเข้ารหัสข้อจำกัดด้านสถาปัตยกรรม ทำให้ได้โค้ดที่ดูกลมกลืนเหมือนเป็นส่วนหนึ่งของระบบมาตั้งแต่ต้น
    • สิ่งนี้ทำให้การพัฒนาต่อเนื่องเร็วขึ้นและปลอดภัยขึ้น แต่อาจต้องใช้เทคนิค context engineering ขั้นสูง
  • การทำระบบเลกาซีให้ทันสมัย: เมื่อสร้างระบบเลกาซีขึ้นใหม่ในกรณีที่เจตนาเดิมสูญหายไป กระบวนการของ Spec Kit จะช่วยจับตรรกะทางธุรกิจที่จำเป็นไว้ในสเปกสมัยใหม่ และวางแผนสถาปัตยกรรมใหม่ เพื่อให้ AI สร้างขึ้นใหม่โดยไม่มีหนี้ทางเทคนิค

Prerequisites

  • ต้องใช้ Linux/macOS หรือ WSL2 บน Windows
  • เลือก AI agent จาก Claude Code, GitHub Copilot, Gemini CLI, Cursor

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น