Back to Blog

EventStorming ฉบับมือใหม่: เครื่องมือวิเคราะห์ระบบที่ทีม Tech ควรรู้จัก

22 Lab Team
July 8, 2025
15 min read
Backend Development
EventStorming ฉบับมือใหม่: เครื่องมือวิเคราะห์ระบบที่ทีม Tech ควรรู้จัก

🎯 EventStorming คืออะไร

  • EventStorming คือ “เวิร์กช็อป / กิจกรรมร่วมมือ” ที่ช่วยให้ทีม — ไม่ว่าจะเป็นคนสายธุรกิจ (non-tech) หรือสายเทคนิค (developers) — มาร่วมกันสร้าง “ภาพรวมของระบบ/กระบวนการธุรกิจ” จากมุมมองของเหตุการณ์ที่เกิดขึ้นจริง (Domain Events)

  • วิธีนี้ไม่ต้องพึ่ง diagram ที่ซับซ้อนหรือเอกสารทางเทคนิคมาก่อน — ใช้แค่ “กระดาษใหญ่ + sticky note + ปากกา” ก็สามารถแสดง flow ของระบบได้อย่างชัดเจน

  • จุดเด่นคือ “ทุกคน” ในทีม — ไม่ว่าจะ developer, product-owner, business-analyst, stakeholder — สามารถมีส่วนร่วมและเข้าใจระบบจากมุมเดียวกัน

เนื้อหานี้เรียบเรียงมาจาก ddd-crew/eventstorming-glossary-cheat-sheet (github.com)

🧩 แนวคิดหลัก (Core Concepts)

เมื่อเริ่มทำ EventStorming เรามักใช้ post-it หลายสี เพื่อแทน “องค์ประกอบ” ต่าง ๆ ของระบบ โดยสีและความหมายหลัก มีดังนี้ (อ้างอิงจากบทความที่สรุปไว้)

สิ่งที่แทน ความหมาย / นิยาม สีที่ใช้ (Sticky-note)
Domain Event เหตุการณ์ที่ “เกิดขึ้นแล้ว” และมีความหมายในทางธุรกิจ เช่น “Order Placed”, “Payment Received”, “Product Added” ส้ม
Hotspot จุดที่มี “ข้อสงสัย / ความไม่ชัดเจน / ความขัดแย้ง” — ใช้เพื่อจับประเด็นที่ทีมต้องกลับมาคุยหรือตัดสินใจเพิ่มเติม ชมพู (neon pink)
Actor / Agent บุคคล / หน่วยงาน / บทบาทที่เกี่ยวข้องกับเหตุการณ์ — ใครทำอะไร หรือใครได้รับผลกระทบ เหลือง (post-it เล็ก)
System ระบบ (IT/System) ที่มีหน้าที่เกี่ยวข้องในโดเมน เช่น ซอฟต์แวร์, บริการภายนอก ฯลฯ ชมพู (post-it สีชมพู)
Value คุณค่า (เชิงบวก/ลบ) ที่เหตุการณ์หรือกระบวนการในโดเมนนั้นสร้างให้กับธุรกิจหรือผู้ใช้ เขียว / แดง (post-it ขนาดเล็ก)
Pivotal Events เหตุการณ์ “หลัก/สำคัญ” ที่เป็นจุดเปลี่ยนหรือจุดศูนย์กลางของ flow — (เป็น Domain Event ที่ถูกเน้น)
Aggregates / Bounded Contexts กลุ่มของเหตุการณ์, entities และ logic ที่อยู่ภายใต้ขอบเขตเดียวกัน — ใช้ในการออกแบบซอฟต์แวร์ระดับลึก (ใช้เมื่อจำเป็น)

สังเกตว่าจากต้นฉบับ บทความพยายามลดศัพท์เทคนิคที่ซับซ้อนลง เพื่อให้ทีมที่ไม่ใช่สายเทคนิคสามารถร่วมได้ง่ายขึ้น เช่น หลีกเลี่ยงศัพท์ DDD ที่เฉพาะเจาะจง

🧪 รูปแบบ / ระดับของ EventStorming

