ชื่อเป็นข้อมูลช่องแรกที่ทุกฟอร์มต้องขอ และเป็นช่องที่คนทำระบบมักคิดว่าตนเข้าใจดีที่สุด แต่พอระบบเปิดรับผู้ใช้จากทั่วโลก ความเข้าใจนั้นจะพังทันที เพราะการเรียงชื่อและนามสกุลไม่ได้เป็นแบบเดียวกันในทุกวัฒนธรรม บทความนี้จะพาคุณดูความหลากหลายเหล่านั้น พร้อมชี้จุดที่ระบบมักทำข้อมูลของผู้ใช้เสียหายโดยไม่รู้ตัว
ลำดับชื่อกับนามสกุลต่างกันตรงไหน?
ในหลายวัฒนธรรมในเอเชียตะวันออกรวมถึงในฮังการี การเขียนชื่อเต็มจะขึ้นด้วยนามสกุลก่อนแล้วตามด้วยชื่อตัว ซึ่งตรงข้ามกับธรรมเนียมที่ใช้ในยุโรปตะวันตกและอเมริกา ระบบที่สมมติว่าคำแรกคือชื่อตัวเสมอจึงสลับข้อมูลของผู้ใช้กลุ่มนี้ทันทีที่รับข้อมูล
ปัญหาจะร้ายแรงขึ้นเมื่อระบบนำชื่อไปใช้ต่อ เช่นการขึ้นต้นจดหมายด้วยคำนำหน้าบวกชื่อตัวตามที่ระบบเข้าใจ ผลคือจดหมายจะขึ้นต้นด้วยนามสกุลของผู้รับ ซึ่งอ่านแล้วผิดอย่างชัดเจนสำหรับเจ้าของภาษา
ทางแก้ที่ใช้ได้จริงคือเก็บชื่อตัวกับนามสกุลแยกกัน พร้อมกับเก็บลำดับที่ผู้ใช้ต้องการให้แสดงผลไว้เป็นอีกค่าหนึ่ง การให้ผู้ใช้เลือกเองว่าอยากให้พิมพ์ชื่อแบบใดช่วยลดความผิดพลาดนี้ได้มาก
มีคนที่ใช้ชื่อเดียวโดยไม่มีนามสกุลจริงหรือ?
มีจริง และไม่ใช่เรื่องหายาก ในหลายวัฒนธรรม ชื่อเดียวที่ได้รับมาตั้งแต่เกิดคือชื่อที่สมบูรณ์ในตัวเอง การบังคับให้เติมนามสกุลจึงเป็นการบังคับให้ผู้ใช้กรอกข้อมูลเท็จ
ระบบที่กำหนดให้ทั้งสองช่องเป็นช่องบังคับจะสร้างผลลัพธ์ที่แย่กว่าการไม่มีข้อมูล คือได้ข้อมูลที่ไม่จริงปนเข้าไปในฐานข้อมูล และผู้ใช้ก็เรียนรู้ว่าต้องกรอกซ้ำชื่อเดิมในช่องที่สองจึงจะผ่าน
อีกกลุ่มที่มักเจอปัญหาเดียวกันคือผู้ที่ชื่อในเอกสารมีเพียงชื่อเดียวเพราะเหตุทางทะเบียน ระบบที่ดีจึงควรยอมให้ช่องนามสกุลว่างได้ และไม่แสดงข้อความเตือนที่ทำให้ผู้ใช้รู้สึกว่าตนกรอกอะไรผิด ปัญหาลักษณะเดียวกันนี้เกิดกับวันเกิดด้วย เช่นผู้ใช้ที่เกิดวันที่ 29 กุมภาพันธ์ซึ่งระบบมักบังคับให้เลือกวันที่ไม่มีอยู่จริง ตามที่อธิบายไว้ในวันเกิดกับขอบเขตที่ระบบมักคำนวณผิด
ชื่อกลางและชื่อที่สืบทอดจากบิดาเป็นเรื่องเดียวกันไหม?
ไม่เหมือนกัน และการรวมสองแนวคิดนี้เข้าด้วยกันทำให้ข้อมูลเพี้ยน ชื่อกลางแบบที่ใช้ในหลายประเทศคือชื่อที่พ่อแม่ตั้งให้เพิ่มจากชื่อตัว ส่วนชื่อที่สืบทอดจากบิดาคือส่วนที่บอกว่าบุคคลนั้นเป็นบุตรของใคร และในบางวัฒนธรรมก็มีส่วนที่สืบทอดจากมารดาด้วย
ความต่างที่สำคัญคือชื่อที่สืบทอดจากบิดาไม่ใช่ชื่อที่ใช้เรียกขานในชีวิตประจำวัน บางวัฒนธรรมมีธรรมเนียมเรียกบุคคลด้วยชื่อบิดานำหน้าหรือนามสกุลตามหลัง การนำไปใส่ในช่องชื่อกลางจึงทำให้เอกสารราชการไม่ตรงกับตัวตนจริง
นอกจากนี้ยังมีกรณีของนามสกุลที่เกิดจากการรวมสองตระกูลเข้าด้วยกัน ซึ่งอาจเขียนติดกันโดยไม่มีเครื่องหมายใด หรือเขียนโดยมีเครื่องหมายขีดกลางคั่นกลาง ทั้งสองแบบเป็นนามสกุลเดียวที่สมบูรณ์ ไม่ใช่สองนามสกุลที่ระบบควรแยกออกจากกัน
การแปลงอักษรและเครื่องหมายเสริมสร้างปัญหาอะไร?
เมื่อชื่อจากอักษรหนึ่งต้องถูกเขียนด้วยอักษรละติน มีหลายวิธีที่ยอมรับได้และให้ผลลัพธ์ต่างกัน ผู้ใช้คนเดียวกันจึงอาจปรากฏในระบบด้วยตัวสะกดหลายแบบ ขึ้นอยู่กับว่าข้อมูลถูกนำเข้าจากเอกสารใด
ปัญหาที่ละเอียดกว่านั้นคือเรื่องการแทนอักขระที่มีเครื่องหมายเสริม อักขระตัวเดียวกันอาจถูกเก็บได้สองวิธี คือเก็บเป็นตัวอักษรรวมกับเครื่องหมายแยกกัน หรือเก็บเป็นอักขระตัวเดียวที่รวมไว้แล้ว ทั้งสองแบบมองด้วยตาจะเหมือนกันทุกประการ แต่เมื่อเทียบในระดับข้อมูลกลับไม่เท่ากัน
ถ้าระบบไม่ปรับชื่อให้เป็นรูปแบบมาตรฐานเดียวกันก่อนเปรียบเทียบ การค้นหาด้วยชื่อจะไม่เจอผู้ใช้ที่มีอยู่แล้ว และระบบจะสร้างบัญชีซ้ำให้คนคนเดียวกันได้
อีกจุดที่พลาดบ่อยคือการแปลงตัวพิมพ์เล็กตัวพิมพ์ใหญ่ ในบางภาษากฎการแปลงตัวพิมพ์ไม่ใช่การจับคู่ตัวต่อตัว แต่ขึ้นอยู่กับตำแหน่งของตัวอักษรในคำ การแปลงแบบง่ายจึงให้ผลผิดในบางภาษา
สำหรับนักพัฒนา: อย่าบังคับให้ชื่อทุกแบบลงในสองช่อง
ข้อแรกคือเพิ่มช่องสำหรับชื่อที่แสดงผลตามที่ผู้ใช้ต้องการ การเก็บช่องแยกไว้ใช้ประมวลผลและเก็บช่องแสดงผลไว้ใช้สื่อสารกับผู้ใช้ ช่วยลดข้อผิดพลาดเรื่องลำดับชื่อได้มาก
ข้อที่สองคือปรับชื่อให้เป็นรูปแบบมาตรฐานเดียวตั้งแต่ตอนรับข้อมูลเข้า และใช้การปรับแบบเดียวกันทุกที่ที่นำชื่อไปเปรียบเทียบ การปรับที่ไม่สม่ำเสมอจะสร้างปัญหาแบบเดียวกับที่ไม่ปรับเลย
ข้อที่สามคือระวังการตัดช่องว่างส่วนเกินออกกลางชื่อ เพราะในบางวัฒนธรรมช่องว่างเป็นส่วนหนึ่งของชื่อจริง และการตัดทิ้งจะเปลี่ยนความหมาย
ข้อที่สี่คือเลือกค่าสูงสุดของความยาวจากข้อมูลจริงที่ยาวที่สุดที่คุณเคยพบ แล้วเผื่อเพิ่มอีกเป็นเท่าตัว ชื่อที่มีหลายส่วนรวมกันยาวกว่าที่คนส่วนใหญ่คาดคิดเสมอ
ข้อที่ห้าคือทดสอบด้วยชื่อที่มีเครื่องหมายเสริม ชื่อที่ขึ้นด้วยนามสกุล ชื่อที่ไม่มีนามสกุล และชื่อที่เขียนด้วยอักษรที่ไม่ใช่ละติน สี่กรณีนี้คือชุดที่จับข้อบกพร่องด้านชื่อได้ครบที่สุด
สี่กรณีที่ควรมีในชุดทดสอบชื่อ:
- ชื่อที่มีเครื่องหมายเสริม
- ชื่อที่ขึ้นด้วยนามสกุล
- ชื่อที่ไม่มีนามสกุล
- ชื่อที่เขียนด้วยอักษรที่ไม่ใช่ละติน
ก้าวต่อไป
กลับไปดูฐานข้อมูลของคุณว่ามีช่องนามสกุลที่ยอมให้ว่างหรือไม่ ถ้ายังบังคับอยู่ ทุกวันนี้คุณอาจกำลังเก็บข้อมูลเท็จปนอยู่ในระบบโดยไม่รู้ตัว
เมื่อต้องเตรียมชุดตัวอย่างสำหรับทดสอบชื่อหลายวัฒนธรรม เครื่องมือสร้างข้อมูลตัวตนของเว็บไซต์นี้สร้างชื่อตามประเทศที่เลือกไว้ พร้อมข้อมูลช่องอื่นที่สอดคล้องกัน และถ้าคุณอยากเห็นว่าช่องต่าง ๆ ผูกกันอย่างไร อ่านต่อได้ที่ความสอดคล้องของช่องข้อมูลตัวตน หรือดูตัวอย่างของหน้าประเทศญี่ปุ่นเพื่อเทียบกับประเทศที่เขียนชื่อแบบอื่น
ข้อมูลทุกชุดที่กล่าวถึงในบทความนี้เป็นข้อมูลที่สังเคราะห์ขึ้น ไม่ตรงกับบุคคลหรือชื่อจริงใด และใช้ได้เฉพาะกับงานทดสอบซอฟต์แวร์เท่านั้น