โพสต์

กำลังแสดงโพสต์จาก มกราคม, 2010

Case Study โปรแกรม ERP: Paranoid System

รูปภาพ
ลบ  ไม่ลบ..  แก้  ไม่แก้... ใครเป็นคนแก้... แก้อะไรไปบ้าง...  แก้ตอนไหน ทำไมไม่ยอมบอก... และที่น่ากลัวที่สุดคือ ถ้าคนทำถูกหมด ดังนั้นโปรแกรมผิดแน่นอน !! ถ้าโปรแกรมผิดจริงๆ ก็เป็นเรื่องดี จะได้แก้ไข แต่ถ้าโปรแกรมดันทำงานถูก ปัญหานี้ก็จะค้างคาใจผู้ใช้ไปตลอดการ แถมนักพัฒนายังต้องมานั่งหา bug ที่ไม่มีวันหาเจออีก

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


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

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

Case Study โปรแกรม ERP : ความกังวลเรื่องชื่อกับเวลา

รูปภาพ
ลูกค้าที่จ่ายเงินแพงมักคาดหวังมากกว่าเสมอ ดังนั้นผู้พัฒนาระบบ ERP สำหรับองค์กรขนาดใหญ่ ย่อมต้องคิดมากกว่าองค์กรขนาดเล็ก หลังจากผมลองผิดลองถูกกับบริษัทลูกค้ามาพักใหญ่ :p ทำให้จับได้หลายจุดที่คิดว่า "ถ้าเป็นโปรแกรมสำหรับบริษัทขนาดเล็กหรือกลาง ผมไม่มีทางทำแบบนี้แน่ๆ" และเมื่อผมต้องทำโปรแกรม ERP อีกครั้งอาจจะลืมสิ่งเหล่านี้ไปแล้วก็ได้ อย่ากระนั้นเลย บันทึกไว้ซะหน่อย

กรณีศึกษาแรกคือเรื่องของการเปลี่ยนชื่อ, ที่อยู่ หรือข้อมูลในเอกสาร

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

ภาพตัวอย่างเมื่อลูกค้า Orange เปลี่ยนชื่อเป็น True
ในภาพเมื่อลูกค้าย้อนกลับมาพิมพ์เอกสาร หรือกลับมาตรวจค้นเอกสาร โดยนำกระดาษมาเป็นตัวสืบค้น ลูกค้าจะเกิดความสับสนทันทีว่าอะไรคือค่าที่ถูกต้อง เอกสารในมือลูกค้าเขียนว่า "Orange" แต่ในโปรแกรมกลับแสดงคำว่า "True" ความไม่เท่ากันเกิดจากความผิดพลาดของโปรแกรม หรือเกิดจากการกรอกข้อมูลที่…

นโยบายก็ต้องการ Usability

หลังจากอ่านบทความ "ประสบการณ์สร้างความสมานฉันท์ ของประเทศแอฟริกาใต้ในโครงการ Mont Fleur Scenario" ที่แสดงอยู่ในเว็บ SIU ทำให้ความรู้สึกเก่าๆ ย้อนกลับมา

ในบทความคณะรัฐบาลใช้ พฤติกรรมของสัตว์ 4 ประเภท แทนภาพอนาคตทั้ง 4 แบบ เพื่อให้ความรู้กับประชาชน

ในเว็บไซต์กล่าวว่า

นกกระจอกเทศมุดหัวลงในพื้นทราย (Ostrich) – เป็นอนาคตแบบที่ทุกฝ่ายไม่ต้องการการเจรจา ต่างคนต่างปกป้องผลประโยชน์ของกลุ่มตนเองเหมือนกับพฤติกรรมของนกกระจอกเทศ ที่เอาหัวมุดลงไปในดินไม่สนใจภาวะแวดล้อมที่เกิดขึ้นข้างนอกเป็ดง่อย (Lame Duck) – อนาคตแบบนี้ ทุกกลุ่มต่างเริ่มหันหน้าเข้ามาคุยกัน เกิดรัฐบาลผสมหลายพรรคเกิดขึ้นแต่ด้วยเป็นรัฐบาลผสมทำให้ไม่มีเสถียรภาพ ตลอดจนไม่สามารถควบคุมกลุ่มต่างๆ ทำให้วิกฤตทางการเมืองอิคารัส (Icarus) – อนาคตแบบนี้คือรัฐบาลผิวดำได้รับชัยชนะในช่วงแรก แต่ก็ต้องออกนโยบายประชานิยมขึ้นเพื่อให้ได้รับเสียงสนับสนุนจากกลุ่มต่างๆ ให้รัฐบาลอยู่ต่อไปได้ นโยบายประชานิยมเหล่านี้จะก่อให้เกิดปัญหาขาดดุลงบประมาณจำนวนมาก จนวิกฤตทางเศรษฐกิจ และปัญหาสังคมตามมา เปรียบเสมือนวีรบุรุษอิคารัสในเทพนิยายกรีก ที่มีปีกเป็นขี้…

Firebug ออก version 1.5 แล้ว

รูปภาพ
วินาทีนี้ที่ยังใช้ Firefox อยู่ก็เพราะเจ้า Firebug นี่ล่ะครับ วันนี้version 1.5 สามารถ Download ได้แล้วครับ เลยเอามาประกาศให้ทราบโดยทั่วกัน



