Screen Shot 2558-08-15 at 12.12.53 PM
Bug คือสิ่งที่น่ารังเกียจในการพัฒนา software อย่างมาก
แต่เรามักพบเจอกับ Bug อยู่เป็นประจำ ( นี่เราไม่เคยจำกันเลยใช่ไหม ? )

ส่วนใหญ่ Bug นั้นมักจะหายาก
และส่งผลให้เสียเวลา และ ค่าใช้จ่ายในการแก้ไขสูง !!

คำถาม
เราจะจัดการกับ Bug อย่างไรดีล่ะ ?
หรือเราต้องปรับเปลี่ยนกระบวนการพัฒนา software กันใหม่นะ ?
จะทำอย่างไรเพื่อลดจำนวน Bug ?
หรือเราต้องการวิธีการเพื่อหา Bug ให้เร็วที่สุดเท่าที่จะเป็นไปได้ ?

สิ่งที่เราควรจำไว้
เราใช้ Bug เป็นตัวชี้วัด และ ตัวช่วยในการปรับปรุงกระบวนการพัฒนา
ซึ่ง Bug เดิม ๆ มันไม่ควรเกิดซ้ำ ๆ นะ

ดังนั้นมาดูวิธีการจัดการกับ Bug ที่น่าสนใจกันหน่อยสิ …

1. อย่าสร้าง Bug ขึ้นมาตั้งแต่เริ่มสิ !!

ถ้าคุณเจ็บปวดจากอะไร ก็อย่าสร้าง หรือ สร้างมันขึ้นมาสิ
Bug ก็เช่นกัน …

ดังนั้น เพื่อหลีกเลี่ยงความผิดพลาดต่าง ๆ
ให้คุณสนใจในเรื่องการสร้าง code ที่มีคุณภาพสูงตั้งแต่แรกสิ
โดยใช้แนวปฏิบัติ และ เครื่องมือต่าง ๆ มาช่วย
เช่น Test-First หรือ Test-Driven Development เป็นต้น

2. ต้องหา Bug ให้เจอรวดเร็วที่สุดเท่าที่จะเป็นไปได้

ถ้าคุณสร้าง Bug ขึ้นมาแล้ว
สิ่งที่คุณต้องมีคือ กระบวนการในการหา Bug ให้เจอรวดเร็วที่สุดด้วย
เนื่องจากยิ่งเจอ Bug ช้าเท่าไร การแก้ไขก็ยากขึ้นเท่านั้น

ดังนั้นเรื่องของ Autiomated regression test จึงเป็นเรื่องที่สำคัญมาก ๆ
นักพัฒนาก็ต้องการ feedback loop เพื่อทำให้รู้ว่า
code ที่แก้ไข และ เพิ่มเข้าไปนั้นมันส่งผลต่อส่วนอื่น ๆ หรือไม่
หรือมันก่อให้เกิด Bug หรือไม่

ยิ่งลดเวลาให้เหลือน้อยเท่าไร ก็จะยิ่งดีเท่านั้น
แล้วคุณล่ะ มีวิธีการ หรือ มี feeback loop อย่างไร ?

3. ต้องออกแบบระบบให้ง่ายต่อการหา Bug สิ

ถ้าระบบของคุณมันออกมาไม่เอื้อต่อการทำ Automated regression test แล้ว
คงเป็นการยากในการหา Bug !!

ดังนั้น ลองกลับมาดูระบบที่คุณทำการสร้าง หรือ พัฒนาอยู่สิว่า
มันง่ายต่อการหา Bug หรือไม่ ?

ถ้าหา Bug ได้ง่ายและเร็ว แสดงว่าระบบของคุณมีคุณภาพ
และสามารถทดสอบได้ง่ายนั่นเอง

4. Bug มันเป็นสิ่งที่บอกว่า “คุณขาดการทดสอบบางอย่างไปนะ”

เวลาส่วนใหญ่ของนักพัฒนา software คือการ debug
เพื่อหา Bug ว่าเกิดที่ใดใน code ของระบบ !!
ดังนั้นสิ่งที่นักพัฒนาต้องพยายามคือ หา Bug ให้เร็วที่สุด
และการ debug นั้นเป็นสิ่งที่ดีนะ เพราะว่าเป็นการเรียนรู้ชนิดหนึ่ง

แต่เมื่อคุณพบว่า Bug เกิดตรงไหนแล้ว
ควรที่จะเขียน test ขึ้นมา เพื่อจำลองเหตุการณ์ของ Bug นั้น ๆ ให้ได้
มันจะทำให้คุณเข้าใจต่อปัญหาของ Bug นั้น ๆ
จากนั้นจึงทำการแก้ไขมันซะ

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

5. ให้ใช้ Bug เป็นตัวช่วยในการปรับปรุงขั้นตอนการทำงาน

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

นั่นคือ คุณกำลังเรียนรู้จากความผิดพลาดนะครับ
มันสร้างโอกาสการเรียนรู้ให้เราอยู่อย่างเสมอ
แน่นอนว่า เราจะไม่ผิดซ้ำที่เดิม ใช่ไหม ?

ดังนั้น มาลดจำนวนของ Bug กันเถอะ !!
เปลี่ยนจากการ detect หรือ การค้นหา
มาเป็นการ prevent หรือ ป้องกันดีกว่านะครับ