บทความแยก EventStorming ออกเป็น 3 ระดับ (ขึ้นอยู่กับเป้าหมาย) — โดยทุกระดับใช้แนวคิดเดียวกัน (events → timeline → post-it…) แต่ “ละเอียด / ลึก” ต่างกันตามวัตถุประสงค์

  1. Big Picture EventStorming

    • ใช้เพื่อ “ดูภาพรวมของธุรกิจ/โดเมนทั้งหมด” — เหมาะเมื่อต้องการสำรวจว่าองค์กร/ระบบทำอะไรบ้าง, มี flow งานอย่างไร, มี pain point ที่ชัดเจนไหม ฯลฯ

    • เหมาะสำหรับเวิร์กช็อประหว่างทีมใหญ่ (10–30+ คน) บนกระดาษสีขาวแผ่นใหญ่แผ่นเดียว

    • ผลที่ได้คือ “มุมมองร่วม” (shared understanding) ของโดเมนธุรกิจ — เป็นฐานให้ทีมวางกลยุทธ์, ปรับโครงสร้าง, หาจุดที่ควรปรับปรุง ฯลฯ

  2. Process-Modelling EventStorming

    • ใช้เมื่อเราโฟกัสที่ “กระบวนการภายในองค์กร” — อยากทำความเข้าใจ flow งาน, หาจุดติดขัด (bottleneck), มองหาการปรับปรุง process หรือเลือกจุดที่ควรแยกระบบออกจากงานที่ manual / สายธุรกิจทั่วไป

    • จะมีองค์ประกอบอื่น ๆ เพิ่มเข้ามา เช่น Commands/Actions, Query Models (ข้อมูลที่ใช้), ระบบ IT, กฎธุรกิจ (Policies), เหมาะกับการเตรียมปรับปรุงระบบก่อนทำซอฟต์แวร์จริง

  3. Software-Design (หรือ Design Level) EventStorming

    • เหมาะสำหรับทีมพัฒนา — หลังจากเข้าใจ domain/process แล้ว นำมาสร้างแบบโครงสร้างซอฟต์แวร์จริง: กำหนดโมเดลโดเมน, ขอบเขตของบริการ (microservices), API, contract, ฐานข้อมูล ฯลฯ

    • เป็นจุดที่ “post-it + sticky note + timeline” กลายเป็น “system design artefact” ที่สามารถนำไป implement ได้จริง

📝 ขั้นตอนทั่วไปของการทำ EventStorming (สำหรับเวิร์กช็อป)

บทความแนะนำวิธีที่ค่อนข้างเป็นขั้นตอน (facilitated workshop) ดังนี้:

  • เตรียมทีม + วัสดุ — กระดาษขนาดใหญ่ หรือ whiteboard / butcher-paper, post-it หลายสี, ปากกาเมจิก, ห้องที่มีพื้นที่เพียงพอ, facilitator ที่ช่วยจัดการ workshop

  • Check-in กับทีม — เริ่มด้วยให้ทุกคน “พูดคุยเบา ๆ” เช่น สวัสดี พูดถึงความคาดหวังจากเวิร์กช็อป เพื่อสร้างบรรยากาศที่เปิดกว้าง (ไม่ใช่เริ่มด้วยงานทันที)

  • Chaotic Exploration — ให้ทุกคน (ทุกบทบาท) เขียน Domain Events ที่คิดว่าเกิดขึ้นได้ — ไม่ต้องกลัวผิด กลัวซ้ำ แค่ capture “ทุกอย่างที่คิดได้” ของระบบในมุมมองตัวเอง — วางแบบไม่เรียงลำดับก่อน

  • Enforce the Timeline — เมื่อทุกคนเขียนเสร็จแล้ว ร่วมกัน “จัดเรียงเหตุการณ์ตามลำดับเวลา” ลบซ้ำ ถกให้ชัดว่าเหตุการณ์ไหนมาเมื่อไร ทำให้ flow มีระเบียบ (timeline)

  • ระบุ Hotspots / จุดที่ยังสงสัย — ถ้ามีข้อขัดแย้ง คำถาม ความไม่ชัดเจน — ให้ติด post-it สีชมพู (Hotspot) เพื่อให้ทีมมาพูดคุย หรือเก็บไว้สำหรับช่วงถัดไป

  • เพิ่มองค์ประกอบอื่นเมื่อจำเป็น — หลังจากได้ timeline + events แล้ว อาจเพิ่ม Actors, Systems, Policies/Rules, Value, External Systems, Aggregate / Context เป็นต้น (ตามเป้าหมายของเวิร์กช็อป)

  • Check-out / สรุปผล — จบเวิร์กช็อปด้วยการให้แต่ละคนสะท้อนความคิด ความรู้สึก หรือข้อเสนอแนะ — อาจเป็นวง (circle) หรือวิธีอื่น — เพื่อให้มั่นใจว่าทุกคนเข้าใจตรงกันและยินดีในผลที่ออกมา

