Delivery Team ต้องทำอะไร ในวันที่ AI สร้าง Product ได้

Delivery Team ต้องทำอะไร ในวันที่ AI สร้าง Product ได้

Delivery Team ต้องทำอะไร ในวันที่ AI Agent สร้าง Product ได้แล้ววันนี้

บทความนี้อธิบาย workflow ที่ทีม Product Delivery ทำงานร่วมกันกับ AI agent เพื่อเตรียม AI-Spec ให้สมบูรณ์ก่อนเริ่ม implement โดยทุก Role รู้หน้าที่ของตัวเองชัดเจนในแต่ละ Phase


AI-Spec คืออะไร

AI-Spec คือชุดไฟล์ที่ทำให้ AI Agent สามารถ implement feature ได้โดยไม่ต้องถาม Human เพิ่ม ประกอบด้วย:

[feature-name]/
├── PLAN.md                        ← สัญญาว่า Feature นี้ทำอะไร + implementation detail
├── CHECKLIST.md                   ← Tasks + Subtasks ที่ tick ได้ทีละขั้น
├── HANDOFF.md                     ← context สำหรับ session ถัดไปเมื่อ AI session เต็ม
└── tests/
    ├── feature-test-scenarios.md  ← E2E / acceptance test ระดับ Feature
    ├── story-N.N-[name].md        ← acceptance criteria ระดับ Story
    └── task-N.N-[type]-[name].md  ← test spec ระดับ Task

AI-Spec สมบูรณ์ = ทุกไฟล์พร้อมก่อนเริ่ม implement — ไม่มีงานค้างให้ Human เตรียมกลางทาง


โครงสร้าง SDLC ที่ใช้

บทความนี้ใช้โครงสร้าง Agile SDLC เป็น foundation — โดย Feature คือ unit ที่เล็กที่สุดที่ deliver business value ได้ครบในตัวเอง ซึ่งเป็นหลักการเดียวกับ User Story Mapping และ Vertical Slicing ใน Agile methodology

System (Project)
└── Epic (Module)
    └── Feature ⭐         ← unit ที่เล็กที่สุดที่ deliver business value ได้ครบในตัวเอง
        └── Story           ← ความสามารถ 1 อย่างภายใน Feature
            └── Task        ← งานระดับ Dev ที่จับต้องได้ [API]/[FE]/[FE-BL]/[Config]/[CHORE]
                └── Subtask ← implementation steps (AI generate)

6 Phases: Human × AI

Phase 1: Define

ใครทำ: PM/PO เป็นหลัก + Tech Lead และ QA รับรู้ตั้งแต่แรก

สิ่งที่ต้องทำ:

  • PM/PO เปิดไฟล์ plan/todos/[feature-name]/PLAN.md ใหม่
  • เขียน 3 ส่วนแรกให้ครบ:
## Goal
[User ได้อะไรจาก Feature นี้ — 2 บรรทัด ภาษา business]

## Scope (ทำ)
| Capability | Story |
|---|---|
| [สิ่งที่ User เห็นและใช้ได้] | TBD |

## Out of Scope (ไม่ทำ)
- [สิ่งที่ defer] → ทำใน `[feature-name]`
- [สิ่งที่ตัดออก] (เหตุผลสั้นๆ)

Tech Lead เพิ่ม Technical Constraint ใน Out of Scope คือสิ่งที่ดูเหมือนทำได้ใน Feature นี้ แต่จริงๆ ต้องรอ infra / dependency / architecture decision

## Out of Scope (ไม่ทำ) — ตัวอย่าง Technical Constraint ที่ Tech Lead เพิ่ม

- Real-time update (WebSocket) → ทำใน `articles-realtime`
  (ต้องเพิ่ม infra ใหม่ ไม่ใช่แค่ code)

- Image optimization pipeline → ทำใน `media-service`
  (ต้องรอ CDN config พร้อมก่อน)

