WOXA /runtime  EP2 · Where AI Meets Collaboration
🚀BUSINESS ⇄ DEV
DEPARTURESWOXA /runtime · EP2: Where AI Meets Collaboration16:40
S1 · พี่มิกซ์
S2 · บอส
S3 · เปรม

EP2: Where AI Meets Collaboration

AI Wrote the Code.
But Who Will Deploy It?

ลด gap ระหว่าง business ↔ dev — ต่างฝ่ายต่างขยับเข้าหากัน

Session 2 · Hudsawat Akkati — Lead Developer, WOXA GROUP · 2 Nov 2026

เมื่อก่อน: product ต้องเขียน requirement 📄

🧑‍💼พี่มิกซ์รู้ว่า product ต้องการอะไร
📄requirementเขียนเป็นเอกสาร
🧑‍💻บอสอ่าน · ตีความ · สร้าง
😩"ไม่ใช่แบบนี้"แก้ · ส่ง · แก้ใหม่ ↺

คนที่รู้ว่าต้องการอะไร กับคนที่สร้าง เป็นคนละคน → gap ระหว่าง business ↔ dev

มีมที่ทุกออฟฟิศเคยเจอ 🙃

ที่ product อยากได้📊เปิดมา 3 วิ
รู้เลยว่าทีมทำอะไร
ที่เขียนใน requirement📄"ระบบรายงานผล
การปฏิบัติงานรายบุคคล"
ที่ dev เข้าใจ🗃️ตาราง
+ filter 12 ช่อง
ที่ได้จริง😵‍💫ต้องอ่านคู่มือ
ก่อนใช้

เอกสารละเอียดแค่ไหน… ก็ยังตีความได้หลายแบบ · ภาพจำลอง

ตอนนี้: เรากลับด้าน — พี่มิกซ์สร้าง MVP เองเลย

🧑‍💼พี่มิกซ์รู้ว่า product ต้องการอะไร
🤖Claude Codeเขียน brief เป็นภาษาคน
📱MVP ที่กดได้จริงตรงใจ product · test แล้ว

requirement ที่ดีที่สุด = ของที่กดได้จริง

แต่ยังเหลือช่องว่างสุดท้าย: รอ dev ตรวจ + เอาขึ้น server ⏳

พี่มิกซ์ส่ง MVP มาให้ผมดู…
🧑‍💼
บอส ลองดู MVP หน่อย 👉 http://localhost:3000
localhost:3000
🦖
ไม่สามารถเข้าถึงเว็บไซต์นี้ได้localhost ปฏิเสธการเชื่อมต่อ
✓WORKS ON
MY MACHINECERTIFIED*

* รับประกันเฉพาะบนเครื่องของฉันเท่านั้น 🙃

วันนี้ผมจะตอบแค่ 3 คำถาม

1🌱MVP ในเครื่อง
ไปถึงมือทุกคนยังไง?
2🔁ทำไมทุกครั้งที่แก้งาน
ต้องรอ dev?
3🤖agent ตัวนี้
สร้างยังไง · deploy ยังไง?

กติกา: ไม่มีโค้ด · มีแต่ Excel ที่ทุกคนใช้ และเรื่องจริงที่เคยพัง

localhost = ไฟล์ Excel
บน Desktop เรา
💻

สูตรเทพแค่ไหน… เปิดได้แค่ในเครื่องเรา

tool ที่เราทำเองด้วย AI ก็เหมือนกัน — ใช้ได้จริง แต่อยู่ในเครื่องเรา
dev เรียกว่า localhost = เครื่องของฉันเอง

Deploy = ย้ายขึ้น Google Sheets
แล้วกด Share
🔗

  1. อัปขึ้น Google Sheets → กด Share → คัดลอกลิงก์
  2. หัวหน้าเปิดได้ ทีมอื่นเปิดได้ คอมเมนต์ได้
  3. laptop เราปิด ไฟล์ก็ยังเปิดได้ — เพราะไปอยู่บนเครื่องที่เปิด 24 ชม.
    dev เรียกเครื่องนั้นว่า server

tool ต้อง "จำ" ได้ →
ข้อมูลต้องอยู่ที่เดียว 🗂️

