Comparative Thinking กับโปรแกรมเมอร์

 

??เคยเป็นกันไหม โปรแกรมทดสอบแล้วอย่างดี วานก่อนยังใช้งานได้ พอมาวันนี้เกิด error ทั้งๆ ที่เราไม่ได้ทำอะไร
:
??พอ?#โปรแกรมเมอร์?มาดูผลงานตัวเอง
ก็คงเกาหัวด้วยความงุนงง
พร้อมส่ายหน้าอุทานในใจ
.
‘วานก่อนยังใช้งานได้ดีเลย
อยู่ๆ ทำไมวันนี้เป็นยังงี้ได้’
:
ปัญญาแบบนี้ถ้าลงมือวิเคราะห์โค้ด ไล่ดีบั๊ก
ดูเหมือนเป็นการงมเข็มในมหาสมุทร
:
คำถาม ถ้าเราไม่นั่งไล่โค้ดดู
มีวิธีหาสาเหตุของปัญหา ด้วยวิธีอื่นอีกไหม?
คำตอบ ก็พอมีอยู่
:
??โดยใช้วิธีคิดเชิงเปรียบเทียบ (Comparative Thinking)
ซึ่งวิธีคิดแบบนี้ไม่ใช่เรื่องใหม่แต่อย่างใด
หลายคนคงเคยทำบ่อยๆ โดยไม่รู้ตัว
แต่วันนี้จะลองแนะนำให้ดูแล้วกัน
:
??เริ่มจากเราต้องเทียบ 2 เหตุการณ์
ในวันที่โปรแกรมเราใช้ได้ปกติ
กับวันนี้ที่เกิด eror หรือเกิดปัญหา
ว่า 2 วันนี้มีจุดไหนที่แตกต่างกันบ้าง?
ก็ไล่รายการออกมาเลยครับ
:
เช่น
ก) ลืมไหว้เจ้าที่ เลยเจอสิ่งเร้นลับลงโทษ
ข) วันนี้ฝนตก ฟ้าผ่า พายุเข้า
ค) เพิ่งทะเลาะกับยูสเซอร์ เลยเจอเขาวางยา
ง) ยูสเซอร์คนเมื่อวาน หน้าตาดีกว่าวันนี้
จ) เปลี่ยนไฟล์คอนฟิกต่อ Database
ฉ) วันนี้ Internet ล่ม
ช) ฝั่ง backend มีการ update อะไรบ้างอย่าง
ซ) เพิ่มฟีเจอร์ใหม่ (ยังไม่ได้ deploy)
ฌ) แก้บักในเครื่องตัวเอง ยังไม่ได้กด commit เลย
ญ) ยูสเซอร์ย้ายโต๊ะทำงาน เลยต่อสายอุปกรณ์ใหม่ด้วยตัวเอง
:
จากนั้นเอารายการพวกนี้ มาวิเคราะห์เบื้องต้น
แล้วตัดข้อที่เป็นไปไม่ได้ออกไปให้หมด
ให้เหลือข้อที่น่าเป็นไปได้มากสุด
:
เช่น อาจตัดเหลือแค่ 4 ข้อ ได้แก่
จ) เปลี่ยนไฟล์คอนฟิกต่อ Database
ฉ) วันนี้ Internet ล่ม
ช) ฝั่ง backend มีการ update อะไรบ้างอย่าง
ญ) ยูสเซอร์ย้ายโต๊ะทำงาน เลยต่อสายอุปกรณ์ใหม่ด้วยตัวเอง
:
ขั้นต่อมาก็พิสูจน์สมติฐานที่เราคิดไว้ ว่าใช้ต้นเหตุของปัญหาหรือเปล่า?
ข้อ จ) ตรวจสอบไฟล์คอนฟิกทุกอย่างตั้งถูกหรือไม่
ปรากฏว่าถูกต้องทุกอย่าง โปรแกรมเราก็ยัง error ก็ไปทดสอบข้อถัดไป
.
ข้อ ฉ) รอให้ Internet กลับมาใช้ได้ตามปกติ
ปรากฏว่าโปรแกรมเราก็ยัง error ก็ไปทดสอบข้อถัดไป
.
ข้อ ช) เช็กการเชื่อมต่อกับฝั่ง backend
ปรากฏว่าทุกอย่างปกติดี แต่โปรแกรมเรายัง error ก็ไปทดสอบข้อถัดไป
:
เหลือข้อสุดท้าย ญ) ปรากฏว่าผู้ใช้เสียบปลั๊กผิดสลับสาย
พอเราเสียบใหม่ โปรแกรมก็ทำงานตามปกติ
??แล้วเราก็กลายเป็นเทพในสายตา user ทันที
:
นี้คือตัวอย่างของการหาสาเหตุของปัญหาง่ายๆ
โดยไม่ต้องไล่ดูโค้ด ไม่ต้องดีบั๊กให้เสียเวลา
เพราะบางทีปัญหาอาจไม่ได้เกิดที่โค้ดเราก็ได้
ทำให้วิเคราะห์หาสาเหตุได้ตรงจุด
.
สุดท้ายหวังว่าแนวคิด Comparative Thinking
จะเป็นประโยชน์ต่อทุกท่านครับ

 

?เขียนโดยแอดมินโฮ โอน้อยออก

Please like Fanpage