Event Storming กับคนแคระทั้งเจ็ด ตอนที่ 1

Posted on:February 26, 2026

หากเปรียบ Event Storming เป็นนิทานเรื่องหนึ่ง บทเกริ่นนำคงจะเป็นการกล่าวถึง 3 ดินแดนสำคัญของจุดเริ่มต้นการเดินทางในครั้งนี้ ดินแดนเหล่านั้นได้แก่ Big Picture Level, Process Level และ Design Level

นิทานเรื่องนี้จะมีทั้งหมด 2 ตอน ครอบคลุมเนื้อเรื่องเกี่ยวกับ Big Picture Level และ Process Level ส่วนดินแดน Design Level อยากให้ทุกคนรอติดตามผ่านตอนพิเศษที่ชื่อว่า “How to Implement Modular Monolith”

Case Study

ในบทความนี้จะเล่าผ่านมุมมองของ 2 เรื่องราวที่แตกต่างกันโดยสิ้นเชิง ฝั่งซ้ายสุดคือ โลกของเวทมนตร์ ความรักและจุมพิต ผ่านมุมมองของสโนว์ไวท์กับคนแคระทั้งเจ็ด ฝั่งขวาสุดคือ โลกของ Software Development ที่กำลังพัฒนาระบบที่ชื่อว่า Gym Management

Event Storming

“กาลครั้งหนึ่งนานมาแล้ว มีเจ้าหญิงรูปโฉมงดงามน่ารักนามว่า สโนว์ไวท์ เธออาศัยอยู่ในปราสาทกับพระราชินี แม่เลี้ยงของเธอ”

นิทานหลาย ๆ เรื่องมักจะเริ่มต้นด้วยคำว่า “กาลครั้งหนึ่งนานมาแล้ว” เป็นส่วนเกริ่นนำเรื่อง บอกเล่าภูมิหลัง พาเราไปทำความรู้จักกับตัวละครต่าง ๆ กว่าสโนว์ไวท์จะได้พบเจ้าชายก็ต้องผ่านเรื่องราวมากมาย

เช่นเดียวกัน ก่อนทุกคนจะได้ข้อสรุปว่า Event Storming คืออะไร ก็ต้องไปรู้จักกับส่วนประกอบต่าง ๆ ของนิทานเรื่องนี้กันก่อน

Big Picture Level

ณ ดินแดน Big Picture Level

ดินแดน Big Picture Level คือส่วนเริ่มต้นของการทำ Event Storming Workshop โดยที่ใน Level นี้ เราจะให้ความสำคัญกับภาพรวม กระบวนการและวิธีที่เราทำธุรกิจอยู่ในปัจจุบัน เรื่องราวทั้งหมดจะถูกร้อยเรียงตั้งแต่จุดเริ่มต้น ไหลไปเรื่อย ๆ ผ่าน Post-it สีต่าง ๆ เราจะได้เห็นว่า ใคร แผนกอะไร รับผิดชอบส่วนไหน เห็นส่วนประกอบทั้งมุมมอง External และ Internal System กระบวนการนี้จะทำให้ทุกคนเห็นภาพตรงกันว่า Business เราทำงานและทำเงินอย่างไร

The starting point of the Big Picture workshop

Events

หากใครเคยทำ Workshop ของ Event Storming มักจะคุ้นเคยกับคำว่า “ให้ทุกคนเขียน Events ลงบน Post-it สีส้ม”

คำว่า Event แปลเป็นภาษาไทยคือคำว่า “เหตุการณ์” ซึ่งมีความหมายถึง เรื่องที่เกิดขึ้นไปแล้ว เช่น ราชินีเกิดความริษยา, สโนว์ไวท์กินแอปเปิ้ลพิษ หรือ เจ้าชายจูบสโนว์ไวท์ เรื่องราวเหล่านี้คือ เหตุการณ์ที่เกิดขึ้นไปแล้ว

An example of a business event

ในโลกของ Event Storming คำว่า Event มีไว้เพื่อ Represent ถึง Business Event ไม่ใช่ Technical Event

หากสมมุติว่าเรากำลังพัฒนาระบบ Gym Management ตัวอย่างของ Event ที่เกิดขึ้นได้ ก็จะเป็นประมาณ ร่างข้อเสนอขึ้นมาแล้ว หรือ เซ็นสัญญาแล้ว หากยึดตามหลัก Grammar ในภาษาอังกฤษ การเขียน Event คือเรื่องที่เกิดขึ้นและจบลงแล้วในอดีต เราเลยต้องเขียนให้อยู่ในรูปของ Past Tense หากเขียน Events เมื่อสักครู่ตามหลัก Grammar จะได้ Offer prepared และ Contract signed