หัวหน้า: "ขอดูงานสัปดาห์ที่แล้วหน่อย"

ส่งไฟล์ต่อกันทางเมล/LINE → "ตกลงอันไหนล่าสุด?" 😵

Sheet กลางไฟล์เดียว → ทุกคนเขียนที่เดียวกัน ย้อนดูได้

ที่เก็บข้อมูลกลางแบบนี้ dev เรียกว่า database
ข้างในหน้าตาเหมือน Sheet ตารางใหญ่ ๆ

15,841ผลตรวจโควิดบวก หายไปจากรายงาน

เพราะรวมข้อมูลด้วย Excel ไฟล์แบบเก่า ที่รับได้ราว 65,000 แถวต่อไฟล์ — ส่วนที่ล้นถูกตัดทิ้งเงียบ ๆ ไม่มีใครรู้

ที่มา: BBC News · Digital Health (ต.ค. 2020)

ใครเห็นอะไร = ปุ่ม Share 👥

Viewer · Editor · เฉพาะคนที่มีชื่อ
tool จริง: พนักงานเห็นแค่ของตัวเอง · หัวหน้าเห็นทั้งทีม

ถ้าตั้งเป็น "Anyone with the link" แล้วแชร์ผิดกลุ่ม… 😱

ยกเลิกไม่ทันแล้ว — ระบบที่กันเรื่องนี้ dev เรียกว่า login + สิทธิ์

migration = เพิ่ม/ลดคอลัมน์
ใน Sheet ที่มีข้อมูลอยู่แล้ว 📊

Sheet งานที่ทั้งทีมใช้อยู่ · 500 แถว

➕ เพิ่มคอลัมน์ "สถานะงาน" → 500 แถวเก่าว่างหมด

→ ต้องตัดสินใจว่าจะเติมอะไร เช่น "ยังไม่ระบุ"

➖ ลบคอลัมน์ "ผู้ทำ" → ข้อมูลหายถาวร · สูตรที่อ้างถึงขึ้น #REF!

dev เรียกการเพิ่ม/ลดคอลัมน์แบบนี้ว่า migration
ใน database = เพิ่ม/ลด column — ภาพเดียวกันเป๊ะ

😱 "ใครลบคอลัมน์ฉัน!!"

ลบคอลัมน์เดียว → รายงานพังทั้งทีม

ผิดลำดับก็พัง: เปิดฟอร์มให้กรอก "สถานะงาน" ก่อนเพิ่มคอลัมน์ → ส่งไม่ได้

ใน Sheet ยังกด Version history ย้อนได้
ระบบจริงไม่มีปุ่มนั้นง่าย ๆ → ต้องมีคนตรวจก่อนเพิ่ม/ลดคอลัมน์ทุกครั้ง

5 คำ ที่อยู่ใน Excel ของคุณอยู่แล้ว

💻localhostไฟล์บน Desktop
🔗deployขึ้น Google Sheets + Share
🗂️databaseSheet กลางไฟล์เดียว
👥login + สิทธิ์Viewer / Editor
📊migrationเพิ่ม/ลดคอลัมน์

เข้าใจ 5 คำนี้ = คุยกับ dev รู้เรื่องแล้ว

tool ไม่ได้ทำครั้งเดียวจบ

💬 กลุ่มทีม · ทุกวันศุกร์ (ภาพจำลอง)
🧑‍💼 พี่มิกซ์แก้กราฟเสร็จแล้ว ใครว่างช่วยเอาขึ้น server ที 🙏
🧑‍💻 บอสติดประชุมอยู่ครับพี่ เดี๋ยวเย็น ๆ ดูให้นะ 🙏

แก้ทุกสัปดาห์ = รอ dev ทุกสัปดาห์ ⏳

เอางานขึ้น server ไม่ใช่แค่ก๊อปไฟล์

1👀แก้อะไรไป
บ้าง?
2☁️กระทบข้อมูล
กลางไหม?
3📊ต้องเพิ่ม/ลด
คอลัมน์ไหม?

dev ไล่ checklist นี้ ในหัว ทุกครั้ง — ถ้าลืมข้อเดียวล่ะ?

