ตัวอย่างการออกแบบโปรแกรมที่....ช่างดีเสียเหลือเกิน
posted on 05 Mar 2008 13:46 by ninkungz in News-Talk
ไม่ได้เขียนซะหลายวัน ไม่ใช่เพราะอะไรหรอก ผมมีงานด่วนที่ต้องช่วยแม่ทำ งานอะไรน่ะเหรอ? อ่านต่อไปสิ...
เมื่อวานผมต้องกลับไปโรงเรียนเก่า เพราะต้องช่วยแม่ที่เป็นครูสอนอยู่ที่นั่นจัดการเรื่องคะแนน เนื่องจากเมื่อปีที่แล้วทางโรงเรียนได้รับอาจารย์ฝ่ายวิชาการเข้ามาใหม่ และ... มาพร้อมนโยบายใหม่ (อารมณ์เดียวกับตอนเราได้รัฐบาลใหม่งั้นแหล่ะ) นั่นก็คือ ให้ครูทำกรอกคะแนนด้วยโปรแกรมคอมพิวเตอร์ซะ!!
ใคร ๆ ก็คงคิดว่า ใช้โปรแกรมช่วยแบบนี้สะดวกจริง ๆ ไม่ต้องมานั่งเขียน นั่งบวกคะแนนกันเอง ไม่ต้องกลัวบวกผิด แค่กรอก ๆ ๆ ๆ แล้วสั่งปริ๊น เราก็จะได้ใบคะแนนพร้อมเย็บเล่ม ส่งไปให้ฝ่ายวิชาการ แล้วก็เป็นอันจบเทอมไป...
แต่ในความเป็นจริงแล้ว... มันยิ่งเลวร้ายกว่าเดิมซะอีก..
เมื่อนรกกับสวรรค์อยู่ห่างกันแค่ไม่กี่พิกเซล..
เริ่มอธิบายตรงไหนดีล่ะ? เอ้า! ดูภาพ
นี่คือมุมหนึ่งของหน้าจอนึงของโปรแกรมกรอกคะแนนที่ว่า... ปุ่ม 4 ปุ่มนั่น จากซ้ายไปขวาคือ..
- ปุ่มรวมคะแนน - ใช้กดเพื่อรวมคะแนน เมื่อกดจะมีคำเตือนให้เซฟงานหลังจากนี้ด้วย
- ปุ่มปริศนา - ดูหน้าตาแล้ว ท่านคิดว่าปุ่มอะไร นึกคำตอบไว้ เดี๋ยวกลับมาพูดถึงมันอีกที
- ปุ่มบันทึก - ใช้กดเพื่อบันทึกข้อมูลที่หลังขดหลังแข็งกรอกเข้าไปทั้งหมด ลืมกดไม่ได้เลยนะ
- ปุ่มออก - กดเพื่อออกไง
ในการกรอกคะแนน เราจะใช้แค่ 3 ปุ่มเท่านั้น หลังจากกรอกเสร็จก็ต้องกด ปุ่มรวมคะแนน ตามด้วย ปุ่มบันทึก สุดท้ายก็กด ปุ่มออก เพื่อออกไปเลือกห้องอื่นหรือกรอกส่วนอื่น ๆ ต่อ
แล้ว... ปุ่มปริศนา ในข้อ 2 มันทำหน้าที่อะไร ดูหน้าตาแล้ว บ้างก็คงคิดว่าเป็นปุ่ม Redo (ทำหน้าที่ตรงข้ามกับ Undo) หรือบางท่านอาจจะคิดว่า ปุ่ม Refresh ล่ะมั้งนั่น ผิด ผิด ผิด ๆ ๆ ๆ ๆ ๆ ๆ ผิดหมด!! มันคือ... ปุ่ม "ทำใหม่" เอ๋? ก็ Redo ไม่ใช่เหรอ? ไม่ใช่ครับ ปุ่มนี้เมื่อกดแล้วข้อมูลที่กรอกทั้งหมดจะกลับไปเป็นเหมือนตอนยังไม่ได้กรอก หรืออาจเรียกชื่อเต็ม ๆ ได้ว่า "ปุ่มกลับไปเริ่มทำใหม่ตั้งแต่ต้น" ถ้าให้เข้าใจด้วยภาษาอังกฤษง่าย ๆ ก็ Reset นั่นเองงงง
แล้วทำไมต้องเอาไว้ข้างปุ่มบันทึก ซ้ำยังอยู่ติดกันซะด้วย! นี่กะจะฆ่ากันใช่มั้ย!!! ยัง ยังไม่พอครับ ปุ่มออกก็แสบพอกัน เพราะเมื่อกดแล้วมันก็ออกไปจากหน้ากรอกข้อมูลทันทีโดยไม่ถามว่า "งานยังไม่ได้เซฟจะเซฟก่อนมั้ย" หรือถ้าผู้พัฒนาโปรแกรมนี้หาวิธีตรวจสอบความเปลี่ยนแปลงไม่ได้ละก็ ทำไมไม่ขึ้นมาเตือนแบบตอนกดปุ่มรวมคะแนน? เออ... อันนี้ต้องไปถามเขาเองนะ
มองโลกในแง่ดี... คนพัฒนาโปรแกรมเขาคงคิดว่า "เวลากรอกคะแนน ต้องมีสติ" ละมั้ง
ความทรงจำนรก กับบันทึกเวลาเรียน
ส่วนต่อไปนี้ได้รับการรับรองจากผู้ประสบเคราะห์กรรมส่วนใหญ่แล้วว่า "เหนื่อยยากที่สุด" มันคือส่วนของการกรอกวันขาดวันลาของเหล่านักเกรียน เอ้ย นักเรียนนี่เอง มันลำบากตรงไหนน่ะหรือ? ขั้นตอนมันก็มีดังนี้..
- คลิกเลือกชื่อนักเรียนที่ต้องการกรอกวัดขาดหรือลา (ต้องรอโหลดสักพักด้วย)
- คลิกรูปนาฬิกาเพื่อเปิดหน้าต่างเลือกวันที่
- คลิกเลือกปี
- คลิกเลือกเดือน
- คลิกเลือกวัน
- คลิกปิดหน้าต่างเลือกวันที่เพื่อตกลงเลือกวัน
- คลิกปุ่มบันทึกเพื่อบันทึกเวลาลงไป
- ทำซ้ำข้อ 2 - 7 เพื่อกรอกวันขาด หรือ ลา ถัดไปของนักเรียนคนเดิม
- ทำซ้ำข้อ 1 - 8 เพื่อกรอกของคนต่อไป
ถ้าโชคดี นักเรียนหยุดวันเดียว และเดือนกับปีตรงกับคนที่แล้ว (โปรแกรมมันจะจำวันที่เลือกล่าสุดไว้) ยังต้องคลิกตั้ง 3 - 4 ที ซึ่งในความเป็นจริงแล้ว เมื่อกรอกคนต่อไปเราก็ต้องกดย้อนเวลาไปต้นเทอมใหม่ เทอม 1 ยังพอว่ากดเลือกเดือนเพิ่มมาอย่างเดียว แต่เทอม 2 มันข้ามปี ก็เลยมีกดเลือกปีเพิ่มมาด้วย ซ้ำยังต้องรอโหลดในขั้นตอนแรก (ถ้าไม่รออาจจะกรอกผิดคนได้) คิดเอาละกันว่าถ้าหยุดกันเยอะ ๆ หลาย ๆ วัน มันแสนสาหัสขนาดไหน
จริง ๆ ยังมีอีกอย่างน่าหงุดหงิดกับไอ้เจ้าหน้าต่างกรอกวันที่นี้ นั่นก็คือ... เวลาคลิกเรียกมันขึ้นมา มันจะไม่โผล่ใต้ช่องหรือใต้ปุ่มที่เรากดครับ มันจะโดดมาโผล่ตรงกลางจอ เสียเวลาเลื่อนเม้าส์ไปอีก แถมไม่มีการจำตำแหน่งไว้ด้วย (ในภาพเลื่อนมาใกล้ ๆ แล้วเพื่อง่ายแก่การถ่ายทำ)
จริง ๆ แล้วระยะเวลาใน 1 เทอม ยังไงมันก็ไม่เกิน 6 เดือนอยู่แล้ว ทำไมถึงไม่แสดงทีละ 6 เดือนเลยก็ไม่รู้ แบบนี้น่ะ (ใช้คอนโทรลใน VB ทำเลียนแบบขึ้นมา)
จริง ๆ แล้วผู้พัฒนาเขาให้เราสามารถพิมพ์วันเดือนปีด้วยคีย์บอร์ดได้ด้วย และวิธีนี้สะดวกกว่ามาก แต่มันยากแก่การตรวจสอบว่าวันที่กรอกไปผิดพลาดมั้ย (เช่นบางทีไปกรอกวันที่ตรงกับวันอาทิตย์เข้า)
โปรแกรมชิดซ้าย เมื่อเจอระบบ...
จากหัวข้อที่แล้ว หลายคนอาจคิดว่า "ทำไมมากรอกทีเดียวล่ะ ทำไมไม่ทยอยกรอกตั้งแต่ต้นเทอม" เพราะว่ากว่าจะได้มากรอกมันก็สัปดาห์สุดท้ายก่อนส่งคะแนนพอดีน่ะสิ!!
เพราะครูไม่สามารถสร้างรายชื่อนักเรียนในโปรแกรมได้ ต้องรอฐานข้อมูลรายชื่อนักเรียนจากฝ่ายวิชาการอีกที ซึ่งกว่าจะได้ก็ล่วงเลยไปปลายเทอมแล้ว ซ้ำพอได้มาวิชาดันผิด บางคนก็ได้ล่าช้ากว่าคนอื่น ซ้ำก่อนวันส่งคะแนนยังมีอุปสรรคอีก
ช่วงก่อนส่งคะแนนไม่กี่วันนี้ ครูหลายคนต้องไปคุมสอบ O-NET และก่อนวันส่ง 1 วันยังมีการประชุมครู (ไม่รู้ของกระทรวงรึเปล่า) ซึ่งทำให้เสียเวลาไป 1 วันเต็ม ๆ
วันส่งวันสุดท้าย ครูทั้งโรงเรียนจะมานั่งง่วนหน้าคอมพิวเตอร์ ครูหลายคนไม่เคยชินกับการใช้คอมพ์ก็งก ๆ เงิ่น ๆ ค่อย ๆ เลื่อนเม้าส์ช้า ๆ คลิกอย่างยากลำบาก ครูบางคนก็โชคดี ได้ลูกหลานมาช่วยกรอก (ถ้ากระทรวงฯ สั่งห้ามนะ ได้เห็นดีกัน!!) บางรายก็โชคร้ายกรอกผิดที่ ซ้ำข้อมูลที่กรอกไปแล้วยังเคลื่อนย้ายไปที่อื่นไม่ได้ (Copy > Paste ไม่ได้เลย) ต้องกรอกใหม่ทั้งหมด
ส่วนตัวคิดว่าโปรแกรมที่เกี่ยวกับเรื่องทั่ว ๆ ไป ที่ให้คนที่ค่อนข้างจะทั่วไปใช้ น่าจะออกแบบให้ใช้ง่ายกว่านี้ และ ระบบป้องกันความผิดพลาดในการกรอกข้อมูลและการสูญหายก็น่าจะดีกว่านี้ โปรแกรมวุ่นวายแบบนี้ ผมว่าให้ไปกรอกลง Excel แล้วให้ Import เข้ามาได้ ดีกว่าเป็นไหน ๆ (ผมจะได้สร้างเครื่องช่วยได้ด้วย)
เป็นครูยุคไอทีช่างลำบากจริง ๆ
ป.ล. เคยมีคนใช้เน็ตของกระทรวงศึกษาฯ เข้ามาอ่านบล็อกผมด้วยนะ (จะโดนเจอรึเปล่าหว่า
)


#1 By sio หมีน้อยพรรคมาร on 2008-03-05 15:11