Screen Shot 2558-07-05 at 11.52.08 AM
ในบทความเรื่อง Finding the biting point with pair programming
ทำการอธิบายเรื่องปัญหาของการ pair programming

เนื่องจากการ pair programming มักจะเกิดปัญหาที่หลีกเลี่ยงไม่ได้
นั่นก็คือ คู่ pair ที่มีประสบการณ์ต่างกัน
หรืออาจจะเป็น Senior กับ Junior developer
ดังนั้น เรามาดูปัญหาที่เกิดขึ้น และ วิธีการแก้ไขปัญหากัน

โดยที่ junior developer นั้นอาจจะไม่ใช่คนที่มีประสบการณ์น้อยนะ
เพียงแต่ไม่มีประสบการณ์ในงาน หรือ project นั้น
หรือประสบการณ์ในภาษา programming น้อยก็เท่านั้นเอง

ปัญหาเมื่อ Senior และ Junior developer มา pair programming กันเป็นอย่างไร ?

Senior developer ลงมืออธิบายและทำให้ดูเลย
ส่วน junior developer ทำหน้าที่ฟังและนั่งดู

สิ่งที่เกิดขึ้นคือ
การแลกเปลี่ยนความรู้ การแบ่งปัน และ การสื่อสาร มันแย่มากๆ
เนื่องจากจะเป็นการสื่อสารทางเดียวจาก senior เท่านั้น
ส่วนทาง junior ก็จะนั่งฟังจนกว่าจะจบ
แล้วจึงเริ่มถามคำถาม ซึ่งอาจจะเป็นคำถามที่ไม่ได้ช่วยอะไรเลย
เพราะว่ารับฟังนาน และ มากจนเกินไป
จนทำให้ไม่รู็เรื่องอะไรเลย (Data Overflow)

แสดงดังรูป
Screen Shot 2558-07-05 at 11.04.22 AM

ปัญหามันจะเห็นชัดเมื่อ ให้สลับหน้าที่กัน !!

สิ่งที่เกิดขึ้นคือ senior จะรู้สึกว่า
แค่นี้ก็ทำไม่ได้หรอ !!
อะไรเนี่ย ไม่เข้าใจหรอ ของง่าย !!
อุตสาห์มาทำให้ดูแล้วนะ !!
และอื่นๆ อีกมากมาย

ซึ่งมันทำให้ทั้งสองฝ่ายท้อแท้ และ หมดกำลังใจ
ตลอดจนทำให้ทั้งคู่ไม่สะบายใจในการทำงานร่วมกันอีกด้วย

ยังไม่พอนะ !!
งานที่ต้องทำนั้นมันก็มี deadline ของมัน
ดังนั้น แทนที่ senior จะส่งงานเหล่านั้นไปให้ junior ทำ
กลับต้องมาแบกรับภาระไว้เองอีก
เนื่องจากทาง junior นั้นทำไม่ได้ หรือ ทำแล้วไม่ถูกใจ

Senior ก็จึงมีความรู้สึกว่า งานก็ยังไม่เสร็จ
ก็ยังต้องมาสอนอีก … มันอะไรกันหนักกันว่ะเนี่ย !!
แสดงดังรูป
Screen Shot 2558-07-05 at 11.07.24 AM

ปัญหาที่เกิดขึ้นจะแก้ไขอย่างไรดีล่ะ ?

สิ่งที่เกิดขึ้นกับทาง junior developer คือ
ขั้นตอนต่างๆ มันเยอะเยอะไปหมด
จะทำอะไรก่อนหลังดี
ดังนั้น เมื่อต้องทำด้วยตนเองจึงไม่เข้าใจอะไรเลย
หรือกลัวที่จะผิดพลาด
แสดงดังรูป
Screen Shot 2558-07-05 at 11.29.16 AM

การแก้ไขปัญหาเหล่านี้ทำได้จากทั้งสองฝั่ง คือ

1. Junior developer

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

ยิ่งถ้าคุณสามารถนำ code มา run ที่เครื่องคุณได้
แนะนำให้ทำซะ และ แตก branch เพื่อลองเพิ่ม feature ใหม่ๆ เข้าไป
จะทำให้คุณเข้าใจกับ code มากขึ้น

ให้จำไว้ว่า ถ้าคุณไม่ผิดพลาดอะไรเลย
แสดงว่าคุณไม่ได้เรียนรู้อะไรเลย

2. Senior developer

มีความอดทนต่อคู่ pair ของคุณให้มาก
ให้กำลังใจคู่ pair ของคุณ
ให้ลองกลับไปมองตัวเองว่า ก่อนที่คุณจะมาอยู่ตรงนี้ได้
คุณจะต้องผ่านอะไรมาบ้าง ต้องใช้ความพยายามมากเท่าไร
ถ้าคุณเข้าใจในจุดนั้น ก็จะทำให้คุณ pair กับ junior developer ได้อย่างดี

สุดท้าย

ให้เกียรติซึ่งกันและกัน
มีความอดทน
และให้นึกถึงวันที่คุณไม่รู้
ขอให้สนุกกับการ pair programming ครับ