Pair programming
Pair Programming คือการเขียนโปรแกรมเป็นคู่ เป็นส่วนหนึ่งใน Extreme programming (XP) แล้วไอ้ XP นี้มันคืออะไร มันคือวิธีการพัฒนา Software รูปแบบหนึ่ง ที่ช่วยเพิ่มคุณภาพของ Software ตอบสนอง Requirement change ของลูกค้า มีรอบในการพัฒนาที่สั้น และมีความถี่ในการ Release ที่สูง ฟังแล้วดูคุ้น ๆ ไหมครับ Agile นั้นเอง
Credit image: Wikipedia Extreme programming
หลายคนมักคิดว่าว่าการทำ Pair programming เป็นสิ่งที่ดูทำให้ทำงานได้ช้าลง เพราะต้องเอา 2 คนมาทำงานเดียวกัน แต่จริง ๆ แล้วมันไม่ได้ช้ากว่าคนเดียวมากขนาดนั้นครับ มันมีข้อดีข้อเสียของมัน แต่เดี๋ยวจะลองเราประสบการณ์ตัวเองอีกที ตอนนี้ไปลองดูวิธีการทำ Pair programming กันก่อนครับ
วิธีการ Pair programming
ไม่ยากเลยครับ แค่คนนึงจับคีบอร์ด อีกคนนึงจับเมาส์ (WFH อาจจะไม่ได้จับเมาส์ แต่ใช้ Live share หรือดูผ่าน Share screen ก็ได้) โดยปกติจะให้คนที่ Senior กว่าเป็นคนจับเมาส์ และให้คนที่ Junior กว่า เป็นคนจับคีบอร์ด โดยที่คนที่ Junior กว่า จะเป็นคนที่เขียน Code จริง ๆ และคนที่ Senior จะเป็นคนที่คอย Review Code แนะนำวิธีการเขียนให้กับคนที่ Junior กว่า แต่ก็ไม่จำเป็นต้องเป็นแบบนี้เสมอไปนะครับ บางครั้งอาจจะผลัดกันก็ได้ครับ
ตอนผมทำงานบริษัทเอกชนแห่งนึง มีการทำ Pair rotate คือจะหมุน Developer สลับคู่กันทุกอาทิตย์ เพื่อที่จะได้แชร์ Knowledge กันทั้งทีม บางคนอาจจะเก่ง Frontend บางคนอาจจะเก่ง Backend บางคนอาจจะเก่ง Infra ก็วนกันไป
ข้อดี ข้อเสีย
ผมทำการ Pair Programming มาหลายปีแล้ว ทั้งเคย Full-time และไม่ Full-time pair ข้อดีของการทำ Pair มีให้เห็นอยู่มากมาย โดยส่วนตัวเน้นเรื่อง Bus factor สามารถลาพักร้อน ลาป่วย ลาตายได้อย่างสบายใจ เคยไหมครับลาป่วย ลากิจ แต่สุดท้ายโดนตามงาน เพราะเราทำได้แค่คนเดียวของทั้งทีม หรือของทั้งบริษัท แต่ถ้าเราทำ Pair กัน ก็จะมีคนที่รู้จักเนื้องานเรา และสามารถพอทำต่อได้บ้าง
ข้อดีอย่างอื่นอีกเพียบ
- ลดข้อผิดพลาดของงาน เปรียบการทำงานของคนเป็นตาข่าย อาจจะมีรูบางจุด แต่หากเอาสองคนมาทำงานเดียวกัน ก็จะช่วยอุดรูรั่วของงาน เหมือนเอาตาข่ายสองม้วนมากาง ที่มีรูคนละจุดมาวางซ้อนกัน ก็จะอุดรูรั่วของตาข่ายได้
- ช่วยกันหาช่วยกันเสนอ Idea มาแก้โจทย์ที่กำลังทำกันอยู่
- มีการ Review code โดยที่ไม่ต้องรอจบ Sprint
- ช่วยให้ Focus งานที่อยู่ตรงหน้า ไม่เปิด Facebook, ไถ่ Twitter หรือ Social อื่น ๆ ขึ้นมาเล่น เพราะมีความเกรงใจคู่ Pair (โดยเฉพาะ ถ้าทำในสถานที่เดียวกัน ไม่ใช่ WFH)
- เมื่อก่อนสอนงานคนที่ Junior กว่า จะทำการ Pair ด้วยประมาณ 1 - 2 เดือน จนมั่นใจแล้วว่าเขาสามารถทำต่อด้วยตัวเองได้ จึงเลิก Pair ไป ซึ่งมั่นใจว่าวิธีนี้ทำให้ได้งานคุณภาพในระยะยาวมากกว่าปล่อยให้ Junior ไปลุยเองตั้งแต่แรก
ใช่ว่าจะมีแต่ข้อดี ทุกอย่างล้วนมีข้อดีข้อเสีย ต้อง Trade-off ด้วย
- บางครั้งคู่ Pair หลุด Focus โดยเฉพาะยุคที่เริ่ม WFH ทั้งอาจจะสายเข้า แว๊บไปเข้าห้องน้ำ โดยไม่ได้บอก หรือเผลอไปไถ Social ตอบ Email ซึ่งวิธีนี้สามารถแก้ได้ โดยให้คู่ Pair บอกว่าขอหายไปทำอะไรแปปนึงนะ
- ส่วนตัวเป็นคนติดการฟังเพลงไป Coding ไป หลังจากทำ Full-time pair programming ทำให้การฟังเพลงไปด้วย Coding ไปด้วยน้อยลงมาก
จบไปแล้วครับ กับบทความเรื่อง Pair programming หวังว่าจะนำไปลองใช้กันดูครับ