สำหรับผม สิ่งที่ชอบที่สุดใน version นี้ ไม่ใช่ Feature ที่เพิ่มขึ้น อย่าง Break on Next หรือการรองรับ SVG, Math ML แต่ผมถูกใจความเร็วที่เพิ่มขึ้นแบบสุดๆ เมื่อก่อนตอนเลื่อน mouse เพื่อทำ inspect แทบจะต้องรอเป็นวินาที จนต้องหันมาใช้การ คลิกขวา>inspect แทน

แต่ตอนนี้เมื่อกดปุ่ม inspect แล้วเลื่อน mouse ไปบนหน้าจอ การ inspect จะเกิดขึ้นแบบ real time ประทับใจสุดๆ ครับ

ใครยังไม่ได้ใช้ก็หามาแทนตัวเก่าได้แล้วนะครับ

จุดประกายโดย Firebug Release note

ไม่มีทางลัด

เมื่อวานนี้ได้ยินคนคุยกันว่า "ปล่อยให้เค้าจบๆ ไปเถอะอย่างไปตัดอนาคตเค้าเลย" ทำให้เกิดความคิดค้างอยู่ในหัว นานจนถึงเช้า

ผมคิดว่าตอนนี้มีคนมากมายที่มีความคิดฝังหัวแบบง่ายๆ ว่า

"มีเงิน" = "เรียนจบ"

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

"มีเงิน: มีงาน" = "เรียนจบ: มีความรู้"

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

การหาทางลัดไม่ได้มีเฉพาะเรื่องเรียน แต่มันซึมไปทุกเรื่อง เช่น

"เท่" = "มีรถขับ"

คนจึงพยายามแก้สมการนี้ด้วยวิธีลัด

"เท่: หาเงินได้" = "มีรถขับ: ขอตังพ่อแม่"
"เท่: หาเงินได้" = "มีรถขับ: ขโมยมา"

แต่ถ้าอยากเท่จริง สมการนี้ควรสมบูรณ์ด้วย

"เท่: หาเงินได้" = "มีรถขับ: หาเงินได้"

ปัญหานี้วนอยู่ในหัวผมนานมาก สุดท่้ายก็ได้แนวทางแก้ปัญหาออกมาแบบนี้

ทางออกของสังคมคือ การทำลายความ…

วิวัฒนาการของที่ขั้นหนังสือ

รูปภาพ
ของบางอย่าง อยู่ยังไงก็อยู่แบบนั้น ไม่ค่อยมีวิวัฒนาการให้เราเห็น ที่ขั้นหนังสือ ก็เป็นอย่างหนึ่งที่ไม่มีพัฒนาการเลย จนกระทั้งสิ่งนี้ออกมา


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

ของเค้าเท่จริง แต่ผมว่ามันยังใช้ยากอยู่ โดยเฉพาะกับคนที่อ่านๆ หยุดๆ แบบผม คงต้องพัฒนาอีกหน่อยให้ดึงเข้าดึงออกง่ายๆ

จุดประกายโดย swiss-miss

Google App สำหรับ Google Nexus

รูปภาพ
หลังจากดู Video หน้าตาของ Gmail บน Google Nexus เป็นครั้งแรก ที่ผานมาได้ดูแต่รูป ไม่รู้สึกเท่าไหร พอได้เห็นภาพเคลื่อนไหว ทำให้ผมรัก Web OS ของ Palm มากขึ้น



ประทับใจที่ Google แปลง Gmail มาลงมือถือได้ครบถ้วน แต่ถ้าพยายามมองหาข้อเสีย คงมีหลักๆ สองข้อครับ

1. Google ไม่ได้นำ widget พื้นฐานของตัวเองมาใช้ เช่น ปุ่ม reply, Start หรือ การสร้าง layer ของ E-mail ควรจะใช้ตัวเดียวกับ google reader จะทำให้นักพัฒนาสามารถเลียนแบบ Google ได้ง่ายขึ้น ไม่ต้องสร้างรูปแบบการแสดงผลของตัวเองขึ้นมาใหม่ ซึ่งเป็นเหตุให้โปรแกรมบน Android ขาดความสม่ำเสมอ(consistency)

ทางแก้ 1:เปิด API ส่วนของการสร้าง widget แบบ e-mail ออกมา แล้วส่งเสริม หรือนำไปใช้ในหลายๆ App ของ Android
ทางแก้ 2: พยายามสร้าง widget ของส่วนที่เป็น web กับส่วนที่เป็น app ให้เหมือนกัน

2. การเก็บรายละเอียด ไม่รู้ต้องโทษทีม browser หรือทีมออกแบบ Application แต่ส่วนพื้นฐานของ Android ไม่ได้เก็บรายละเอียด (โดยเฉพาะถ้าเทียบกับ iPhone) เช่น


แถบสีควรสมมาตรกัน โดยมีสิ่งที่ผู้ใช้คิดว่าตัวเองกดอยู่ตรงกลาง

ทางแก้เก็บรายละเอียดของ widget พื้นฐานครับ พอพื้นฐาน…