ผู้ทำหน้าที่ facilitator (ผู้ประสาน) มีบทบาทสำคัญ — ต้องคอยดูให้ทุกคนมีส่วนร่วม สังเกตให้กลุ่มไม่เบี่ยงเบน ประเมินว่าเมื่อไรควรหยุดถก และเมื่อไรควรปล่อยให้กลุ่มคิดเอง

✅ ข้อดี & เหตุผลที่ควรใช้ EventStorming

  • เร็วและเห็นภาพรวมเร็ว — จากที่อาจต้องใช้เวลาเป็นสัปดาห์ในการวิเคราะห์ requirement/flow ระบบ กลับถูกย่นให้เห็นภาพรวมภายในไม่กี่ชั่วโมง/วันเดียวด้วย EventStorming

  • ทุกคน (ทั้ง business & tech) เข้าใจร่วมกัน — ไม่จำเป็นว่าทุกคนต้องรู้โค้ดหรือออกแบบระบบ — แค่เข้าใจเหตุการณ์ (events) ที่เกิดขึ้นจริงในธุรกิจ ก็สามารถร่วมออกแบบได้

  • ยืดหยุ่น / ปรับตามบริบท — จะใช้สำหรับสำรวจโมเดลธุรกิจ (ใหม่), วิเคราะห์ process เดิม, รีแฟคเตอร์ระบบ, หรือออกแบบซอฟต์แวร์ใหม่ ก็ได้หมด

  • ลดความคลุมเครือ / misunderstanding — เพราะทุกอย่างแสดงออกมาเป็นภาพ (visual) — เหตุการณ์, actor, system, flow — ซึ่งมองได้ชัดเจนกว่าการอธิบายด้วยคำพูดหรือ spec แบบ text ล้วน ๆ

📈 แล้วถ้าทำเสร็จ — ต่อจากนั้นควรทำอะไร

บทความแนะนำว่า EventStorming เป็นเพียง “จุดเริ่มต้น” ที่ช่วยให้ทีมมีความเข้าใจร่วม และเมื่อได้โมเดลแล้ว — ถ้าจะพัฒนาเป็นซอฟต์แวร์จริง — สามารถใช้ output จาก EventStorming เป็นฐานในการ:

  • สร้าง Domain Models, ERD, UML diagram (class diagrams, data models)

  • กำหนด ขอบเขตของบริการ / โมดูล / microservices ในสถาปัตยกรรม ถ้าระบบซับซ้อนและแยกเป็นหลายบริการ

  • กำหนดระบบการสื่อสารระหว่างบริการ (APIs / contracts), define logic ของ Commands, Events, Policies, และ implement workflow จริง ๆ ได้อย่างเป็นระบบ

  • ใช้เป็นฐานสำหรับการวางแผนพัฒนา (sprint backlog, user stories) — เช่น mapping จาก Domain Events / Commands → เป็น user stories, epic, task ได้อย่างยืดหยุ่น


✨ สรุป

EventStorming คือ “เครื่องมือ / เวิร์กช็อป” ที่ช่วยให้ทีมที่มีพื้นฐานต่างกัน (ธุรกิจ vs เทคนิค) มาทำความเข้าใจระบบเดียวกัน ผ่านมุมมอง “เหตุการณ์ในโดเมน (Domain Events)” โดยใช้เครื่องมือเรียบง่าย (post-it + whiteboard) — เหมาะสำหรับทั้งการออกแบบ business model, วิเคราะห์ process, หรือออกแบบซอฟต์แวร์

ข้อดีคือได้ ภาพรวมที่ชัดเจน, ลดความคลาดเคลื่อนของความเข้าใจ, ทุกคนมีส่วนร่วม และสามารถต่อยอดไปสู่การออกแบบระบบจริงได้


EventStorming Cheat Sheet (One Page สำหรับการใช้เพื่อแชร์กันภายในทีม)

EventStorming Cheat Sheet

เวิร์กช็อปเข้าใจระบบ ผ่าน “เหตุการณ์” แทนที่จะเริ่มจาก “โค้ด” หรือ “เอกสาร”


1️⃣ EventStorming คืออะไร?

  • เป็น วิธีการทำเวิร์กช็อป เพื่อทำความเข้าใจระบบหรือกระบวนการทำงาน

  • ใช้ เหตุการณ์ในธุรกิจ (Domain Events) เป็นตัวตั้ง เช่น

    • Order Created

    • Payment Confirmed

    • Invoice Sent

  • ใช้แค่ กระดาษยาว + Post-it + ปากกาเมจิก ก็เริ่มได้

  • เหมาะมากสำหรับการคุยร่วมกันระหว่าง

    • ทีมธุรกิจ / ผู้ใช้งานจริง

    • ทีมเทคนิค / Dev / Analyst / Product


2️⃣ ใช้เมื่อไหร่ดี?

ใช้ EventStorming เมื่อต้องการ…

  • เข้าใจ ภาพรวมของธุรกิจ อย่างรวดเร็ว

  • แปลง ความรู้จากคนเก่ง ๆ ในองค์กร ออกมาเป็นภาพที่จับต้องได้

  • ลดปัญหา

    • “คุยกันไม่รู้เรื่อง”

    • “dev เข้าใจอีกแบบ business เข้าใจอีกแบบ”

  • เตรียมข้อมูลก่อน

    • ออกแบบระบบใหม่

    • ปรับปรุง process เดิม

    • แตก microservices / โมดูลต่าง ๆ


3️⃣ ของที่ต้องเตรียม

  • กระดาษยาว / กระดาน / ผนังโล่ง ๆ

  • Post-it หลายสี (อย่างน้อย 3–5 สี)

  • ปากกาเมจิกหัวโต เขียนให้อ่านไกล ๆ ได้

  • เทปกาว / Blue-tack สำหรับแปะ

  • คนในเวิร์กช็อป:

    • คนหน้างาน / เจ้าของ process

    • คนตัดสินใจ (ถ้าได้)

    • ทีมเทคนิค / Analyst / Product

    • Facilitator (คอยดำเนินเวิร์กช็อป)


4️⃣ สี / การ์ดหลักที่ใช้ (กำหนดเองได้ แต่แนะนำแบบนี้)

ปรับสีตามสะดวก แต่ให้ความหมายชัดเจนเหมือนกันทั้งทีม

  • 🟧 Domain Event (ส้ม)
    เหตุการณ์ที่ “เกิดขึ้นแล้ว” และสำคัญต่อธุรกิจ

    • เขียนเป็นอดีตกาล เช่น

      • คำสั่งซื้อถูกสร้างแล้ว

      • ชำระเงินสำเร็จ

      • ยืนยันการจองแล้ว

  • 🟨 Actor / ผู้เกี่ยวข้อง (เหลือง)
    ใครเป็นคนทำ? ใครได้รับผล?

    • ลูกค้า

    • เจ้าหน้าที่

    • ระบบภายนอก

  • 🩷 System / ระบบ (ชมพู)
    ระบบหรือบริการที่เกี่ยวข้องกับเหตุการณ์

    • Web App

    • Mobile App

    • ระบบ CRM

    • Gateway / External API

  • 💚 / ❤️ Value (เขียว / แดง)
    คุณค่าหรือผลกระทบ

    • เขียว = ผลดี / สร้างคุณค่า

    • แดง = ปัญหา / Pain / ความเสี่ยง

  • 🩷 (Neon) Hotspot
    จุดที่ยัง ไม่ชัดเจน / ถกเถียง / สงสัย

    • เช่น “ตรงนี้ใครเป็นคนอนุมัติแน่ ๆ ?”

    • หรือ “จริง ๆ แล้วขั้นตอนนี้จำเป็นไหม?”

