Hybrid ERP ตอน 3: ปัญหาของคำว่า "ยอดคงเหลือ"
- Sathit Jittanupat
- 3 ม.ค.
- ยาว 1 นาที
วันที่ผมเลิกถามว่า "ของเหลือเท่าไหร่" แล้วเริ่มถามว่า "ของอยู่ในสถานะอะไร"
หลังจากผมแยก IC ออกเป็น
Realtime stock
Daily stock
ระบบเริ่มนิ่งขึ้น
ผู้ใช้เริ่มเชื่อข้อมูลมากขึ้น
แต่ปัญหาหนึ่งยังคาใจผมอยู่

คำถามเดิมที่กลับมาในรูปแบบใหม่
ฝ่ายขายถามผมว่า
"ของตัวนี้ พร้อมขายไหม"
ผมเปิด realtime stock ดู
ตัวเลขบอกว่า "มี"
แต่คลังเดินไปดูของจริง
แล้วบอกว่า
"มันถูกจองไปแล้ว"
บัญชีเข้ามาเสริมว่า
"อันนี้ออก invoice แล้วนะ"
สามฝ่าย
สามคำตอบ
จากตัวเลขเดียวกัน
ตอนนั้นผมเริ่มรู้สึกว่า
ปัญหาไม่ใช่ realtime
และไม่ใช่เรื่องงวดบัญชีด้วย
ปัญหาคือ
เรากำลังถามคำถามผิด
ปัญหาของคำว่า "ยอดคงเหลือ"
คำว่า ยอดคงเหลือ ฟังดูเหมือนเป็นความจริง
แต่ในโลกจริง มันคือ การสรุปสถานะหลายอย่างให้เหลือคำเดียว
ของหนึ่งชิ้น
ในเวลาเดียวกัน
อาจเป็นได้ทั้ง
อยู่ในคลัง
ถูกจอง
รอส่ง
ขายแล้วทางบัญชี
หรือขายไม่ได้เพราะชำรุด
แต่ระบบ ERP ส่วนใหญ่
พยายามบังคับให้มันเลือกสถานะเดียว
และผมก็เคยทำแบบนั้น
จุดเปลี่ยน: ผมเลิก "คุมตัวเลข" แล้วหันมาคุม "การไหล"
สิ่งที่ผมเปลี่ยนมุมมองคือ
แทนที่จะคุม stock ด้วยยอด ผมเริ่มคุมมันด้วย flow
ผมออกแบบให้ transaction สินค้าเข้า–ออก
ไม่ได้แค่เพิ่มหรือลดจำนวน
แต่ต้องระบุ flow label ทุกครั้ง
flow ไม่ได้แปลว่า location
แต่แปลว่า
สินค้ากำลังอยู่ใน บทบาท อะไรของธุรกิจ
---
Realtime Stock Flow ที่มี "ภาษา"
แทนที่จะมี stock ก้อนเดียว
ผมแบ่งมันออกเป็นหลาย flow เช่น
บัญชี
รอส่ง
ชำรุด
จอง
WIP
แต่ละ flow
มียอดคงเหลือของตัวเอง
และถูกควบคุมด้วย transaction ที่ชัดเจน
ทันทีที่เกิดเหตุการณ์ทางธุรกิจ
ระบบจะไม่ถามว่า
"เพิ่มหรือลดกี่ชิ้น"
แต่ถามว่า
"ของกำลังไหลจาก flow ไหน ไป flow ไหน"
ตัวอย่างที่เปลี่ยนทุกอย่าง
วันที่ยืนยันยอดขาย
เมื่อมีการยืนยันคำสั่งขาย
ผมไม่ได้ลด stock ทันที
แต่สร้าง transaction
ตัดสต็อคด้วย flow "รอส่ง"
ของยังอยู่ในคลัง
แต่ สถานะทางธุรกิจ เปลี่ยนไปแล้ว
ฝ่ายขายเริ่มเห็นของที่ "ขายได้จริง"
ไม่ใช่แค่ "มีอยู่"
วันที่พบสินค้าชำรุด
พนักงานคลังสินค้า
สามารถบันทึกในระบบ
ตัดสต็อคด้วย flow "ชำรุด"
ช่วยให้ทุกคนรู้ว่ามีสินค้าชำรุดอยู่เท่าไร
วันที่จัดส่งสินค้า
วันที่มีการจัดส่ง
จะเกิด สอง transaction พร้อมกัน
1. บวกกลับ flow "รอส่ง" 2. ตัดสต็อค flow "บัญชี"
ไม่มี magic
ไม่มีการเดา
ไม่มีการ reconcile ย้อนหลัง
ทุกการเปลี่ยนแปลง
ถูกบันทึกเป็นการไหล
วันที่คำว่า "พร้อมขาย" มีความหมาย
เมื่อทุกอย่างเป็น flow
คำถามว่า ของพร้อมขายไหม
ไม่ต้องถกกันอีกต่อไป
ผมสามารถนิยามได้ชัดเจนว่า
ของที่พร้อมขาย เท่ากับ flow [ "บัญชี" หัก "รอส่ง" หัก "ชำรุด" หัก "จอง"]
ไม่มีตัวเลขลอย ๆ
ไม่มี logic ซ่อนใน report
ทุกคนเห็นสูตรเดียวกัน
แต่ใช้ในมุมของตัวเอง
สิ่งที่ผมได้เรียนรู้จาก flow label
ผมค้นพบว่า
flow label ไม่ได้ช่วยแค่เรื่อง stock
แต่มันช่วย
อธิบายเหตุผลของตัวเลข
ลดการเถียงข้ามฝ่าย
และทำให้ระบบ "พูดภาษาเดียวกับธุรกิจ"
สำคัญที่สุดคือ
มันทำให้ผม debug ความจริง ได้
เพราะผมไม่ต้องย้อนดูยอด
ผมย้อนดู การไหล
บทเรียนจากตอนนี้
ผมเลิกถามว่า
"ของควรเหลือเท่าไหร่"
แต่ถามว่า
"ของควรไหลไปทางไหน ตามเหตุการณ์นี้"
Realtime stock flow
ไม่ใช่แค่เร็ว
แต่มันต้อง มี semantics
ถ้าระบบไม่รู้ว่าของกำลัง ทำหน้าที่อะไร
ตัวเลขที่ได้
ก็จะเป็นแค่ตัวเลข
ตอนถัดไป
ตอนที่ 4: เมื่อผมเริ่มออกแบบ ERP จาก Event ไม่ใช่จาก Ledger
จากตรงนี้
ผมจะพาเข้าสู่แกน
Event-Driven ERP vs Traditional Ledger-Driven ERP
และเล่าว่าทำไม
การเริ่มจาก ledger
ทำให้ผมติดกับดักการออกแบบมานานแค่ไหน



ความคิดเห็น