1 ใน 8เครื่อง ที่ช่างลืมอัปเดต
0คนที่สองที่ตรวจงาน
45นาที ที่ระบบยิงคำสั่งซื้อขายมั่ว
$460M+ขาดทุน (กว่า 1.5 หมื่นล้านบาท)

ที่มา: SEC สหรัฐฯ — In the Matter of Knight Capital Americas LLC (2013)

พิมพ์บอกประโยคเดียว
แล้วงานขึ้นอย่างถูกต้อง ทุกครั้ง

🧑‍🎓
เราเลยสร้าง AI Agent = เด็กฝึกงานหัวไว
  • ถือ checklist ของ dev ไว้ในมือ
  • ไล่ครบทุกข้อ ทุกครั้ง ไม่เหนื่อย
  • แต่เรื่องสำคัญ… ต้องถามคนก่อน

ตัวอย่าง: พี่มิกซ์สั่ง agent ผ่าน Slack

🤖 checklist ของ agent · ตามคู่มือ dev
  1. 1👀 ดูว่าแก้อะไรมาบ้าง
  2. 2☁️ กระทบข้อมูลกลางไหม?
  3. 3📊 ต้องเพิ่ม/ลดคอลัมน์ไหม? (migration)
  4. 4🙋 DM บอส confirm
  5. 5🚀 merge → CI deploy
  6. 6📣 แจ้งผลใน Slack

ตัวอย่างเพื่อเล่า · tool สมมติ · ไม่ใช่ demo

💬 พี่มิกซ์พิมพ์ประโยคเดียว

🤖 agent รับงาน แล้วไล่ checklist ทางซ้าย ตามคู่มือที่ dev เขียน

ข้อ 1 · ดูว่าแก้อะไรมาบ้าง

🤖 checklist ของ agent · ตามคู่มือ dev
  1. ⏳👀 ดูว่าแก้อะไรมาบ้าง
  2. 2☁️ กระทบข้อมูลกลางไหม?
  3. 3📊 ต้องเพิ่ม/ลดคอลัมน์ไหม? (migration)
  4. 4🙋 DM บอส confirm
  5. 5🚀 merge → CI deploy
  6. 6📣 แจ้งผลใน Slack
📄 Dashboard งาน — Track changes

หน้า dashboard + กราฟรายเดือน 📊

ฟอร์มกรอกงาน + คอลัมน์ "สถานะงาน" ▾

เหมือนเปิด Track changes ใน Word · ตัวอย่างเพื่อเล่าเรื่อง

ข้อ 2 · กระทบข้อมูลกลางไหม?

🤖 checklist ของ agent · ตามคู่มือ dev
  1. ✓👀 ดูว่าแก้อะไรมาบ้าง
  2. ⏳☁️ กระทบข้อมูลกลางไหม?
  3. 3📊 ต้องเพิ่ม/ลดคอลัมน์ไหม? (migration)
  4. 4🙋 DM บอส confirm
  5. 5🚀 merge → CI deploy
  6. 6📣 แจ้งผลใน Slack
📊 ตารางงาน · 500 แถว
ชื่องาน
วันที่
ผู้ทำ
สถานะงาน ❓
⚠️ แถวเก่ายังไม่มีคอลัมน์นี้ — ขึ้นตอนนี้ ฟอร์มส่งไม่ได้ (แบบ Sheet เมื่อกี้)

ข้อ 3 · ต้องเพิ่มคอลัมน์ไหม? = migration

🤖 checklist ของ agent · ตามคู่มือ dev
  1. ✓👀 ดูว่าแก้อะไรมาบ้าง
  2. ✓☁️ กระทบข้อมูลกลางไหม?
  3. ⏳📊 ต้องเพิ่ม/ลดคอลัมน์ไหม? (migration)
  4. 4🙋 DM บอส confirm
  5. 5🚀 merge → CI deploy
  6. 6📣 แจ้งผลใน Slack
📊 ตารางงาน · 500 แถว
ชื่องาน
วันที่
ผู้ทำ
+ สถานะงาน (แผน)

เหมือนเพิ่มคอลัมน์ใน Sheet — แถวเก่า 500 แถวต้องเติมค่าให้ 📊

📝 เตรียมแผนแล้ว · ยังไม่ลงมือ

