ในการอธิบายประโยชน์ของ Pair programming
ให้ใครสักคนเข้าใจ และ ยอมรับมัน เป็นเรื่องที่ยากมาก ๆ
ในเบื้องต้นอาจจะเข้าใจได้
แต่เมื่อต้องนำ developer 2 คนมาทำงานชิ้นเดียวกัน
มันเป็นเรื่องที่ยอมรับได้ยากมาก !!
คำถามที่โดนถามกลับมาเสมอ คือ
ทำไมเราต้องทำแบบนี้ด้วยล่ะ ?
มันจะคุ้มหรอ ?
แล้วเราจะอธิบายอย่างไรดีล่ะ เพื่อให้เห็นภาพชัดเจนขึ้น ?
ไปอ่านเจอบทความเรื่อง Swiss cheese model
โดย Swiss Cheese Model นั้นเป็น model
ที่ถูกใช้ในวงจรการจัดการและวิเคราะห์ความเสี่ยงต่าง ๆ
แนวคิดคือ
มี layer การทำงานต่าง ๆ เข้าช่วยเพื่อลดความเสี่ยง
เหมือนกับการมีด่านป้องกัน ด่านกรองข้อมูล หลาย ๆ ชั้นดังรูป
โดย Swiss cheese แต่ละชิ้นจะมีรู หรือ ความผิดพลาดเสมอ
ถ้าเป็น developer หมายความว่า
developer ทุกคนล้วนมีจุดแข็ง
developer ทุกคนล้วนมีจุดอ่อน นั่นคือรูปบน cheese นั่นเอง
ดังนั้นเพื่อลดจุดอ่อน และ ข้อผิดพลาดต่าง ๆ ลงไป
จึงต้องใช้ cheese หลาย ๆ ชิ้นมาช่วยกัน
ถ้าเทียบกับการพัฒนา software ก็คือ
การทำ pair programming นั่นเอง
เพื่อช่วยลดข้อผิดพลาดต่าง ๆ ที่อาจจะเกิดขึ้นใน software ลงไป
อาจจะยังงง ๆ กันอยู่ มาดูว่าปกติเราทำงานแบบต่างคนต่างทำ
จะแสดงดังรูป
คำอธิบาย
Swiss cheese คือ developer นั่นเอง
ต่างคนต่างทำงานของตัวเองไป
โดยงานก็คือแซนวิส
จะเห็นได้ว่า มีรู หรือจุดอ่อน หรือ ข้อผิดพลาดที่เกิดขึ้นจำนวนมาก
ดังนั้นเราสามารถลดความผิดพลาดต่าง ๆ เหล่านี้
ด้วยการนำ developer ทั้งสองคนมาทำงานเดียวกัน
จะแสดงดังรูป
จะเห็นได้ว่า การ pair กันนั้น
มันช่วยเติมเต็มสิ่งที่ developer แต่ละคนขาด
แม้แต่ developer ที่มีประสบการณ์สูง ๆ ก็มีจุดอ่อน และ ความผิดพลาดได้
ดังนั้น ถ้าเรารู้ว่าจุดอ่อนของแต่ละคนเป็นอย่างไร อะไรบ้าง
เราก็สามารถเรียนรู้จากคู่ pair ของเราได้
มันยิ่งช่วยให้ developer แต่ละคนพัฒนาความสามารถขึ้นไปอีก
นั่นคือช่วยเติมเต็มในสิ่งที่ขาดนั่นเอง
ดังนั้นการทำงานร่วมกัน
มันช่วยให้เราสร้าง software/product ที่มีคุณภาพดีขึ้นกว่าเดิม
พร้อมกับลดความเสี่ยงในเรื่องต่าง ๆ อีกมากมาก
วันนี้คุณเริ่มทำ Pair programming กันหรือยัง ?