หมายเหตุ: ถ้าเริ่มต้นครั้งแรก เน้น Domain Event + Hotspot แค่สองแบบก็พอ แล้วค่อยเพิ่ม Actor/System/Value ทีหลัง


5️⃣ รูปแบบ (Levels) ของ EventStorming

5.1 Big Picture EventStorming

ใช้เพื่อ:

  • เห็น ภาพรวมของทั้งธุรกิจ / ทั้งระบบ

  • เหมาะตอน

    • เริ่มโปรเจกต์ใหม่

    • อยาก map ธุรกิจทั้งสาย

    • มีหลายทีม/หลายระบบเกี่ยวพันกัน

ลักษณะ:

  • โฟกัส “เล่าเรื่องตั้งแต่ต้นจนจบ”

  • เน้น Domain Events บนเส้นเวลา (Timeline)

  • ยังไม่ต้องลงดีเทลเชิงเทคนิคมาก


5.2 Process-Modelling EventStorming

ใช้เมื่อ:

  • อยากโฟกัสที่ กระบวนการใดกระบวนการหนึ่ง แบบลึกขึ้น

  • เช่น กระบวนการอนุมัติใบเสนอราคา, ขั้นตอน onboarding ลูกค้า, การปิดงาน service

เพิ่มจาก Big Picture:

  • ระบุ คำสั่ง / Action / Command (อะไร trigger event นั้น)

  • ระบุ กฎ / Policy / Business Rule ที่เกี่ยวข้อง

  • เชื่อม Actor + System กับแต่ละ Event


5.3 Design / Software-Modelling EventStorming

ใช้เมื่อ:

  • จะเริ่มออกแบบระบบ / เขียนซอฟต์แวร์จริง

  • อยากรู้ว่า

    • ขอบเขตของโมดูล / microservices อยู่ตรงไหน

    • ข้อมูล/โมเดลหลักคืออะไร

    • Event ไหนคุยกันระหว่างระบบไหน

ทำเพิ่ม:

  • จับกลุ่ม Event เป็น Aggregate / Bounded Context

  • คิดต่อเป็น

    • ERD / Class Diagram

    • API / Message Contract

    • Flow ของระบบที่ implement จริง


6️⃣ ขั้นตอนเวิร์กช็อปแบบง่าย (นำไปใช้ได้ทันที)

ขั้นที่ 1: Check-in – ตั้งเวทีให้ถูกโทน

  • ให้ทุกคนรู้เป้าหมายของเวิร์กช็อป

  • อาจให้แต่ละคนแนะนำตัว + บอกว่าคาดหวังอะไร

ขั้นที่ 2: Chaotic Exploration – เขียนทุกอย่างที่คิดได้

  • แจก post-it + ปากกาให้ทุกคน

  • ให้เขียน Domain Events ที่คิดว่าเกิดขึ้นในระบบ

  • กติกา:

    • เขียนทีละ event ต่อ 1 แผ่น

    • เขียนด้วยภาษาเดียวกัน (เช่น ภาษาไทยก็ดี)

    • เขียนเป็นอดีตกาล (“สำเร็จแล้ว / เกิดแล้ว”)

  • ยัง ไม่ต้องเรียงลำดับ เอาแค่วางกระจาย ๆ ก่อน

ขั้นที่ 3: Enforce the Timeline – เรียงตามเวลา

  • ร่วมกันเอา Event ทั้งหมดมา เรียงตามลำดับเวลา บนกระดาษยาว

  • ลบ/รวมอันที่ซ้ำกัน

  • ถกกันว่า “อะไรเกิดก่อน–หลัง” จนทุกคนโอเค