- Server-side caching → ทำใน `performance-phase2`
  (ยังไม่มี Redis instance ใน environment)

- Full-text search → ทำใน `search-feature`
  (DB schema ปัจจุบันยังไม่ support)

Output: PLAN.md shell พร้อมส่งต่อ

Roleหน้าที่
PM / PO ✍️เขียน Goal + Scope + Out of Scope
Tech Lead 👀เพิ่ม technical constraint ใน Out of Scope
QA 👀อ่าน Goal + Scope เพื่อเริ่มคิด acceptance scenario

Phase 2: Expand

ใครทำ: Dev ที่ได้รับ Assignment เป็นคนหลัก + AI Assistant (Chat) ช่วย draft

สิ่งที่ต้องทำ:

  • Dev prompt AI Assistant (Chat) ให้ขยาย PLAN.md shell ให้สมบูรณ์
  • AI Assistant เติม: Current State → Stories → Tasks + implementation detail (= subtasks)
  • Dev review และแก้ให้ตรงกับ implementation ที่ตัวเองจะทำจริง

ทำไม Dev ต้องเป็นคนทำ Phase นี้: Dev ที่ implement เองคือคนที่รู้ implementation detail ดีที่สุด ถ้า Tech Lead เขียนแทน Dev ต้องมาแก้ใหม่ = waste รอบ review โดยไม่จำเป็น

Output: PLAN.md สมบูรณ์พร้อม Stories + Tasks + implementation detail ทุกตัว

Roleหน้าที่
Dev ✍️ 🤝 AI Assistantprompt AI Assistant expand + review implementation detail
Tech Lead 👀review architecture + ตรวจว่า scope ไม่บาน
PM / PO 👀review Scope table — ถูก business intent ไหม
QA 👀review Stories — ครอบคลุม scenario ที่จะ test ไหม

Phase 3: Test Spec

ใครทำ: QA + AI Assistant (Chat) เขียน Story + Feature test / Dev + AI Assistant (Chat) gen Task test

สิ่งที่ต้องทำ:

QA 🤝 AI Assistant gen:
├── tests/feature-test-scenarios.md   ← E2E / business flow ทั้งหมด
└── tests/story-N.N-[name].md         ← acceptance criteria ทุก Story

Dev 🤝 AI Assistant gen:
└── tests/task-N.N-[type]-[name].md   ← test spec ทุก Task ตาม type

QA + AI Assistant ทำงานร่วมกันอย่างไร: AI Assistant ช่วย draft structure + happy path จาก Scope ใน PLAN.md QA review และเติม edge cases จาก domain knowledge + ประสบการณ์ทดสอบจริง ที่ AI ไม่มีทางรู้ได้

AI Assistant ช่วยได้:
├── สร้าง structure ของ test spec
├── เขียน happy path scenarios จาก Scope ใน PLAN.md
└── เขียน common edge cases ทั่วไป

QA เติมเอง:
├── edge cases จาก business domain
├── scenario จากประสบการณ์ทดสอบจริง
└── acceptance criteria ที่ negotiate กับ PM/PO แล้ว

Task Type และ Test ที่ประกบ:

Task TypeTest
[API]Unit Test ทุก Layer (service, controller, repository)
[FE-BL]Unit Test Frontend BL
[FE]Manual Test — render + layout ใน browser
[FE-IT]E2E flow ครบ end-to-end
[Config]pnpm check + ตรวจ env vars
[CHORE]ตรวจ path ถูกต้อง + build ผ่าน

Output: tests/ folder ครบทุกไฟล์

Roleหน้าที่
QA ✍️ 🤝 AI Assistantprompt AI Assistant draft story test + feature test → review + เติม domain edge cases
Dev ✍️ 🤝 AI Assistantprompt AI Assistant gen task test spec
Tech Lead 👀review task test spec — technical correctness
Dev 👀review task test spec — เพิ่ม edge cases
QA 👀review task test spec — ให้ตรง acceptance scenario