สโนว์ไวท์: ทำไมต้องเริ่มด้วย Events? คนแคระทั้งเจ็ด: Events คือการเล่าเรื่องราวในธุรกิจว่าเกิดอะไรขึ้น เป็นภาษากลางที่ช่วยให้ Business, Developer, Designer ไปจนถึง Domain Experts สามารถเข้าใจตรงกันได้ง่ายกว่าการคุยเรื่อง Database หรือ Code มาดูตัวอย่างของ Events จากระบบ Gym Management

Results of brainstorming during the Big Picture workshop

**กิจกรรม: **จาก List ของ Events ด้านบน ลอง Comment มาหน่อยว่า Events ไหนบ้าง ที่เป็น Technical Event

สโนว์ไวท์: “ทำไมต้องใช้ Post-it?” คนแคระทั้งเจ็ด: “ในระหว่าง Workshop เราจะ Discuss เพื่อสร้าง Shared Understanding ข้อดีของ Post-it คือสามารถดึง ขยับซ้าย ขวา ขึ้น ลง ได้สะดวก”

Hot Spot

Event Storming เป็นเครื่องมือที่ช่วยให้เราเห็นได้ทั้ง “แนวกว้าง” ตั้งแต่จุดเริ่มถึงจุดสิ้นสุดของระบบ หรือเราจะใช้เจาะลึกเป็น “แนวดิ่ง” ไล่ดูว่าจาก Event ใบที่เราสนใจมี Business Rules หรือใครยุ่งเกี่ยวกับกระบวนการนี้บ้าง ลงลึกได้ถึงระดับการเขียนโค้ดช่วยให้ Model ชื่อ Class หรือ Orchestration อยู่ที่ว่า ณ เวลานั้น เราให้ความสำคัญกับเรื่องอะไร

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

captionless image

Hot Spot นิยมใช้ Post-it สีสันจัดจ้านโดดเด่นสะดุดตา เพื่อให้เห็นชัดว่าตรงนี้มีคำถาม เป็นจุดที่ยังไม่ชัดเจน ให้กลับมาดูด้วยนะ ตัวอย่างของ Hot Spot ในระบบ Gym Management

captionless image

หากลองสังเกต Hot Spot ด้านบนจะเห็นว่าสำคัญทุกใบเลย!! ไม่ว่าจะเป็นการคุยกรณีการขอคืนเงินหากเกิดการยกเลิกกลางคัน หรือจะเป็นเรื่องโปรโมชันที่เปลี่ยนบ่อยแค่ไหน ในการทำ Workshop จริง ๆ เวลาเป็นสิ่งที่มีค่ามาก เราไม่สามารถลงรายละเอียดได้ครบทุกใบ การตั้งเป้าหมายให้ชัดเจนตั้งแต่เริ่ม Workshop เป็นสิ่งสำคัญ และ Hot Spot จะช่วยให้เราไม่เดินเข้าป่าในชุดบิกินี่

External System

“กระจกวิเศษ จงบอกข้าเถิด ใครงามเลิศในปฐพี?” และทุก ๆ ครั้งกระจกก็จะตอบว่า “ท่านนี่แหละ ไม่มีผู้ใดงดงามเกิน”

An example of an external system

External System มีไว้เพื่อ Represent แสดงถึงระบบภายนอกที่เชื่อมต่อกับเรา อาจเป็น Application หรือ Platform ของภายนอกองค์กร (เช่น ระบบ Payment Gateway อย่าง PayPal หรือ Stripe) โดยมักจะใช้ Post-it สีชมพู

นอกจากซอฟต์แวร์แล้ว External System ยังสามารถหมายถึงองค์กรภายนอก หรือแผนกอื่นในบริษัทที่ไม่ได้เข้าร่วมใน Workshop ครั้งนี้ได้ด้วย

กรัมปี้: “ทำไม External System ยังสามารถหมายถึงองค์กรภายนอกได้ด้วย?” สลีปปี้: “เดี๋ยวจะเล่าให้ฟังนะในดินแดน Process Level แต่ตอนนี้ไปดูตัวอย่างกันก่อน”

Show An Example

ด้านล่างคือจำนวน Events ทั้งหมดจากเรื่องราวของหญิงสาวที่กัดแอปเปิลและได้พบรักกับเจ้าชายบนหลังม้าสีขาว

snow white and the seven dwarfs

Timeline

Timeline คือการนำเอา Events ที่เกิดขึ้นใน Workshop มาเรียงลำดับต่อกันตามเวลาที่เกิดขึ้นจริง โดยจะเรียงจาก ซ้ายไปขวา หรือ จากขวามาซ้าย ก็ได้ แต่ผลลัพท์สุดท้ายจะเหมือนกัน คือ เราเห็น Events ทั้งหมดตั้งแต่จุดเริ่มต้นไปจนถึงจุดสิ้นสุด

Emerging Structure

