Common Sense ของวิชาชีพ

ขายไหมพรมอย่างนี้ดีที่สุดหละนะ …

(ส่วนหนึ่งของ email ที่ส่งถึงคนเขียนโปรแกรมที่แนะนำไปให้เพื่อนรุ่นน้อง ตอนนี้รู้สึกอายที่แนะนำมันไป -“-)

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

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

5) ถ้าคิดว่า requirement ไม่ขัดเจน ข้อมูลยังไม่ครบ ต้องตามจากลูกค้า อย่าคาดหวังว่าลูกค้าจะจำได้ว่ามีหน้าที่ต้องส่งข้อมูลให้

6) บางเรื่องควรใช้ common sense เช่น เอกสารต่าง ๆ ต้องมีรหัสเอกสารอยู่แล้ว (ตามที่อ้างว่า เพิ่งรู้ว่าเอกสารต้องมีรหัส เลยต้องรื้อระบบใหม่หมด) ถ้าลูกค้าไม่ได้บอกก็ต้องถามหาตั้งแต่แรกรับ requirement หรือ การเก็บที่อยู่ ควรเก็บแยกรายละเอียด ตำบล อำเภอ จังหวัด ฯลฯ เป็นปกติอยู่แล้ว การแยกเก็บรายละเอียดไม่ได้ทำให้เขียนยากขึ้น เรื่องอย่างนี้ไม่จำเป็นต้องให้ลูกค้าตัดสินใจ ถ้าฉุกคิดเรื่องเล็ก ๆ อย่างนี้ ก็จะลดปัญหาที่เรียกว่า “เปลี่ยน/เพิ่ม requirement” ได้หลายข้อ

7) โปรแกรมควรช่วยให้ผู้ใช้ทำงานง่ายและสะดวกขึ้น เช่น ไม่ควรต้องให้ลูกค้าพิมพ์ข้อมูลที่ใช้ซ้ำหลายครั้ง (ชื่อบริษัท) หรือข้อมูลที่เกี่ยวเนื่องกัน (ชื่อโครงการ) โปรแกรมควรมีความสามารถแสดงตัวเลือกให้อัตโนมัติอยู่แล้ว จะเป็น dropdown, listbox หรือ  autocomplete ก็แล้วแต่ นี่ก็ถือว่าเป็น common sense

ลูกค้าไม่แสดงความไม่พอใจ ไม่ใช่เพราะลูกค้าไม่มีปัญหา แต่ลูกค้าเกรงใจคนที่แนะนำ … ตรงนี้เคลียร์นะ