ก็แค่ความหวัง

สิ่งที่ผมรู้สึกว่าชั่วร้ายที่สุดในการชุมนุมปี 53 คือผมเห็นเพื่อนๆ ที่รักของผมหลายคนแสดงอาการสำเร็จความใคร่บน Social Network เวลาเห็นความสูญเสียไม่ว่าจะชีวิตหรือทรัพย์สินของคนหรือสัญลักษณ์ของฝ่ายตรงข้าม

  • มันคือที่สุดของความชั่วร้ายที่ไม่เห็นว่าอีกฝ่ายเป็นมนุษย์เหมือนตัวเอง
  • มันคือความชั่วร้ายที่เห็นว่าทุกๆ การกระทำของตัวเองนั้น ทำเพราะอีกฝ่ายนั่นแหละที่ผิด ที่กูต้องทำแบบนี้ก็เพราะมันผิด

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

ผมก็ได้แต่หวังว่าครั้งนี้มันจะไม่ไปถึงจุดเดียวกับปี 53

เราต้องโดนจับแขวนคอแล้วเอาเก้าอี้ฟาดกันอีกกี่ครั้ง ถึงจะคิดได้ว่าชีวิตนั้นมีค่ายิ่งนัก

ใครผิด (วะ)?

Java Script API ที่ผม support อยู่ปัจจุบันเป็น version 5 ออกมาตอนกลางปี ส่วน version 3 และ 4 ออกเมื่อปีที่แล้วครับ

ปีที่แล้วมีลูกค้าเจ้าหนึ่งใช้ version 2 ที่ออกตอนปี 2011 แล้วเจอปัญหาร้ายแรงปัญหาหนึ่ง ขณะนั้น version 3 ออกได้ไม่นานและ dev กำลังเขียน version 4 อยู่

ผมใช้เวลาเป็นเดือนในการทำ issue นี้ (replicate ยากมากๆ) ระดม dev มาช่วยแล้วก็ยังไม่ได้ สุดท้ายก็ส่งเรื่องไป Microsoft Support ถึงได้รู้ว่า setTimeout() บน IE มันทำงานผิด MS ยอมรับว่าเป็นบั๊กของ IE 7/8 และแก้ไปใน IE 9 แล้ว แน่นอนว่าลูกค้าแม่มไม่ยอมเปลี่ยนไป IE 9 แน่ๆ ตอนนั้นผมกะ dev จึงช่วยการหาทางป้องกันและยัดมันลงไปใน patch หนึ่งของ version 2 ซึ่งลูกค้าก็เอาไปใช้ได้ดีจนถึงทุกวันนี้

ต้นเดือนที่ผ่านมา ลูกค้าจะ upgrade ไปเป็น version 5 ซึ่งเป็นอันล่าสุด ผมได้รับงานมาว่าลูกค้าจะต้องทำอะไรบ้างเพื่อที่จะ migrate page เขาได้เพราะมันมีอะไรเปลี่ยนข้างในเยอะเหมือนกัน ผมทำ list จะเสร็จแล้วรู้สึกตะหงิดๆ อะไรบางอย่างเลยลองดู code ส่วนที่เจอปัญหาคราวโน๊นดูถึงเพิ่งเห็นว่า code patch นั้นไม่ถูกใส่มาใน version 5 ด้วย…

ไล่ย้อนไปพบว่า version 3, 4, 5 code ที่เจอปัญหายังเหมือนกับ version 2 เด่ะๆ สำหรับ version 3 ผมไม่แปลกใจอะไร แต่ที่งงคือทำไม version 4 และ 5 เสือกไม่ merge patch นี้ไปด้วย ถาม dev ก็ไม่รู้ คนเขียนออกไปแล้ว ไม่มีใครตอบได้

แน่นอนว่าด้วยบาปที่ผมแม่งเป็นคนเจอไอ้ code diff เหี้ยนี่ ผมเลยได้รับคำสั่งมาว่าให้ simulate ปัญหานี้ใน version 5 ให้ได้ภายในเวลา 1 อาทิตย์…

3 วันที่ผ่านมาผมยัง replicate ปัญหาแม่มไม่ได้เลย issue อื่นๆ ที่ลูกค้าส่งเข้ามาถูกผลักไปเป็นเรื่องรองๆ ไปทั้งหมดเพื่อดูเรื่องนี้โดยเฉพาะ ผมมานั่งนึกว่าทำไมกูต้องมานั่งทำเหี้ยอะไรเสียพลัง เสียเวลาไปเปล่าๆ ปลี้ๆ อันนี้ด้วยวะ

ที่กูต้องมานั่งทำไอ้เหี้ยนี่อยู่แม่งผิดที่ใครวะ

ปัญหาในมุมของ Support กับมุมของลูกค้า #บทเรียนที่ 2

ต่อจากentry เมื่อวาน วันนี้ผมกลับมานั่ง review สิ่งที่ผมทำ นั่งคุยกับ backend/data team แล้วรู้สึกตะหงิดๆ เลยลอง replicate ปัญหาใหม่แล้วมานั่งไล่ log ที่มองข้ามไปดูอีกที

เมื่อผมลองไล่ log การคุยกันระหว่าง server ของผมกับ backend ดีๆ แล้ว ผมพบว่าปัญหาเรื่อง backend มันส่ง data มาช้าหรือไม่ส่งมานั้นจริงๆ มันมีจำนวนน้อยมาก ไอ้ที่เยอะจริงๆ คือ server ของผมเองต่างหากที่ขอ request ขึ้นไปผิดเองก็เลยไม่มี data ส่งลงไปให้ลูกค้า …. (ปัญหานี้แก้ไขแล้วใน version ล่าสุด – ลูกค้าใช้ version เก่ากว่า 1 ver)

เรื่องนี้ก็ให้บทเรียนผมอีกครั้งนึงว่าให้ดูของตัวเองให้ดีๆ ก่อนที่จะไปโทษคนอื่น ผมนี่ยอมรับเลยว่าพอเจอเรื่อง backend ส่ง data ช้า/ไม่ส่งไปทีสองทีผมก็ปักใจเชื่อเลยว่ามันต้องเป็นปัญหา backend 100% แน่นอน ลืมที่จะดูตัวเองก่อนเลย

ป.ล. 1 ผมเคยได้บทเรียนนี้มาแล้วเมื่อสัก 4 ปีก่อน แล้วก็พลาดเองที่ลืมไปแล้ว
ป.ล. 2 แนะนำให้อ่าน The First Rule of Programming: It’s Always Your Fault ครับ เพื่อความกระจ่างในเรื่องนี้มากขึ้น