ในนิทานหรือภาพยนตร์เปรียบจุด Climax คือจุดพีคของเรื่อง สำหรับ Event Storming แล้วความสนุกไม่ใช่การรอให้ถึงจุด Climax แต่เป็นการหาสิ่งที่เรียกว่า Lines of Demarcation of Responsibility

ในธุรกิจหนึ่ง ๆ ไม่ใช่หนึ่งคนที่ทำทุกอย่าง มักจะมีเส้นแบ่งความรับผิดชอบระหว่าง Actors, System, Departments หรือบลา ๆ แต่ ณ ตอนนี้ผมขอเรียกเส้นแบ่งตรงนี้ว่า Boundaries ก่อนแล้วกัน เส้นแบ่งตรงนี้มีความสำคัญมาก ๆ ใน Level ถัดไป แต่ก่อนอื่น มาดูเทคนิคที่ใช้ในการมองหา Boundaries กันก่อน ผมจะหยิบแค่ 2 เทคนิคที่ผมรู้จักคือ Pivotal Events และ Swimlanes

Pivotal Events

Pivotal Events หากเรานำ Event มาเรียงต่อกันเป็น Timeline มักจะมีจุดที่สะท้อนถึงการเปลี่ยนผ่านจากสถานะหนึ่งไปสู่อีกสถานะหนึ่ง

Highlight pivotal events to allow simpler sorting of what’s in between

Tips ในการสังเกต Pivotal Events ส่วนนี้เป็นแค่ Tips ในตำรา แต่ใน Workshop จริงต้องอาศัยพลังวัตรของ Facilitator และผู้เข้าร่วม

ตัวอย่างจาก Gym Case Study ให้สังเกตตัว “P” นั่นคือ Pivotal Events

Candidates for pivotal events in the modeled process

ความต้องการเบื้องต้นของระบบคือ การสร้างและโปรโมตข้อเสนอ (Offers), การทำสัญญา (Contracting), การออกบัตรผ่านเข้ายิม (Pass Registration), การจัดการบัตรหมดอายุหรือต่อสัญญาและการออกรายงานพื้นฐาน

Swimlanes

Pivotal Events เป็นวิธีที่ใช้ในการแบ่ง Timeline โดยใช้เทปกาวตัดเส้นเป็นแนวตั้ง เพื่อบอกว่าจบ Process หนึ่งแล้วและกำลังจะเริ่ม Process ถัดไป แต่ในธุรกิจจริง ๆ งานไม่ได้เรียงเป็นเส้นตรงแบบ A ไป B เสมอไป เพราะจะมีงานที่ทำแบบ Parallel Processes ควบคู่กันไปได้ ซึ่งเราสามารถใช้ Swimlanes มาแบ่งเป็นเส้นแนวนอนเพื่อแยกตาม Actor หรือแผนกที่รับผิดชอบ ซึ่งวิธีนี้จะช่วยให้เราอ่าน Flow ได้ง่ายขึ้นมาก

Horizontal swimlanes provide better readability, but they end up using a lot more space.

Swimlanes จะ Model ของได้ดีในกรณีที่เรามี Process ชัดเจนเพียงไม่กี่อย่างที่ทำไปพร้อมกันกับ Flow หลัก ดังนั้น เราควรหาเรียง Timeline และหา Pivotal Events ให้เสร็จก่อน แล้วจึงค่อยนำ Swimlanes มาใช้ในภายหลัง

Tips การแบ่ง Swimlanes ส่วนนี้เป็นแค่ Tips ในตำรา แต่ใน Workshop จริงต้องอาศัยพลังวัตรของ Facilitator และผู้เข้าร่วม

ในหนังสือยังมีเทคนิคอีก 2–3 หากใครสนใจลองไปตามอ่านเพิ่มที่ Introducing Event storming

ย้อนกลับไปตอนต้นของบทความ ผมได้เล่าเกี่ยวกับสีต่าง ๆ ของ Post-it และวัตถุประสงค์ในการใช้งาน หลังจากเรานำ Event มาเรียงบน Timeline และหา Lines of Demarcation of Responsibility แล้ว ขั้นตอนต่อไปเราสามารถเขียน External System หรือ Hot Spot สำหรับคำถาม, ปัญหา หรือจุดที่ยังไม่ชัดเจน แปะตาม Event ดังรูปด้านล่าง

Results of the Big Picture workshop

Next Step

หลังจากได้ข้อมูลที่จำเป็นจากดินแดน Big Picture Level แล้ว ก็ได้เวลาเตรียมตัวเก็บกระเป๋า โบกมือลาสโนไวท์กับคนแคระทั้งเจ็ด เพื่อออกเดินทางไปสู่ดินแดน Process Level ดินแดนที่จะพาเราไปลงลึกถึงโลกของ Actors, Read Model, Command และ Policy

Refs

References: