ผมเรียนรู้อะไรจากการเขียนโปรแกรมใช้เอง (5) - usability


ในยุคปลายที่ DOS ครองโลก ผมเคยเขียนโปรแกรมเก็บข้อมูลผลการลงทะเบียนรายวิชา ของนักศึกษาที่ตัวเองดูแลอยู่ ตอนนั้นไม่ได้นึกสนใจ DBase เพราะคิดว่าไม่คุ้มที่จะหัดใหม่ เขียนโดยใช้ภาษาเบสิกล้วน ๆ

ตอนนั้นคิดรองรับเรื่องความยืดหยุ่น แยกโครงสร้างต่าง ๆ ถอดไปเก็บไว้ในรูปแบบ configuration file หมด ให้โปรแกรมเรียนรู้จาก configuration file อีกทีว่าจะทำตัวยังไง

เขียนอยู่ 2 เดือนเห็นจะได้ ด้วยภาษา Basic รุ่นใหม่ที่หน้าตาคล้าย VB ยุคนี้ (แต่ไม่มี object ให้ใช้)

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

สมัยนี้ ปัญหาเดิมก็ยังอยู่

แม้ผมสามารถ download เกรดนักศึกษาที่ผมดูแลมาจากฐานข้อมูลของมหาวิทยาลัยได้ในรูปแบบ text file แต่ผมก็ยังรู้สึกเสียดายว่า ถ้าผมจะนำข้อมูลนั้นมาใช้ต่อ ก็ยังต้องเหนื่อยอีกมาก

คือถ้าเอามาใช้โดยตรง ผมก็ต้องคัดลอกมือใหม่หมด

หรือโดยอ้อม เช่น เขียนโปรแกรมเอง แต่ถ้าเจอ unstructured text file ผมก็คิดหนัก ถ้าต้องเขียนโปรแกรมยาว ๆ เพื่อสร้างระบบที่ใช้ได้แต่ตัวเอง ทำไปทำไม ? ทำให้คนอื่นใช้ งานต้องยุ่งยากคูณสิบเท่า สรุปแล้ว ทำมือคุ้มกว่า

ลองนึกดูนะครับ หากผมสามารถ download structured text file มาเข้าฐานข้อมูลตรง ผมสามารถ crosstab ดูได้เลยว่า มีใครลงทะเบียนต่างจากเพื่อน แล้วค่อยเจาะลึกตรวจสอบอย่างละเอียดอีกต่อ ก็จะทำให้การดูแลการลงทะเบียนทำง่ายขึ้น

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

บทเรียนที่ผมได้ก็คือ

Usability สำคัญกว่าความฉลาดของโปรแกรม !

มีตัวอย่างมากมายใน web ที่ยืนยันความข้อนี้

มี webpage มากมาย ที่แวบแรกที่เห็น เราจะรู้เลยว่าโปรแกรมเมอร์ฉลาดอัจฉริยะ แต่ผู้ใช้เข้าไปเยี่ยมเพียงครั้งเดียว แล้วสาปส่งไปตลอดชีวิต

  • สาปส่งเพราะใช้ยาก
  • สาปส่งเพราะดูยาก
  • สาปส่งเพราะหน้า web แฟ้มใหญ่มโหฬาร (ผมเคยต้องค้นข้อมูลสำหรับใช้อ้างอิง ต้องนั่งรอ load อยู่ราวครึ่งชั่วโมง สำหรับหน้าเว็บเดียว)
  • สาปส่งเพราะทำงานช้า
  • สาปส่งเพราะเวียนหัวลูกเล่นที่มากเกินงาม

ในมุมกลับ webpage ที่ดูง่าย ๆ ราวกับเด็กประถมออกแบบ เช่นกูเกิล ในหน้านั้นไม่มีอะไรเลย ไม่มีสคริปต์ แฟ้มก็กะจิดริด

แต่ลองนึกถึงข้อเท็จจริงว่าผู้ก่อตั้งกูเกิลรวยมหาศาลในทุกวันนี้ ก็ใช้แต่หน้า webpage กระจอก ๆ นั้นอยู่แบบเดียว ส่วนโปรแกรมเมอร์ที่ขียนโปรแกรมหน้า web อัจฉริยะเหล่านั้นก็ยังโนเนมเหมือนเดิม

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

