Pair programming สิ่งที่ได้มา

เพิ่งได้เข้าทำงานกับทีมที่เป็น agile scrum ได้ไม่นาน หลังจากได้ pair programming กับท่าน scrum master ก็ได้เรียนรู้อะไรมาพอสมควร เลยอยากจะมาขอเล่าไว้ซักหน่อย (ความจริงโดนขอให้มาเขียนไว้ ฮ่า ๆ) อาจจะเขียนได้ไม่หมด (หรือมีอะไรเพี้ยน ๆ ไป ต้องขออภัยท่าน scrum master ด้วย ข้าน้อยยังอ่อนด้อยนัก)

  1. ให้ถามเยอะ ๆ ไม่รู้อะไรถามคนอื่นก่อน เผื่อมีคนรู้ หรือมีคนเคยทำ หรือกำลังทำอยู่
  2. ให้จด จดว่าเราทำอะไรไปแล้วบ้าง และกำลังจะทำอะไร จะได้โฟกัสงานได้ถูกไปทีละขั้นตอน ทวนได้ว่าต้องทำอย่างไร ทำได้หรือไม่ได้
  3. กำหนดเวลาให้กับเรื่องบางเรื่อง เพื่อไม่ให้เสียเวลามากจนเกินไป หรือออกทะเลไปไกล ยิ่งถ้าเป็นการถูก interrupt จะออกทะเลไกลได้ง่าย
  4. การพยายามแก้ defect ต้องเขียนเทสให้พังก่อน แล้วค่อยแก้โค้ด เพื่อให้ไม่เกิดขึ้นอีก
  5. เขียนเทสแล้วก็หาวิธี reproduce เหตุการณ์ให้ได้เสียก่อน จดขั้นตอนไว้
  6. เมื่อ reproduce ได้แล้วให้คีอย ๆ ตัดส่วนต่าง ๆ ออก (เช่น ระบบมีการ integrate กับ ระบบย่อยอื่น ๆ เช่น database หรือระบบ web-service อื่น ๆ ให้จำลองระบบนั้น ๆ หรือส่วนนั้น ๆ แทนของจริง) แล้วให้ทำตามขั้นตอนต่าง ๆ ที่จดไว้ว่ายังเกิดขึ้นมั้ย
  7. ถ้าตัดแล้วปัญหาหายไป แปลว่าส่วนที่เหลือไม่เกี่ยวให้ให้เอาส่วนนั้นกลับมาแล้วตัดส่วนย่อย ๆ ในนั้นต่อ แต่ถ้ายังอยู่ก็ค่อย ๆ ตัดย่อยต่อไป สุดท้ายเราจะเจอต้นตอ
  8. การหา defect ของของแบบที่แย่งกัน เช่น ใช้ resource singleton อาจใช้การทำ performance test ยิง load เยอะ ๆ จะทำให้เจอปัญหาได้ แถมยังได้ผล performance test ไปพร้อม ๆ กัน
  9. การขอความช่วยเหลือต้องไม่บอกว่าเราทำอะไรไป เพราะจะกลายเป็นการชี้นำคนที่ถูกขอความช่วยเหลือ และอาจเข้าป่าไปพร้อมกัน
  10. การ pair programming ทำให้ทำงานเร็วขึ้นได้ มีคนช่วยกันดู จะได้ไม่หลงป่าไปคนเดียว รวมถึงการหา defect ได้ง่ายขึ้น (กรณีข้อ 8 คนนึงยิง load ทำ performance test อีกคนรันโค้ดหลัก)
  11. การ pair programming ทำให้เกิดการ รีวิว ถกเถียง อันนำมาซึ่งการเรียนรู้ แลกเปลี่ยนกระบวนท่า และพัฒนาทักษะให้พัฒนาซอฟแวร์ได้ดียิ่งขึ้น ๆ ไปได้
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s