ปัญหาของผม/ปัญหาของลูกค้า #2

ช่วงนี้มีปัญหาของลูกค้าอันนึงที่ผมรู้สึกสนุกที่จะทำมัน เรื่องของเรื่องคือลูกค้าใช้ interface ใหม่ของ api ที่ผม support แล้วติดปัญหามากมาย

โชคดีของผมนิดหน่อยที่ตามคิวงานแล้วเพื่อนของผมเป็นคนดูแลเคส (ปัญหา) นั้น ผมก็เลยใช้เวลาระหว่างรอเพื่อนผมทำเคสนั้นอยู่ ลอง simulate ระบบของลูกค้าเล่นๆ ดูไปพร้อมกันเพราะผมเองก็ยังไม่เคยลอง interface นั้นเลย (มีแต่ dev/qa ที่จีนที่ได้ลอง)

ผมพบว่าผมรู้สึกสนุกกับการพยายาม replicate ปัญหา, การหาว่าทำไมมันใช้งานไม่ได้มากกว่าการ support เคสอื่นๆ เยอะเลย ส่วนหนึ่งคงเป็นเพราะมันเป็นปัญหาที่เกิดขึ้นกับสิ่งที่ผมดูแลมานานตั้งแต่ version 0.1 จนรู้สึกผูกพันกับมัน อีกอย่างคือผมรู้สึกว่ามันเป็นสิ่งที่ผมอยากรู้ด้วยตัวเองว่าทำไมมันทำงานไม่ได้โดยที่ไม่มีความกดดันในแง่การเป็นคนถือเคสเข้ามาเกี่ยว (คือไม่ได้โดน push จากลูกค้าตรงๆ)

เดาว่าไอ้ความผูกพันกับไอ้การที่อยากรู้อยากเห็นโดยไม่มีภาระมาเกี่ยว มันทำให้เกิดความรู้สึกว่าเป็น personal itch ที่อยากจะ scratch มากกว่าปัญหาอื่นๆ ของลูกค้าทั่วไป (ตามที่อ้าง quote ของ ESR ใน entry ก่อนหน้ามา)


ปัญหาของผม/ปัญหาของลูกค้า

ปัญหาของผม/ปัญหาของลูกค้า

ในฐานะ support งานหลักของผมคือการแก้ปัญหาให้ลูกค้า ไม่ว่าจะลูกค้าภายในหรือภายนอกองกรค์

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

ผมพบว่าหลังๆ ผมสนุกกับอย่างอื่นที่เกิดขึ้นระหว่างการแก้ปัญหาให้ลูกค้ามากกว่า เช่น การเขียนโปรแกรมมาวิเคราะห์และหาข้อมูลจาก log file ขนาด 1gb ของลูกค้า, การเขียน script มาทำให้ replicate ปัญหาได้ง่ายขึ้น, การลองเอา Angularjs หรือ framework อื่นๆ มาใช้กับ WebSocket API ที่ผมดูอยู่, ลองใช้ git มาทำ source control code ที่ replicate ปัญหาเป็นต้น

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

สรุปได้ว่าที่ ESR กล่าวใน The Cathedral and the Bazaar จะเป็นจริง

Every good work of software starts by scratching a developer’s personal itch.

My code skill

อาทิตย์นี้เรียน JavaScript ไปสองวัน ระหว่างทำแบบฝึกหัดระหว่างเรียนก็ได้รู้ตัวเองว่า

  1. ขาดและลืมความรู้พื้นฐานที่จำเป็นมากไปหลายเรื่องทีเดียว บางอย่างที่พลาดไปนี่ บอกตรงๆ ว่าผมทำงานรอดมาได้ทุกวันนี้โดยไม่รู้มันนี่ถือว่าโคตรฟลุ๊กอ่ะ
  2. ให้เขียน code แก้ปัญหานี่นึกวิธีเขียนไม่ออกแล้วนะ คือพอมี logic อยู่ในหัวแต่มันก็ไม่ใช่คำตอบอยู่ดี
  3. อ่าน code ได้เข้าใจเร็วมาก อันนี้ไม่แปลกเพราะทำงานเน้น “อ่าน code ชาวบ้าน” เป็นหลักมาหลายปี
  4. ความรู้ของตัวเอง limit อยู่ที่ code ที่ได้อ่านเขียนแบบไหนก็รู้แค่นั้นแหละ

ควย