เห็นรูปใน time line เรื่อง Bug fixing Ways
เลยนำมาสรุปและ share นิดหน่อย
คำถามคือ
ปัจจุบันในการพัฒนา software นั้น
เมื่อเจอ bug แล้วเราทำการแก้ไขอย่างไรบ้าง ?

ปกติขั้นตอนการแก้ไข bug มักจะประกอบไปด้วย

  • เวลาในการเจอ
  • เวลาในการมบันทึก
  • เวลาในการแจ้ง
  • เวลาคุยปัญหา
  • เวลาไปหาปัญหา นั่นคือ ไป debug 
  • เวลาทำความเข้าใจการทำงานส่วนงานนั้น ๆ หรือ code ส่วนนั้น ๆ
  • เวลาในการแก้ไข แน่นอนว่า ต้องทดสอบด้วย
  • เวลาในการ deploy เพื่อดูว่าทำงานได้ถูกต้องหรือไม่ จากนั้นก็เข้าสู่พอธีกรรมขึ้น production server
  • วัดผลการทำงานจริง ๆ เช่น monitoring ดูซะ

นี่คือสิ่งที่ต้องทำหรือไม่นะ ?

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

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

กลับมาที่รูปขำ ๆ เป็นแนวทางที่เรา ๆ ทำกันอยู่ไหม  ?

และมันดีไหมนะ ?

  • ไปหาข้อมูลจาก log file จำนวนมากและมีขนาดใหญ่ ( tail และ grep กันไหม)
  • สาย debug ก็ทำการใส่ breaking point ไว้เพียบ แล้ว debug กันไปเรื่อย ๆ
  • สายค้นหา แล้วก็ไปเจอวิธีแก้ไขจาก stackoverflow จากนั้นก็ copy มาใส่เลย แก้ได้แล้ว จบ !!
  • เรียกใหม่ซะว่า Not a bug, it’s a feature !!

แสดงดังรูป

https://www.monkeyuser.com/2019/bug-fixing-ways/

ปัจจุบันเรามีวิธีหรือขั้นตอนการแก้ไข bug อย่างไรกันบ้างนะ ?
อีกอย่างเรื่อง bug vs defect vs incident มันต่างกันอย่างไรนะ ?