ข้อ 4 · เรื่องสำคัญ → DM ให้บอส confirm

🤖 checklist ของ agent · ตามคู่มือ dev
  1. ✓👀 ดูว่าแก้อะไรมาบ้าง
  2. ✓☁️ กระทบข้อมูลกลางไหม?
  3. ✓📊 ต้องเพิ่ม/ลดคอลัมน์ไหม? (migration)
  4. ⏳🙋 DM บอส confirm
  5. 5🚀 merge → CI deploy
  6. 6📣 แจ้งผลใน Slack

📨 agent ไม่ตัดสินใจเรื่องข้อมูลเอง → ส่งสรุป + ข้อกังวลให้บอสใน Slack DM

⏳ แล้วบอกพี่มิกซ์ว่า "ส่งให้บอสแล้ว รอสักครู่"

เด็กฝึกงานที่ดี = รู้ว่าเรื่องไหนต้องถาม

บอสอ่านสรุป → ดู concern → ตอบ ok

🤖 checklist ของ agent · ตามคู่มือ dev
  1. ✓👀 ดูว่าแก้อะไรมาบ้าง
  2. ✓☁️ กระทบข้อมูลกลางไหม?
  3. ✓📊 ต้องเพิ่ม/ลดคอลัมน์ไหม? (migration)
  4. ✓🙋 DM บอส confirm
  5. ⏳🚀 merge → CI deploy
  6. 6📣 แจ้งผลใน Slack
✓ แก้แค่ 2 จุด ตรงกับที่พี่มิกซ์บอก✓ เพิ่มคอลัมน์ใหม่ ไม่มีคอลัมน์ไหนถูกลบ✓ concern: เติม "ยังไม่ระบุ" ให้แถวเก่า

💬 พิมพ์ตอบใน Slack: "ok ลุยได้"

ข้อ 5–6 · merge → CI deploy → แจ้งผล

🤖 checklist ของ agent · ตามคู่มือ dev
  1. ✓👀 ดูว่าแก้อะไรมาบ้าง
  2. ✓☁️ กระทบข้อมูลกลางไหม?
  3. ✓📊 ต้องเพิ่ม/ลดคอลัมน์ไหม? (migration)
  4. ✓🙋 DM บอส confirm
  5. ✓🚀 merge → CI deploy
  6. ✓📣 แจ้งผลใน Slack
🔀 merge→🛠️ CI→📊 migration→🚀 deploy

📣 ขึ้นเสร็จ เปิดเช็ก แล้วตอบพี่มิกซ์เป็นภาษาคน

เปิดหลังบ้าน: ระบบจริงมีแค่ 4 ชิ้น

💬 Slackพี่มิกซ์พิมพ์สั่ง
💬 Slack DMบอส confirm
🤖 Hermes Agent
🧠 โมเดล AIคิด · สรุป🧰 toolsgit · GitLab · Slack📘 skillSKILL.md = checklist
🦊 GitLabrepo · MR · CI
🏢 ServerCI deploy ให้
  1. พี่มิกซ์พิมพ์ใน Slack: "ช่วยเอางานขึ้น server"
  2. Hermes โหลด skill ที่ตรงกับงานนี้ (checklist)
  3. อ่าน diff + เช็กว่ากระทบ database / ต้อง migration ไหม
  4. เจอเรื่องที่ dev ต้องตัดสินใจ → DM บอสพร้อมสรุป
  5. บอสพิมพ์ตอบ "ตกลง"
  6. merge MR → GitLab CI deploy อัตโนมัติ
  7. ดู pipeline ผ่าน → ตอบพี่มิกซ์ใน Slack

checklist อยู่ที่ไหน? → SKILL.md ใน Hermes

~/.hermes/skills/…/SKILL.md
---
name: dashboard-deploy
description: ใช้เมื่อพี่มิกซ์ขอเอางานขึ้น server
---
## ขั้นตอน
1. ดู diff ของงานที่พี่มิกซ์แก้
2. เช็กว่าแตะ database ไหม · ต้อง migration ไหม
3. มี migration หรือข้อกังวล → หยุด DM บอสใน Slack
   พร้อมสรุป แล้วรอคำตอบ
4. ได้ "ตกลง" → merge MR · ให้ GitLab CI deploy
5. รอ pipeline ผ่าน → เปิดเว็บเช็ก
6. ตอบพี่มิกซ์เป็นภาษาคน
## ห้าม
- ห้ามรัน migration เองโดยไม่มีคน confirm
- ห้ามแตะ server ตรง · ให้ CI เป็นคน deploy
ไฟล์ markdown ธรรมดาเขียนเป็นภาษาคน ไม่ใช่โค้ด — dev คนไหนก็แก้ได้
description = ตัวเลือก skillHermes อ่านบรรทัดนี้ แล้วรู้เองว่างานนี้ต้องใช้ skill ไหน
"หยุด แล้วถาม" เขียนไว้ในไฟล์จุดที่ต้องมีคนตัดสินใจ ถูกกำหนดตั้งแต่ตอนเขียน checklist
= SOP จาก EP1เปลี่ยนสิ่งที่อยู่ในหัว dev ให้เป็นไฟล์ที่ agent ทำตามได้ทุกครั้ง

ตัวอย่างย่อเพื่อเล่า — ไม่ใช่ไฟล์จริงทั้งไฟล์ · คนละตัวกับ Slackbot Skills

deploy ยังไง? agent ไม่ได้ deploy เอง — CI ทำ

🔀merge MRหลังบอส confirm→ 🛠️buildGitLab CI→ 🗄️migrationถ้ามี · ตามแผนที่ confirm แล้ว→ 🚀deployขึ้น server→ ✅เช็กเว็บagent รายงานใน Slack
ทำไมไม่ให้ agent SSH ขึ้น server เอง?agent ไม่ต้องถือรหัส server · ทุกครั้ง deploy ด้วยขั้นตอนเดียวกัน · ย้อนดูได้ทุก pipeline
agent ทำอะไรในช่วงนี้รอ pipeline · ถ้าพังก็สรุปสาเหตุให้ dev · ถ้าผ่านก็เปิดเว็บเช็กแล้วรายงาน

ชื่อ stage เป็นตัวอย่าง — ปรับตาม pipeline จริง

"ทำไมไม่ให้พี่มิกซ์ merge MR เอง แล้วให้ CI ทำตาม checklist?"

🔀 MR + CI อย่างเดียว
🤖 Agent + CI
เริ่มงานพี่มิกซ์ต้อง branch · commit · push · เปิด MR
ภาษา git ที่ไม่เคยเรียน
พิมพ์ใน Slack ประโยคเดียว
ตรวจCI รันเฉพาะเทสต์ที่ dev เขียนไว้ล่วงหน้า
ตอบได้แค่ ผ่าน / ไม่ผ่าน
อ่านสิ่งที่แก้ทุกครั้ง
ถามว่า "กระทบข้อมูลเก่าไหม?"
เจอ migrationpipeline แดง: column "status" does not exist → ต้องทัก dev มาแปล
หรือแย่กว่า: เขียว เพราะไม่มีเทสต์ครอบ → งานเก่า 500 ใบว่าง
DM บอส: "งานเก่า 500 ใบจะว่าง
ใส่ 'ยังไม่ระบุ' ไหม?"
คนกด mergeพี่มิกซ์ต้องรับผิดชอบ merge + ข้อมูลเดิม แทน devdev confirm จากสรุป → agent merge
ผลลัพธ์log pipeline ภาษา dev"ขึ้นแล้ว ข้อมูลเดิมครบ" ภาษาคน

ข้อความ error เป็นตัวอย่างเพื่อเล่าเรื่อง

CI ตอบได้ว่า "ผ่านไหม" · ตอบไม่ได้ว่า "ควรไหม"

🔀 MR ออกแบบมาให้ dev

branch · diff · pipeline log
คือเครื่องมือของ dev
ให้ merge เอง = โยนความรับผิดชอบของ dev ไปให้ product

🛠️ CI ตรวจแค่สิ่งที่เขียนไว้

tool ของพี่มิกซ์เกิดใหม่เรื่อย ๆ
จาก Claude Code
เรื่องที่ไม่มีเทสต์ = ปล่อยผ่านเงียบ ๆ