Phase 4: Checklist

ใครทำ: Dev + AI Assistant (Chat) gen / ทุก Role review

สิ่งที่ต้องทำ:

  • Dev prompt AI Assistant (Chat) gen CHECKLIST.md จาก PLAN.md ที่สมบูรณ์แล้ว
  • AI Assistant แปลง implementation detail (bullets) → checkboxes พร้อม test links

ทำไม Checklist ต้องมาหลัง Test Spec: ชื่อ test file ทุกตัว derive ได้จาก PLAN.md โดยตรง — CHECKLIST.md แค่ link ไปหา test ที่มีอยู่แล้ว ถ้าสร้าง CHECKLIST ก่อน test files จะมี broken links

Output: CHECKLIST.md พร้อม Tasks + Subtasks + test links + Scope Coverage Check

Roleหน้าที่
Dev ✍️ 🤝 AI Assistantprompt AI Assistant gen CHECKLIST.md
Dev 👀review Subtasks — realistic + actionable ไหม
Tech Lead 👀review overall structure
QA 👀ตรวจว่า Story test link ครบทุก Story

Phase 5: Register

ใครทำ: Dev + AI Assistant (Chat) gen HANDOFF / PM/PO อัป Kanban

สิ่งที่ต้องทำ:

  • Dev prompt AI Assistant (Chat) gen HANDOFF.md empty state
  • PM/PO ย้าย feature folder และอัป KANBAN.md

HANDOFF.md empty state:

# [feature-name] — Handoff
> Last updated: YYYY-MM-DD

## Current Task
<!-- AI เติมตอน session เต็มกลางคัน -->

## Completed Subtasks
<!-- AI เติม -->

## Next Step
<!-- AI เติม -->

## Context & Decisions
<!-- AI เติม -->

Output: Feature ปรากฏบน Kanban + ทุกไฟล์พร้อม execute

plan/
├── KANBAN.md                     ← updated
└── doing/[feature-name]/
    ├── PLAN.md                   ✅
    ├── CHECKLIST.md              ✅
    ├── HANDOFF.md                ✅ (empty state)
    └── tests/                    ✅ (ครบทุกไฟล์)
Roleหน้าที่
Dev ✍️ 🤝 AI Assistantprompt AI Assistant gen HANDOFF.md empty state
PM / PO ✍️ย้าย feature → doing/ หรือ pending/ + อัป KANBAN.md

Phase 6: Execute

ใครทำ: Dev + AI Coding Agent implement / QA test / Tech Lead review

สิ่งที่ต้องทำ:

  • Dev เปิด PLAN.md + CHECKLIST.md ใน AI Coding Agent (Cursor / Copilot Workspace)
  • AI Coding Agent implement subtask ทีละ step และ tick checkbox
  • AI Coding Agent เขียน HANDOFF.md เมื่อ session เต็มกลางคัน Task
  • Dev review code + run task test ตาม Task Type
  • QA run story test ก่อน commit + feature test ก่อน merge

Execution flow:

Task เสร็จ → Task test ผ่าน → commit

ทุก Task ใน Story เสร็จ → Story test ผ่าน → commit

ทุก Story เสร็จ → Feature test ผ่าน → commit → merge

ทำไมต้อง commit ทุก Task: ถ้ามีปัญหาระหว่างทำ Task ถัดไป → rollback กลับมาได้ทันที โดยไม่เสียงาน Task ที่ผ่านแล้ว

Roleหน้าที่
Dev 🤝 AI Coding Agentimplement subtask ทีละ step
Dev 👀review code + run task test
QA 🧪run story test ก่อน commit + feature test ก่อน merge
Tech Lead 👀review ก่อน merge

สรุป Role × Phase