แต่เมื่อเกี่ยวข้องกับผู้ใช้ ความฉลาดต้องพับเก็บไว้ก่อน เพราะมีเรื่องอื่นที่สำคัญกว่า และต้องมาก่อน นั่นคือการเข้าใจผู้ใช้ การมองเห็นในมุมมองของผู้ใช้

พูดง่าย แต่ทำยาก 

มีอีกตัวอย่างหนึ่ง

ผมเคยช่วยเขียน user defined function ใน Excel ให้บุคลากรในคณะที่ต้องใช้ทำงานประจำบางอย่าง ที่ผมดู ๆ แล้ว ถ้าใช้ function หยั่งว่า..เอ๊ย..อย่างที่ว่า จะทุ่นแรงมากในการบันทึกข้อมูลการประชุมวิชาการ ตาม session ย่อย เพื่อคำนวณเวลาสำหรับคิดหน่วยกิตบรรยาย

  •   8:30-  9:15 บรรยายเรื่อง "...."
  •   9:30-10:00 บรรยายเรื่อง "...."   
  • 10:15-10:55 บรรยายเรื่อง "...."   
  • 11:05-11:45 บรรยายเรื่อง "...."

สิ่งที่ผมทำ คือสร้างและสอนเขาเรียกใช้ฟังก์ชันทำนองนี้

=SmartHour(A5) เมื่อ A5 คือเซลล์ที่มีข้อความเวลา เช่น "8:30-9:15,9:30-10:45"

ก็จะส่งค่ากลับมาเป็น 2 (หน่วยชั่วโมง) มาให้ ทำให้ไม่ต้องมานั่งคำนวณเวลาให้วุ่นวายอีก 

โปรแกรมแบบนี้ เขียนเดี๋ยวเดียวก็เสร็จ  จนลืมไปแล้วว่าตัวเองเคยเขียน

ปรากฎว่า life cycle ของโปรแกรมนี้ยาวมากผิดคาด เพราะแม้ระบบปฏิบัติการจะเปลี่ยนไปยังไง ผมก็ยังต้องตาม support ย้าย platform ให้อยู่ตลอด

ผมเจอกรณีแบบนี้บ่อย โปรแกรมที่เขียนตามใจผู้ใช้ บางทีเขียนแบบง่าย ๆ แต่เขาใช้นานจนเราตกใจเมื่อรู้ว่าเขายังใช้โปรแกรมรุ่นโบราณนั้นอยู่ แต่โปรแกรมเขียนตามใจตัวเอง ไม่แน่ว่าใช้ครั้งเดียวก็ต้องทิ้ง

บทเรียนที่ผมได้ก็คือ

Usability คือสิ่งที่ช่วยให้คนทำงานกับข้อมูล ทำงานได้ง่ายขึ้น ไม่ใช่ทำงานได้ยากขึ้น และไม่มีอะไรเกี่ยวข้องกับความอัจฉริยะในการออกแบบโปรแกรมเลยแม้แต่น้อย

 

คำสำคัญ (Tags): #programming
หมายเลขบันทึก: 94075เขียนเมื่อ 3 พฤษภาคม 2007 14:14 น. ()แก้ไขเมื่อ 31 พฤษภาคม 2012 09:43 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (4)

อ่านแล้วให้ได้ความคิดจริงๆ ครับ

ขอบคุณท่านอาจารย์
P

จารุวัจน์ ครับ ที่แวะมาทักทาย 

เห็นอย่างยิ่งครับ...ในฐานะเป็นคนเขียนโปรแกรมด้วย

ยิ่งง่ายยิ่งยาก ง่ายสำหรับคนใช้ แต่ยากสำหรับคนเขียน แต่ค่าแรงทำไมมันน้อยแสนน้อยสำหรับบ้านเรา เรียกว่ายิ่งง่าย ยิ่งราคาถูก.....ว่าไหมครับ? แต่ด้วยความรักในเทคโนโลยี วันนี้ก็ยังคงต้องทำต่อไปครับ

สวัสดีครับ คุณสติ

  • ผู้ใช้งาน อาจยังไม่คุ้นกับการจ้างพัฒนาโปรแกรม
  • ขอให้กำลังใจสู้ต่อนะครับ
พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท