ห่าง หายไปนาน เดี๋ยวจะคิดว่า series Master Data Management จบไปเสียแล้ว ยังครับ ยังไม่ได้เริ่มเลยด้วยซ้ำ แต่ก่อนจะเริ่มพูดถึง MDM ระดับทั่วทั้งองค์กร ลองมามองถึงปัญหาที่เกิดขึ้น เนื่องจากคุณภาพของข้อมูลอ้างอิงกันก่อน เริ่มกันที่ระบบงานคอมพิวเตอร์เพียงระบบเดียวนี่แหละ เพื่อให้เห็นภาพชัดเจนขึ้น ผมยกตัวอย่างว่า เรากำลังจะออกแบบและพัฒนาระบบลูกค้าสัมพันธ์ของร้านเช่าวีดีโอ (หรือน่าจะเป็น VCD/DVD แล้วสมัยนี้) แห่งหนึ่งในต่างจังหวัด ถ้าจะเรียกให้หรูหน่อยอาจจะเป็น CRM (Customer Relationship Management) ย่อยๆ ก็คงพอได้ ประมาณว่าเจ้าของกิจการรุ่นลูก เพิ่งจบ MBA มาหมาดๆ อยากทำแคมเปญการตลาดกระตุ้นยอดเช่าของลูกค้ารายเดิมๆ ก็อยากได้ระบบไอทีที่เก็บข้อมูลการติดต่อกับลูกค้าแต่ละรายไว้ อาทิเช่น ชื่อที่อยู่หมายเลขโทรศัพท์ รายการหนังที่เคยเช่าไป หรือรายการหนังค้างส่ง เป็นต้น เพื่อจะปรับกิจกรรมทางการตลาดได้

คราว นี้ลองสมมติว่า ถ้าข้อมูลอ้างอิงเกี่ยวกับลูกค้า (เอาแค่ลูกค้าอย่างเดียวก่อน) เกิดมีคุณภาพต่ำ อาทิเช่น ลูกค้าคนเดียว แต่เกิดมีรหัสลูกค้าสองหมายเลข หรือชื่อนามสกุล สะกดผิด ที่อยู่ หมายเลขโทรศัพท์ผิดพลาด เป็นต้น จะเกิดผลเสียอย่างไรบ้าง อย่างแรกเลยคือ ลูกค้าเสียความรู้สึก ถ้า คุณได้รับจดหมาย ที่ส่งมาถึงคุณ แต่สะกดชื่อหรือนามสกุลผิด หรือได้รับจดหมายเรื่องเดียวกัน จากบริษัทเดียวกัน ส่งมา 3-4 ฉบับ แน่นอนว่าคุณคงไม่ประทับใจเป็นแน่ แล้วแถมถ้าพวกแคมเปญการตลาดทั้งหลายที่พยายามจะทำ เกิดได้ข้อมูลผิดๆ มา จะยิ่งส่งผลเสียต่อความรู้สึกของลูกค้าเข้าไปใหญ่ (ไม่เคยเช่าหนังเรื่องนี้นี่นา ทำไมส่งจดหมายหรือโทรมาทวงหนังค้างส่งอยู่ได้ หรือ ในชีวิตนี้ไม่เคยชอบดูหนังผีเลย แต่กลับได้คูปองเช่าเขย่าขวัญ 2 แถม สยองขวัญ 1 มาได้ยังไงเนี่ย) พวกเมล์ขยะที่เราๆ รังเกียจกัน ก็เกิดจากการพยายามทำ CRM โดยไม่มีข้อมูลที่ดีพอนั่นเอง

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

ผมมองว่าปัญหาเกี่ยวกับคุณภาพของข้อมูลอ้างอิง แบ่งได้เป็นสามส่วน และมีความเกี่ยวโยงกัน ดังนี้

1. ขาดการกำหนดมาตรฐานและนิยามข้อมูลอ้างอิงที่ชัดเจน
อัน นี้เป็นข้อแรกที่เห็นบ่อยที่สุด โดยเฉพาะอย่างยิ่ง กิจการขนาดเล็กหรือระบบงานขนาดเล็ก ที่อาจจะมองข้ามความสำคัญของมาตรฐานข้อมูลไป การถามคำถามเหล่านี้ในระหว่างการรวบรวม requirement หรือการวิเคราะห์ระบบ อาจจะช่วยให้ผู้ใช้ระบบให้ความสำคัญกับมาตรฐานข้อมูลได้ (จากตัวอย่าง)

  • รหัสหรือหมายเลขลูกค้าหนึ่งรายการ แทนอะไรในโลกแห่งความเป็นจริง บุคคลหนึ่งคน หรือหนึ่งครอบครัว
  • แล้วถ้าจะมีนิติบุคคลมาสมัครเป็นลูกค้าเพื่อเช่าหนัง จะได้ไหม ?
  • จะใช้ข้อมูลใดเป็นดัชนีแยกความแตกต่างของลูกค้าแต่ละราย ? ชื่อ หมายเลขประจำตัวประชาชน หมายเลขโทรศัพท์ เลขที่บ้าน ?
  • แล้วถ้าลูกค้าเกิดเปลี่ยนชื่อละ จะถือเป็นลูกค้าอีกรายหนึ่งเลยหรือไม่ ?
  • จะจัดแบ่งลูกค้าเป็นกลุ่มหรือเป็นหมวดหมู่อย่างไร แบ่งเพื่ออะไร ใช้เกณฑ์อะไรในการแบ่ง เพศ อายุ การศึกษา รูปแบบการดูหนัง
  • รหัส ลูกค้า กำหนดอย่างไร เป็นตัวเลข หรือตัวอักษร (ภาษาไทยหรือภาษาอังกฤษ) มีจำนวนกี่หลัก เป็น intelligent code หรือเป็นแค่ running number ?


2. ขาดการกำหนดกฎเกณฑ์ทางธุรกิจในการจัดการกับข้อมูลอ้างอิง
กฎเกณฑ์ ทางธุรกิจ หรือ business rules จะเป็นอีกระดับขั้นหนึ่ง ซึ่งหลายๆ ระบบละเลยที่จะให้ความสำคัญ ต่อให้มีการกำหนดมาตรฐานและนิยามของข้อมูลอ้างอิงเอาไว้แล้ว แต่หากไม่ได้กำหนดกฎเกณฑ์ในการเข้าถึง เพิ่ม ลบ หรือแก้ไขข้อมูลอ้างอิง เอาไว้ให้รัดกุม ก็อาจส่งผลให้เกิดความเสียหายได้ ตัวอย่างเช่น

  • หาก ธนาคารไม่กำหนดกฎให้ต้องใช้บัตรประจำตัวประชาชนเป็นหลักฐานในการเปิดบัญชี ธนาคาร ก็อาจเป็นช่องทางในการสร้างบัญชีปลอม และใช้ในการฟอกเงินได้
  • หาก กิจการขายสินค้า ไม่กำหนดหลักเกณฑ์ในการอนุมัติเครดิต หรือวงเงินเครดิตที่แตกต่างกันไปตามประวัติการชำระเงินของลูกค้า ก็มีความเสี่ยงเพิ่มมากขึ้นด้านหนี้สูญ



3. ล้มเหลวในการนำมาตรฐาน นิยาม และกฎธุรกิจมาบังคับใช้ในระบบงานคอมพิวเตอร์
ต่อ ให้มีการกำหนดมาตรฐานและนิยามข้อมูล ตลอดจนกฎเกณฑ์ทางธุรกิจไว้แล้ว แต่หากไม่นำข้อกำหนดเหล่านั้นมา “บังคับใช้” ให้ผสานรวมเป็นส่วนหนึ่งในระบบงานคอมพิวเตอร์แล้ว ก็ย่อมเกิดความผิดพลาดเนื่องจาก human error ได้เสมอ ไม่ว่าจะด้วยความตั้งใจหรือไม่ก็ตาม ระบบงานคอมพิวเตอร์ที่ดี จึงควรนำข้อกำหนดที่ได้ระบุไว้ข้างต้น มาใส่ไว้เป็นส่วนหนึ่งของข้อกำหนดในการออกแบบระบบด้วย ไม่ว่าจะเป็นการตรวจสอบความสอดคล้องของข้อมูลด้วย referential integrity หรือ foreign key check การใช้ database trigger และ/หรือ cascade update-delete เพื่อบังคับใช้กฏทางธุรกิจให้เหมาะสม

ถ้า เราสามารถที่จะหลีกเลี่ยงปัญหาทั้งสามข้อนี้ไปได้ เราก็จะได้ระบบงานคอมพิวเตอร์ที่มีคุณภาพของข้อมูลอ้างอิงในระดับที่ดี ส่งผลให้ระบบสามารถตอบสนองความต้องการทางธุรกิจที่ได้วางไว้ได้