ขั้นที่ 4: Mark Hotspots – ชี้จุดที่ยังไม่เคลียร์

  • ถ้าตรงไหนเริ่มถกกันหนัก ๆ / ไม่แน่ใจ

    • แปะ Hotspot (สีชมพู) ไว้

    • ไม่จำเป็นต้องเคลียร์ให้จบ ณ ตอนนั้น

  • ช่วยให้ไม่ติดหล่มในรายละเอียดจุดเดียว

ขั้นที่ 5: เพิ่มองค์ประกอบอื่น

แล้วแต่เป้าหมายของเรา:

  • เพิ่ม Actor ว่าใครทำ Event นี้

  • เพิ่ม System ว่าเกิดในระบบไหน

  • เพิ่ม Policy / Rule ถ้ามีกฎธุรกิจ

  • เพิ่ม Value (ดี/แย่) เพื่อหา pain point และ quick wins

ขั้นที่ 6: สรุป & Check-out

  • ให้ทุกคนเดินดู board อีกครั้ง

  • สรุปว่า:

    • ตอนแรกคิดว่าระบบทำงานยังไง?

    • ตอนนี้เข้าใจอะไรใหม่บ้าง?

    • เห็นปัญหาอะไร?

    • โอกาสปรับปรุงอยู่ตรงไหน?


7️⃣ ข้อดีของ EventStorming (พูดกับผู้บริหารก็ได้)

  • ✅ ได้ภาพรวมที่ชัดเจนภายในเวลาไม่นาน

  • ✅ ทุกฝ่ายได้ “ภาษากลาง” ร่วมกัน (ผ่าน Events ไม่ใช่ผ่านศัพท์เทคนิค)

  • ✅ ดึงความรู้จาก “คนที่ทำงานจริง” ออกมาอยู่บนผนัง

  • ✅ ใช้เป็นฐานไปต่อ:

    • ทำ Process Improvement

    • ทำ System Design

    • แตกเป็น User Stories / Backlog


8️⃣ หลังจบเวิร์กช็อป ทำอะไรต่อ?

คุณสามารถนำผลบนผนังไปต่อยอดเป็น:

  • แผนภาพ process (BPMN / Flowchart)

  • Data / Domain Model

  • ร่าง System Architecture / Microservices

  • สร้าง User Stories / Epic / Backlog

  • วางแผนปรับปรุง process หรือออกแบบระบบใหม่

EventStormingDomain-Driven DesignDDDWorkshopSystem DesignMicroservices

Related Articles

เลิกใช้ Pip แล้วชีวิตดีขึ้น: จบปัญหา Python บวม ด้วย UV
Backend Development

เลิกใช้ Pip แล้วชีวิตดีขึ้น: จบปัญหา Python บวม ด้วย UV

ทำไม UV ถึงเร็วกว่า Pip หลายเท่า? เรียนรู้วิธีใช้ UV แทน pip, pyenv, venv พร้อมเทคนิคตั้งค่าให้ AI Assistant เข้าใจ Workflow...

December 15, 2025
12 min
Read More
รีวิว Vector Database ตัวไหนเหมาะที่สุด
AI & Machine Learning

รีวิว Vector Database ตัวไหนเหมาะที่สุด

เปรียบเทียบ Milvus, ChromaDB, Qdrant, Pgvector จากประสบการณ์จริง พร้อมคำแนะนำสำหรับ RAG ภาษาไทยและต้นทุนแฝงที่ต้องรู้...

December 20, 2025
10 min
Read More
ลดความเสี่ยงโดนแฮก! วิธีใช้ OSV.dev ทำ Vulnerability Scanner และ Patching จบในที่เดียว
Security

ลดความเสี่ยงโดนแฮก! วิธีใช้ OSV.dev ทำ Vulnerability Scanner และ Patching จบในที่เดียว

เรียนรู้การใช้ OSV-Scanner จาก Google สแกนหาช่องโหว่ในโปรเจกต์ Node.js, Docker Image และตรวจสอบ License ได้ฟรี แม่นยำกว่า npm audit...

August 5, 2025
18 min
Read More