Screen Shot 2558-02-14 at 3.18.27 PM
จากเรื่อง Pair Programming Economic นั้น
ทางคุณ Kent Beckได้ทำการอธิบายเพิ่มเติม
ไว้ใน blog เรื่อง Pairing as Pruning ซึ่งน่าสนใจมาก
จึงได้นำมาแปลในแบบที่ผมเข้าใจกันหน่อย
ซึ่งในบทความนี้ได้อธิบายว่า การ pair นั้นช่วยแก้ไขปัญหาอะไร อย่างไร

มีแต่คนบอกว่า

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

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

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

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

We don’t build to have, we build to know. — Alan Kay

เนื่องจากมักคิดว่า เรารู้ว่าจะแก้ไขปัญหาได้อย่างไร
แต่มันไม่ได้บอกว่า เราจะแก้ไขมันได้นะ

บางครั้งเราเลือกปัญหาที่สำคัญมากแก้ไข
และบ่อยครั้งพบว่า เราจมอยู่กับการแก้ไขปัญหานั้น !!!

ดังนั้น ในการแก้ไขปัญหานั้น มักจะมีได้หลายวิธีการ
ให้เราเลือก 1 วิธีมาเลย อย่าเสียเวลาเลือกมานักนะ
เพื่อทำให้เราเรียนรู้ได้อย่างรวดเร็ว ทั้งเรียนรู้ปัญหา และ วิธีการแก้ไข

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

จากสถานการณ์เช่นนี้ เราสามารถใช้การทำงานคู่แบบ Ping Pong ได้นะ

นั่นคือการทำงานระหว่าง ปัญหา และ วิธีการแก้ไข ดังนี้

เริ่มต้นด้วยปัญหา และ วิธีการแก้ไข แบบใหญ่ๆ

10988611_10153081117653675_1036994637_o

จากนั้นเราทำการเลือกปัญหาที่ต้องการจะแก้ไขขึ้นมาสักปัญหา

11001321_10153081118983675_3513882_o

เราก็ต้องถามหน่อยว่า ปัญหาที่เลือกมามัน ok ไหม ถ้าแก้ไขแล้วจะได้อะไรตอบแทนมาบ้าง มันค้มไหม ?
ถ้าตกลงว่าจะแก้ไข ก็ให้เลือกวิธีการแก้ไขปัญหามาสิ

11001015_10153081119728675_61962691_o

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

10988730_10153081113998675_1651734335_o

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

10997837_10153081114583675_81872029_o

โดยเราจะทำแบบนี้สลับไปมาเหมือนการเล่นปิงปองนั่นแหละ

สิ่งที่คุณจะได้จากสถานการณ์นี้ ประกอบไปด้วย

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

แต่ถ้าเรายังทำงานแบบ Sili เหมือนเดิม
เรามักจะอยู่ในการประชุม เพื่อหาวิธีการแก้ไขปัญหาที่ดีที่สุดใช่ไหม ?
ซึ่งพบว่า มันน่าเบื่อ สิ้นเปลือง และ สุดท้ายก็ไม่ได้ข้อสรุป และ action อะไรเลยใช่ไหม ?
ถ้าใช่ ลองลงมือทำเลยดีกว่านะ

โดยสรุปแล้ว

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

ส่วนการแก้ไขปัญหาสำหรับปัญหาที่มันชัดเจน ไม่จำเป็นต้องทำงานเป็นคู่นะ
บางครั้งสามารถให้มันแก้ไขแบบอัตโนมัติไปเลยก็ได้