เห็นใน Facebook มีการ share เรื่องราวของ Six Stages of Debugging
ซึ่งเป็นปฏิกิริยาของ developer สำหรับการ debug code
เพื่อทำการหาสาเหตุว่า ทำไม code ถึงทำงานไม่ถูกต้อง
ประกอบไปด้วย
- That can’t happen
- That doesn’t happen on my machine
- That shouldn’t happen
- Why does that happen ?
- Oh, I see.
- How did that ever work?
ลองแปลเป็นไทยสิ
- มันไม่สามารถเกิดได้นะ เสียงดังหนักแน่นมาก ๆ
- มันไม่เกิดบนเครื่องของผม อันนี้คำพูดปกติของทุก ๆ คน
- มันไม่ควรที่จะเกิดขึ้นนะ เสียงเริ่มเบาลง ..
- ทำไมมันเกิดขึ้นล่ะ ? เริ่มหาตัวช่วยล่ะ !!
- โฮ้วววว เห็นแล้วววววว ดีใจมาก ๆ
- แล้วมันทำงานได้ไงว่ะ ? ผ่านการทดสอบไปได้ยังไง ? ถ้าเป็น code ของตัวเอง หมายความว่ากำลังงง และ ด่าตัวเอง …
ไม่รู้ว่าเป็นแบบนี้จริงไหม ?
แต่คิดว่าไม่ใช่ก็ใกล้เคียงนะ
ยังมีเพิ่มเติมอีกข้อคือ
ขอโทษด้วยนะ code ส่วนนี้ผมไม่ได้เขียนนะ !!
ซึ่งมันบ่งบอกถึง วัฒนธรรมของทีม และ องค์กรได้ชัดเจนมาก ๆ
แต่ประเด็นหลักคือ อยากรู้ว่า มันมีจะเริ่มต้นจากที่ไหน ?
จึงทำการไปค้นหาที่ google และเข้าไปเรื่อย ๆ
ก็พบว่าน่าจะมีที่มาจาก blog นี้ Geek :: Hard core Debugging
ซึ่งเขียนมาตั้งแต่เดือนสิงหาคม ปี 2003 โน่นเลย (ผมยังไม่รู้จัก computer เลย)
แสดงว่า ต้องมีต้นฉบับมาอีก แน่ ๆ
จึงไปค้นหาคำว่า Somebody taped this on their door at work
ก็เลยพบคำตอบ ซึ่งเกิดหลังจาก Debug session นั่นเอง !!
ก็ทำให้คลายความสงสัยไปได้บ้าง …
แต่ก็อาจจะมีที่มาก่อนหน้านั้นก็ได้นะ
ไม่เข้าใจว่า จะรู้ไปทำ … อะไร !!
สุดท้ายแล้ว
เมื่อทำการ debug เสร็จสิ้น
นั่นแสดงว่ารู้ปัญหาแล้ว
ก็ให้เขียนชุดของการทดสอบเสียนะ
จากนั้นจึงเริ่มทำการแก้ไข
และหวังว่า จะไม่กลับมา debug code ที่เดิมอีกนะ
เพราะว่า มีชุดการทดสอบครอบคลุมไปแล้ว
Reference Websites
http://plasmasturm.org/log/6debug/
http://mwcremer.blogspot.com/2007/06/six-stages-of-debugging.html
https://www.reddit.com/r/ProgrammerHumor/comments/1r0cw7/the_5_stages_of_debugging/