วันนี้เจอ Bug หรือข้อผิดพลาดในระบบงานที่ดูแล
จึงเกิดคำถามว่า ถ้าเราเจอ Bug กัน เราจะทำอย่างไรบ้าง ?

เมื่อเราเจอ Bug แล้ว จะทำอย่างไรบ้าง ?

สิ่งแรกอาจจะต้องดูว่า Bug นั้น
เจอช่วงไหนของขั้นตอนการพัฒนา
ถ้าเจอตอนที่เราพัฒนา ก็น่าจะแก้ไขเลย ถ้าเราเขียน 
แต่ถ้าเป็นของคนอื่นเขียนละ เราจะทำอย่างไร ?
แก้ไขเลย หรือ เดินไปบอกคนเขียน code ตรงนั้น ?

ถ้าเจอในขั้นตอนของ Tester/QA แล้ว
ต้องมีการเก็บลง bug tracker system ใช่ไหม
จากนั้นทำการ assign ไปให้กับทีมพัฒนาหรือ ไปให้หัวหน้าก่อนของทีมพัฒนาก่อน
แล้วจากนั้นหัวหน้าก็ assign ให้คนที่ดูแลอีก !!

ถ้าเจอในขั้นตอนของการ deploy บน production
ก็แก้ไขบน production เลยใช่ไหม ?
หรือกลับมาเริ่มต้นใหม่ คือ Dev -> Test -> UAT -> Prod
ดูชีวิตมันวุ่นวายดีนะ ใครทำอยู่บ้าง ?

วิธีการที่ทำอยู่บ่อย ๆ  ในช่วงของการพัฒนา Dev -> Test -UAT คือ

เมื่อเจอก็แก้ไขทันที คำว่าทันทีอาจจะไม่ถูกนัก แต่แก้ไขให้เร็วที่สุด
มีขั้นตอนดังนี้

  • Reproduce bug นั้นให้ได้ ว่าใช้ input อะไร process อะไร ได้ผลที่ผิดอย่างไร และผลที่ถูกคืออะไร
  • อย่าลืมเรื่องของ system configuration ของการ reproduce bug ว่าเป็นอย่างไร เพื่อให้ระบบมันเหมือนกันมากที่สุด
  • บันทึกการ reproduce bug ด้วยชุดการทดสอบใน level ต่าง ๆ ตาม bug นั้น ๆ
  • ลงไปในรายละเอียดของปัญหา ว่ามี root cause มาจากอะไรบ้าง ทั้งการ debug, history จาก version control, test case
  • บางปัญหาจำเป็นต้องมีแนวคิดตาม Architecture ของระบบด้วยว่าเป้นอย่างไร เพื่อไม่ให้ออกนอกลู่นอกทาง
  • จากนั้นสรุปปัญหา และวิธีการแก้ไข
  • ลงมือแก้ไข ทดสอบ สรุปผลการแก้ไข จากนั้นก็ deploy
  • อย่าลืมทำในขอบเขตของเวลาที่จำกัดด้วย เพื่อไม่ให้เราจมกับปัญหานานไป
  • ถ้าแก้ไขได้แล้ว สิ่งหนึ่งที่ต้องจำไว้คือ เราจะไม่ผิดซ้ำที่เดิม
  • สุดท้ายถ้าแก้ไขไม่ได้จริง ๆ ก็ต้องหาคนอื่น ๆ เพื่อช่วยเหลือ

แต่จะดีกว่าไหม ถ้าเราไม่สร้าง Bug ขึ้นมา
หรือรู้ปัญหาให้รวดเร็วที่สุดเท่าที่จะทำได้
น่าจะมีประโยชน์กว่าการมาตามหาหรือไม่ ?

ปล. อีกเรื่องที่เจอบ่อยมากคือ เรื่องของ การใช้งาน Bug/Issue Tracker
เป็นสิ่งที่สำคัญมาก ๆ
เราต้องรู้และเข้าใจว่า ควรใช้หรือไม่ใช้ตอนไหน
ถ้าใช้แล้วมันมีประโยชน์ หรือมีไว้เก็บเท่านั้น
แต่ไม่ได้เอามาใช้ประโยชน์ในการปรับปรุงให้ดีขึ้น Bug/Issue Tracker
มันควรเป็น Knowledge ของระบบ ทีมและองค์กรมากกว่าหรือไม่