Phase 1  Define       PM/PO ✍️   + Tech Lead 👀  + QA 👀
Phase 2  Expand       Dev ✍️🤝   + Tech Lead 👀  + PM/PO 👀 + QA 👀
Phase 3  Test Spec    QA ✍️🤝   + Dev ✍️🤝      + Tech Lead 👀
Phase 4  Checklist    Dev ✍️🤝   + Tech Lead 👀  + QA 👀
Phase 5  Register     Dev ✍️🤝   + PM/PO ✍️
Phase 6  Execute      Dev 🤝🤖   + QA 🧪         + Tech Lead 👀

สัญลักษณ์:

  • ✍️ = เป็นคนลงมือทำ
  • 🤝 = ทำร่วมกับ AI Assistant (Chat)
  • 🤖 = ทำร่วมกับ AI Coding Agent
  • 👀 = review
  • 🧪 = run test

สรุป AI ช่วยอะไรในแต่ละ Phase

PhaseAI Assistant (Chat)AI Coding Agent
2 ExpandExpand Stories + Tasks + implementation detail
3 Test SpecDraft story + feature test spec (กับ QA) + Gen task test spec (กับ Dev)
4 ChecklistGen CHECKLIST.md
5 RegisterGen HANDOFF.md empty state
6 ExecuteImplement subtasks + tick checkbox + เขียน HANDOFF.md

AI Assistant (Chat) = ใช้ Phase 2–5 (spec & planning) AI Coding Agent = ใช้ Phase 6 (implementation)


หลักการสำคัญ

1. AI-Spec ต้องสมบูรณ์ก่อน register เสมอ Feature ที่ขึ้น Kanban = Feature ที่ AI พร้อม execute ได้ทันที ไม่มีงานค้างให้ Human เตรียมกลางทาง

2. Dev ที่ implement คือคนเตรียม AI-Spec Dev รู้ implementation detail ดีที่สุด — ให้ Dev เขียนแล้ว Tech Lead review ดีกว่า Tech Lead เขียนแล้ว Dev แก้

3. QA เข้ามาตั้งแต่ Phase 1 และใช้ AI Assistant ช่วยเขียน Test Spec QA รู้ requirement ตั้งแต่แรก = เขียน Story test ได้ตรง business intent AI Assistant ช่วย draft structure + happy path — QA เติม domain edge cases ที่ AI ไม่รู้

4. Human ลงแรงแค่ business decision + review Boilerplate ทั้งหมด — format, subtasks, test file structure — AI handle ให้หมด


FAQ

Q: AI-Spec กับ Technical Spec แบบเดิมต่างกันอย่างไร?

Technical Spec แบบเดิมเขียนเพื่อให้ Human Dev อ่านและ interpret เอง — AI-Spec เขียนเพื่อให้ AI Coding Agent อ่านแล้วทำงานได้ทันทีโดยไม่ต้องตีความ ความแตกต่างหลักคือ AI-Spec ต้องมี implementation detail ที่ละเอียดพอ, Task Type label ชัดเจน, และ test spec พร้อมก่อนเริ่ม execute เสมอ


Q: ถ้าทีมไม่มี QA ควรให้ใครเขียน Story Test และ Feature Test?

ให้ PM/PO เขียน Feature Test (business flow) และให้ Dev เขียน Story Test (technical acceptance) โดยใช้ AI Assistant ช่วย draft ก่อนเสมอ — สิ่งสำคัญคือ test spec ต้องเขียนก่อน implement ไม่ใช่หลัง เพราะถ้าเขียนทีหลังจะกลายเป็นแค่ confirm สิ่งที่ทำไปแล้ว ไม่ใช่ validate requirement จริงๆ


Q: AI Coding Agent อ่าน PLAN.md แล้วทำงานได้เลยโดยไม่ต้องมี CHECKLIST.md ไหม?

ทำได้ แต่ไม่แนะนำ — CHECKLIST.md ช่วยให้ AI Coding Agent track progress ทีละ subtask และเขียน HANDOFF.md ได้ถูกต้องเมื่อ session เต็มกลางคัน ถ้าไม่มี CHECKLIST.md โอกาสที่งานจะหายหรือ AI ทำซ้ำในรอบถัดไปสูงมาก


