Jitrak Blog

Pair programming

รู้จักกับ Pair programming

22 Aug 2023 05:40

Written by: Yosapol Jitrak

Extreme programming
Tags:

Pair programming

Extreme programming

XP

Bus factor

Code review

Code quality

Pair programming

Pair Programming คือการเขียนโปรแกรมเป็นคู่ เป็นส่วนหนึ่งใน Extreme programming (XP) แล้วไอ้ XP นี้มันคืออะไร มันคือวิธีการพัฒนา Software รูปแบบหนึ่ง ที่ช่วยเพิ่มคุณภาพของ Software ตอบสนอง Requirement change ของลูกค้า มีรอบในการพัฒนาที่สั้น และมีความถี่ในการ Release ที่สูง ฟังแล้วดูคุ้น ๆ ไหมครับ Agile นั้นเอง

Extreme programming

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 กัน ก็จะมีคนที่รู้จักเนื้องานเรา และสามารถพอทำต่อได้บ้าง

ข้อดีอย่างอื่นอีกเพียบ

ใช่ว่าจะมีแต่ข้อดี ทุกอย่างล้วนมีข้อดีข้อเสีย ต้อง Trade-off ด้วย

จบไปแล้วครับ กับบทความเรื่อง Pair programming หวังว่าจะนำไปลองใช้กันดูครับ