🙋 เรื่องข้อมูลไม่ใช่ ผ่าน/ไม่ผ่าน

"งานเก่าจะใส่ค่าอะไร?"
ต้องมีคนตอบ
agent รู้ว่าต้องถาม + ถามเป็นภาษาคน

Agent ไม่ได้แทน CI — Agent = ด่านหน้า (เข้าใจ · ถาม · แปล) · CI = ด่านหลัง (ตรวจ · deploy)

ขอบเขตของ agent: ทำเอง · ถามก่อน · ห้ามแตะ

🤖 ทำเองได้

อ่าน diff · เช็ก database
เปิด / อัปเดต MR
เฝ้า pipeline · เปิดเว็บเช็ก
สรุปผลให้พี่มิกซ์

🙋 ต้อง DM ถาม dev

มี migration
มีข้อกังวลเรื่องข้อมูลเดิม
เรื่องสิทธิ์ ใครเห็นอะไร
อะไรที่ไม่อยู่ใน checklist

⛔ ห้ามแตะ

รหัสผ่าน / secret ของ server
SSH ขึ้น server ตรง
merge โดยไม่มีคน confirm
ระบบของทีมอื่น
ถ้าปล่อยเด็กฝึกงานแก้ Sheet กลางเอง โดยไม่มีใครตรวจ…
This is fine meme — หมานั่งจิบกาแฟในห้องที่ไฟไหม้

Agents build. SOP guards. Devs own.

ปลายทาง: ต่างฝ่ายต่างขยับเข้าหากัน

🧑‍💼Businessรู้ว่าต้องการอะไรLV.3 · ผู้บัญชา Agent
gap
🧑‍💻Devรู้ว่าระบบทำงานยังไงchecklist → agent
🧑‍💼 Product ขยับขึ้นมาจากผู้ใช้ tool → LV.3 สั่ง Claude Code สร้าง MVP + test เอง
🧑‍💻 Dev ขยับเข้าไปหาพูดภาษาคน · ย้าย checklist ในหัวให้ agent · ตรวจ + confirm จากสรุป

ไม่มีใครต้องเปลี่ยนอาชีพ — เจอกันคนละครึ่งทาง

ก่อนกด Share tool ของคุณ ถาม 3 ข้อ

0/3 · ยังอยู่บน Desktopพร้อม Share

วันจันทร์: ส่ง MVP + brief 1 หน้า 📝

tool นี้ทำอะไรเช่น รวมงานทั้งสัปดาห์ให้หัวหน้าดู
ใครใช้ฉัน · หัวหน้า · ทีม
ต้องจำข้อมูลอะไรงาน · วันที่ · สถานะ
ใครเห็นอะไรฉันเห็นของฉัน · หัวหน้าเห็นทั้งทีม
อะไรเป็นความลับเงินเดือน · ข้อมูลลูกค้า
แก้บ่อยแค่ไหนทุกสัปดาห์ → ขอ agent ช่วยขึ้นงาน

ทำ MVP ด้วย AI + แนบ brief นี้ → dev แปลงเป็น skill ให้ agent ขึ้นงานให้ทุกครั้ง

หัวหน้า
เปิดลิงก์ได้แล้วนะ 👍
แต่… กราฟสี ๆ นี่ดูยังไง? อันไหนคืองานสัปดาห์นี้
แล้วเลขสีแดงนี่ แปลว่าดีหรือแย่? 😅
work_dashboard v0.1
filter: (all) ▾   date_from: ____   date_to: ____
LoadRefreshExport CSV
status_code: 3 · overdue_ratio: 0.18

tool ที่ขึ้นแล้ว แต่ไม่มีใครอยากเปิด
ยังไม่ใช่ Launch ที่สมบูรณ์

DEPARTURESNEXT17:20
S2 · บอส
S3 · เปรม

แฟ้มอ้างอิง — ทุกเรื่องจริงใน session นี้

* dashboard, ข้อความ Slack, ไฟล์ และตัวเลขบนสไลด์ เป็นตัวอย่างเพื่อเล่าเรื่อง — ไม่ใช่ tool จริง และไม่มี demo

→ ต่อไป · ← ย้อน · N สคริปต์ · P หน้าจอผู้พูด · F เต็มจอ