Q: ควรสร้าง AI-Spec ให้ครบก่อน register ขึ้น Kanban หรือ register ก่อนแล้วค่อยเติม?

ต้องครบก่อน register เสมอ — Feature ที่ขึ้น Kanban หมายความว่าพร้อม execute ได้ทันที ถ้า AI-Spec ยังไม่ครบ Dev ต้องมาเตรียมกลางทาง ซึ่งทำให้ estimate เวลาไม่ได้และ block AI Coding Agent โดยไม่จำเป็น


Q: HANDOFF.md สำคัญแค่ไหน ถ้าไม่มีจะเกิดอะไรขึ้น?

HANDOFF.md คือ checkpoint ที่ AI Coding Agent เขียนทิ้งไว้เมื่อ session เต็มกลางคัน Task — ถ้าไม่มี Dev ต้องอธิบาย context ทั้งหมดให้ AI ใหม่ทุกครั้งที่ session ใหม่ ซึ่งเสียเวลามากและมีโอกาสสูงที่ AI จะ re-do งานที่ทำไปแล้ว


Q: ถ้า Delivery Team มี Developer คนเดียว ใช้ Workflow นี้ได้ไหม?

ได้ครับ — และอาจได้ประโยชน์มากกว่าทีมใหญ่ด้วยซ้ำ เพราะ AI Assistant ทำหน้าที่แทน Role ที่ขาดได้เกือบทั้งหมด Dev คนเดียวแค่สวม hat ให้ถูกในแต่ละ Phase:

  • Phase 1 — คิดแบบ PM/PO: เขียน Goal + Scope จากมุม User
  • Phase 2 — คิดแบบ Dev + Tech Lead: ให้ AI Assistant expand Stories + Tasks + implementation detail แล้ว review เอง
  • Phase 3 — คิดแบบ QA: ตั้งคำถามว่า “อะไรพังได้บ้าง” แล้วให้ AI Assistantช่วย draft test spec
  • Phase 4 — ให้ AI Assistant gen CHECKLIST.md แล้ว review ความสมเหตุสมผลของ Subtasks
  • Phase 5 — ให้ AI Assistant gen HANDOFF.md แล้วขึ้น Kanban ด้วยตัวเอง
  • Phase 6 — ปล่อยให้ AI Coding Agent implement แล้ว review เฉพาะจุดที่ risk สูง

สิ่งที่ Dev คนเดียวต้องระวังคือ อย่าข้าม Phase 3 (Test Spec) เพราะถ้าไม่มี QA คอย check งาน Phase นี้คือ safety net เดียวที่มี


Q: Dev คนเดียวรับผิดชอบหลาย Feature พร้อมกัน ควรสร้าง AI-Spec ทีละ Feature หรือทำพร้อมกันได้?

ทำพร้อมกันได้ในส่วน Phase 1 (Define) เพราะเป็นแค่ shell — แต่ Phase 2 ขึ้นไปควรทำทีละ Feature เพื่อให้ implementation detail มีคุณภาพ Dev ที่คิดหลาย Feature พร้อมกันมักเขียน detail ได้ไม่ละเอียดพอ ทำให้ AI Coding Agent ต้องถามเพิ่มระหว่าง execute

Supawut Thomas

Supawut Thomas

Software Developer

มีประสบการณ์พัฒนา Software ระดับ Enterprise มากกว่า 10 ปี ผ่านงานจริงหลากหลายโปรเจกต์องค์กร — เชื่อว่าความรู้ที่ดีที่สุดคือความรู้ที่มาจากประสบการณ์จริง และอยากแบ่งปันสิ่งเหล่านั้นให้เพื่อน Developer ทุกคนได้นำไปพัฒนาตัวเองได้ดีขึ้นในทุกๆ วัน