Pair Programming by

24
May
1

Pair Programming เป็นการจับคู่กันเขียน code โดยมีผู้ code เพียงคนเดียว(Driver) ส่วนอีกคนคอยทำหน้าที่บางอย่างเพื่อสนับสนุนการทำงานของคน code(Navigator) แม้จะเป็นการใช้ man hour สองเท่า แล้ว productivity เพิ่มขึ้นไม่ถึง 2 เท่า แต่มีประโยชน์แอบแฝงอื่นๆ มากมาย มักมีเก้าอี้สองตัว จอสองจอช่วยกันดู แบ่งออกเป็น 3 ประเภทได้แก่

  1. Driver – Navigator : เป็นการจับคู่โดยมี Driver เป็นผู้ลงมือ coding และ Navigator เป็นผู้ Review code และ planning สิ่งที่จะต้องทำต่อไป
  2. Mouse-Keyboard : เป็นการจับคู่โดยมีคนหนึ่งจับ Mouse อีกคนจับ Keyboard เพื่อเป็นการเตือนสติว่า “อีกคนยังทำงานอยู่”
  3. Ping-Pong : เป็นการจับคู่โดยมี Driver เป็นผู้ลงมือ coding และ Navigator เป็นผู้ Review code + ทำ Unit Test ของ code ส่วนนั้น

ประโยชน์

  1. ช่วยเร่ง productivity ขึ้นเป็นประมาณ 1.6-1.8 เท่า (ไม่ถึง 2 เท่า) ในเวลาเท่าเดิม
  2. ช่วยลดเปอร์เซ็นต์การเกิด bug ที่จะต้องตามแก้ทีหลัง(โดยเฉพาะอย่างยิ่ง bug โง่) ลงได้เป็นอย่างมาก
  3. สร้างเสริมความสัมพันธ์ ความสามัคคีในองค์กร (Team work)
  4. ลดเวลาการ training Novice ลงเนื่องจากใช้ในการทำงานจริงเลย
  5. Novice จะมีความภาคภูมิใจที่ได้เป็นส่วนหนึ่งของการทำงานจริง และ code ของตัวเองได้ถูกนำไปใช้จริง ช่วยสร้างความฮึกเหิมและความมั่นใจได้ดี เพื่อส่งผลต่อการทำงาน และทัศนคติที่ดี ลดความกลัวที่จะทำพลาดลงในอนาคต
  6. เป็นเจ้าของ code ทั้งคู่ ทำให้เมื่อต้องเปลี่ยนแปลงแก้ไขในอนาคต ให้ 1 ใน 2 คน ใครก็ได้เป็นคนแก้ (ถึงจะหายตัวไปคนก็ไม่เป็นไร)
  7. ลดการ interrupt เช่นเล่น MSN, เล่นเกม ระหว่างการทำงาน ลงได้ เพราะต้องเกรงใจ partner ด้วย
  8. ป้องกันการหลับของ partner ได้ง่าย (ใครหลับ อีกคนก็ตบหัวให้ตื่นได้)

หลักปฏิบัติทั่วไป

  1. ควรสลับหน้าที่ระหว่าง Driver และ Navigator ทุกๆ 1 ชั่วโมงเพื่อไม่ให้ซ้ำซาก จำเจ เบื่อ แต่อาจสลับทุก 6-8 ชั่วโมงก็ได้ตามแต่ความเหมาะสม
  2. ควรเปลี่ยน partner (คนที่จับคู่ทำ Pair) ทุกๆ iteration (ในงาน ผู้พูดกล่าวว่า 1 iteration ของที่รอยเตอร์มีความยาว 2 อาทิตย์)
  3. เน้นการ Communication มากๆ ระหว่างคู่ จะต้องไม่มี Ego ต่อกัน ควรทำความตกลงเรื่องนิสัยส่วนตัวของแต่ละคนในขณะทำงาน ก่อนเริ่มใช้จริง เพื่อจะได้ไม่เกิดปัญหาภายหลัง
  4. หาก Expert คู่กับ Novice ควรเลือก feature ที่ง่ายๆ มาทำ และ Expert จะต้องไม่ข่ม Novice โดยระหว่างที่ Novice เป็นคน code Expert ก็แนะนำสิ่งที่จะต้องทำทั่วไป แต่ระหว่างที่ Expert เป็นคน code Novice จะต้องคอยถาม Expert อยู่ตลอดว่าตรงนี้ทำเพื่ออะไร หรือตรงนั้นอ่าน code แล้วไม่เข้าใจ อ่านยาก Expert จะต้องไม่มี Ego และต้องยอมปรับ code แบ่งสัดส่วนให้ Novice อ่านรู้เรื่อง เพื่อเป็นการบ่งบอกว่า “code ส่วนนั้น อ่านง่ายสำหรับคนทั่วไป ไม่ซับซ้อน”
  5. การจับคู่ทำงานใน 3-4 ครั้งแรกจะค่อนข้างทำงานได้ช้ากว่าแยกกันทำพอสมควร หลังจากนั้นไปแล้วจึงจะเห็นผลจากการจับคู่การทำงาน

Enjoy this article?

Consider subscribing to our RSS feed!

1 ความเห็น

  1. สร้างเว็บ
    19:07 on May 13th, 2010

    ขอบคุณสำหรับบทความครับ

ใส่ความเห็น

RSS feed for comments on this post

 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน