debugging
เห็นใน Facebook มีการ share เรื่องราวของ Six Stages of Debugging
ซึ่งเป็นปฏิกิริยาของ developer สำหรับการ debug code
เพื่อทำการหาสาเหตุว่า ทำไม code ถึงทำงานไม่ถูกต้อง
ประกอบไปด้วย

  1. That can’t happen
  2. That doesn’t happen on my machine
  3. That shouldn’t happen
  4. Why does that happen ?
  5. Oh, I see.
  6. How did that ever work?

ลองแปลเป็นไทยสิ

  1. มันไม่สามารถเกิดได้นะ เสียงดังหนักแน่นมาก ๆ
  2. มันไม่เกิดบนเครื่องของผม อันนี้คำพูดปกติของทุก ๆ คน
  3. มันไม่ควรที่จะเกิดขึ้นนะ เสียงเริ่มเบาลง ..
  4. ทำไมมันเกิดขึ้นล่ะ ? เริ่มหาตัวช่วยล่ะ !!
  5. โฮ้วววว เห็นแล้วววววว ดีใจมาก ๆ
  6. แล้วมันทำงานได้ไงว่ะ ? ผ่านการทดสอบไปได้ยังไง ? ถ้าเป็น code ของตัวเอง หมายความว่ากำลังงง และ ด่าตัวเอง …

ไม่รู้ว่าเป็นแบบนี้จริงไหม ?
แต่คิดว่าไม่ใช่ก็ใกล้เคียงนะ

ยังมีเพิ่มเติมอีกข้อคือ
ขอโทษด้วยนะ code ส่วนนี้ผมไม่ได้เขียนนะ !!
ซึ่งมันบ่งบอกถึง วัฒนธรรมของทีม และ องค์กรได้ชัดเจนมาก ๆ

แต่ประเด็นหลักคือ อยากรู้ว่า มันมีจะเริ่มต้นจากที่ไหน ?

จึงทำการไปค้นหาที่ google และเข้าไปเรื่อย ๆ
ก็พบว่าน่าจะมีที่มาจาก blog นี้ Geek :: Hard core Debugging
ซึ่งเขียนมาตั้งแต่เดือนสิงหาคม ปี 2003 โน่นเลย (ผมยังไม่รู้จัก computer เลย)

history

แสดงว่า ต้องมีต้นฉบับมาอีก แน่ ๆ
จึงไปค้นหาคำว่า 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/