top of page
ค้นหา

Hybrid ERP ตอน 5: Architecture ที่อยู่กึ่งกลาง

  • รูปภาพนักเขียน: Sathit Jittanupat
    Sathit Jittanupat
  • 13 นาทีที่ผ่านมา
  • ยาว 1 นาที

Hybrid ERP Architecture: อยู่กึ่งกลางอย่างมีสติ


---


หลังจากผมขยับแนวคิดของ ERP จาก

Ledger → Event

คำถามถัดมาที่ผมโดนถามบ่อยมากคือ

"แล้วผู้ใช้จะเห็น event ยังไง"

เพราะในโลกของสถาปัตยกรรม

event อาจเป็น message

อาจเป็น log

อาจเป็น stream


แต่ในโลกของผู้ใช้ ERP

event มีชื่อเรียกที่ชัดเจนกว่านั้นมาก



สำหรับผู้ใช้ ERP, Event คือ "เอกสาร"


ผมไม่เคยบอกผู้ใช้ว่า

"คุณกำลังสร้าง event"

สิ่งที่พวกเขาเห็นคือ

เอกสาร

  • ใบสั่งขาย

  • ใบจัดสินค้า

  • ใบส่งของ

  • ใบรับคืน

  • ใบปรับปรุง


แต่เบื้องหลัง

เอกสารเหล่านี้คือ


บันทึกเหตุการณ์ทางธุรกิจ ที่เกิดขึ้นจริงในขั้นตอนนั้น


เล่มเอกสาร = ขอบเขตของความรับผิดชอบ


สิ่งหนึ่งที่ผมตั้งใจออกแบบมากคือ

แนวคิดเรื่อง เล่มเอกสาร

หรือที่หลายคนเรียกว่า หมวดบิล


แต่สำหรับผม

เล่มเอกสารไม่ใช่แค่การจัดเลขรัน


มันคือ

การกำหนดว่า ใครมีสิทธิ์บันทึก "เหตุการณ์ประเภทไหน"

  • เล่มยืนยันขาย → ฝ่ายขาย

  • เล่มจัดส่ง → คลัง

  • เล่มรับของ → จัดซื้อ

  • เล่มบันทึกบัญชี → การเงิน


แต่ละเล่ม

คือ event type

ที่ถูกบันทึกโดยเจ้าของกระบวนการนั้นจริง ๆ



Document Flow คือ Event Flow ที่มนุษย์อ่านออก


จุดที่ทำให้ระบบของผมเริ่ม "พูดภาษาองค์กร" ได้

คือการออกแบบให้

เอกสารอ้างถึงเอกสารได้


  • ใบจัดส่ง อ้างถึง ใบยืนยันขาย

  • ใบรับคืน อ้างถึง ใบส่งของ

  • ใบปรับปรุง อ้างถึง เหตุการณ์ก่อนหน้า


ทันทีที่เอกสารเชื่อมกัน

สิ่งที่เกิดขึ้นคือ


ร่องรอยของเหตุการณ์ถูกเก็บครบ โดยไม่ต้องเดา

ผู้ใช้เห็นเป็น

document flow


แต่ผมเห็นเป็น

event graph



ทำไมเอกสารในระบบผม "ละเอียดกว่า" เอกสารบัญชี


ระบบบัญชีแบบดั้งเดิม

ออกแบบเอกสารเพื่อ

สรุปผล

แต่ระบบ ERP ที่ผมสร้าง

ออกแบบเอกสารเพื่อ

บันทึกขั้นตอน

นั่นทำให้

  • มีเอกสารมากขึ้น

  • แต่แต่ละเอกสารเล็กลง

  • และชัดเจนว่า "เกิดอะไรขึ้น"


บัญชีอาจสนใจแค่

ส่งของแล้ว → ลงรายได้

แต่ธุรกิจจริงสนใจว่า

  • ใครจัด

  • จัดเมื่อไหร่

  • จัดครบไหม

  • ค้างอะไรไว้


Hybrid Architecture ของผม

จึงยอมให้มีเอกสาร

ที่ไม่จำเป็นต่อบัญชี

แต่จำเป็นต่อความเข้าใจธุรกิจ



Hybrid ไม่ใช่ทางสายกลาง แต่คือการแบ่งบทบาท


ผมไม่ได้เลือก

Event-Driven 100%

และไม่ได้กลับไป Ledger-Driven


ผมเลือกแบบนี้แทน


  • Event / Document

    ใช้บันทึก "ความจริงที่เกิดขึ้น"


  • Ledger / Daily Stock

    ใช้สรุป "ความจริงในมุมที่ต้องการความนิ่ง"


ทั้งสองอ่านข้อมูลจากชุดเดียวกัน

แต่ไม่มีใครพยายามแทนที่กัน



เหตุผลที่ผมไม่สุดโต่ง


ผมเคยคิดจะทำ ERP แบบ event ล้วน

ไม่มีงวด

ไม่มีปิดบัญชี


แต่ผมทำงานกับโลกจริง

ที่ต้อง

  • ปิดงบ

  • ตรวจสอบย้อนหลัง

  • อธิบายกับ auditor


Hybrid จึงไม่ใช่ทางเลือกที่ "สวย"

แต่มันคือทางเลือกที่ "อยู่ได้"



สถาปัตยกรรมที่ผมเชื่อในวันนี้


ERP ที่ดี

ไม่ควรบังคับให้

  • ผู้ใช้คิดแบบบัญชี

  • หรือบัญชีต้องตามแก้สิ่งที่หน้างานทำ


มันควรยอมรับว่า

ความจริงของธุรกิจ มีหลายจังหวะเวลา และหลายมุมมอง

เอกสารคือ event

event คือความจริง

ledger คือเรื่องเล่าที่ถูกสรุปแล้ว



บทเรียนจากตอนนี้


วันที่ผมเลิกถามว่า

"เอกสารนี้จะลงบัญชีอะไร"


แต่ถามว่า

"เอกสารนี้บันทึกเหตุการณ์อะไร"


ERP ของผม

เริ่มนิ่ง

และผู้ใช้เริ่มเข้าใจมันจริง ๆ



ตอนถัดไป

ตอนที่ 6: Design Pattern สำหรับ Hybrid ERP - สิ่งที่ผมใช้จริง และสิ่งที่ผมเลี่ยง


ผมจะเริ่มสรุปเป็น pattern ชัด ๆ

  • Document-as-Event

  • Flow-based Stock

  • Read Model แยกจาก Write Model

  • และกับดักที่ผมเคยพลาดมาแล้ว


 
 
 

ความคิดเห็น


Post: Blog2_Post
  • Facebook

©2020 by Scraft On Cloud. Proudly created with Wix.com

bottom of page