Hawaii Missile Alert Incident —ผิดคลิ๊กเดียวสะเทือนทั้งฮาวาย

เมื่อเวลา 8.07 น. ของวันเสาร์ที่ 13 ม.ค. ตามเวลาท้องถิ่นของฮาวาย (ราว 1.07 น. ของวันอาทิตย์ที่ 14 ม.ค. ตามเวลาในประเทศไทย) มีข้อความเตือนภัยถูกส่งไปยังโทรศัพท์มือถือของประชาชน รวมทั้งสถานีโทรทัศน์และวิทยุต่าง ๆ ซึ่งพากันออกอากาศแจ้งเตือนภัยต่อกันไปในวงกว้าง

ข้อความดังกล่าวระบุว่า “ขีปนาวุธกำลังมุ่งหน้ามาสู่ฮาวาย หากท่านอยู่กลางแจ้งให้รีบหาที่หลบภัยในอาคาร อยู่ให้ห่างจากหน้าต่าง หากขับรถอยู่ให้รีบจอดข้างทาง หาที่หลบภัยที่ใกล้ที่สุดและนอนราบลงกับพื้น เราจะแจ้งให้ท่านทราบอีกครั้งเมื่อภัยสิ้นสุดลง นี่ไม่ใช่การซ้อม”

แน่หล่ะ ข้อความนี้สร้างความตื่นตระหนกและปั่นป่วนวุ่นวายไปทั่วหมู่เกาะ ก่อนที่ทางการจะออกมาแจ้งว่าเป็นความผิดพลาดของเจ้าหน้าที่ซึ่งบังเอิญไปกดปุ่มเตือนภัยทั้งที่ไม่มีเหตุร้ายใด ๆ เกิดขึ้น (ที่มาของข่าว — BBC Thai)

และเมื่อลงรายละเอียดอีกนิด Washington Post ระบุถึงเหตุการความผิดพลาดนี้ว่า

เมื่อเวลาประมาณ 8:05 น. ตามเวลาท้องถิ่นฮาวาย เจ้าหน้าที่ได้เริ่มการทดสอบภายในตามกำหนดการของรัฐ เจ้าหน้าที่เห็นสองตัวเลือกจากเมนู drop-downในโปรแกรมคอมพิวเตอร์ . “Test missile alert” และ “Missile alert” จริงๆเจ้าหน้าที่ท่านนี้ต้องเลือกตัวเลือกแรก แต่ก็เป็นดังที่คนทั้งโลกรู้กันตอนนี้… เค้าเลือกตัวเลือกที่สอง และมันก็เป็นการเริ่มการแจ้งเตือนขีปนาวุธของจริง (ที่มาของข่าว — Washington Post, ที่มาของรูป — Quartz)


นับว่าเป็นความผิดพลาดทางซอฟท์แวร์ครั้งใหญ่ครั้งหนึ่ง โดยเริ่มจากเรื่องเล็กๆของการออกแบบเมนู จนส่งผลกระทบรุนแรงใหญ่โต และถ้ามองในมุมของคุณภาพซอฟท์แวร์ นี่เป็นตัวอย่างในเรื่องที่ว่าคุณภาพของซอฟท์แวร์ไม่ได้หมายถึงบั๊ก หรือซอฟท์แวร์ที่ไม่ตรงตาม requirement แต่มันยังครอบคลุมเรื่องของความเหมาะสมกับการใช้งานด้วย ดังนั้นเราพูดได้ว่าเรื่องของUX UI นี่ก็ถือเป็นส่วนหนึ่งของคุณภาพซอฟท์แวร์ด้วยเช่นกัน


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

QA เราสามารถมีส่วนร่วมในการท้าทายและร่วมกันคิดกับนักออกแบบและนักพัฒนา ให้ทุกคนเข้าใจตรงกันถึงผลกระทบของสิ่งที่กำลังทำอยู่ เพื่อออกแบบและพัฒนาซอฟท์แวร์ที่มีคุณภาพดีที่ทำให้ผู้ใช้เกิดความผิดพลาดได้น้อยที่สุด ดีกว่าการที่ไม่คำนึงถึงสิ่งเหล่านี้แล้วต้องมาเจอปัญหาและตามแก้ทีหลัง — Build the best system over breaking the system, One of Agile Testing Manifesto.

อีกหนึ่งตัวอย่างของการทำให้ผู้ใช้ผิดพลาดได้ยากขึ้น คือเราต้องผ่านการคลิ๊กยืนยันสองครั้งและการพิมพ์ตัวอักษรตามที่กำหนด ถ้าเราจะลบเว็บของเราใน WordPress