Planning Poker เป็นเทคนิคการวางแผนการทำงานในรอบการทำงาน (Sprint) สำหรับกระบวนการทำงานแบบ Agile โดยอาศัยการให้คะแนนจาก Planning Poker cards จากทุกคนในทีมเพื่อประเมินความยากง่ายของงาน สำหรับคะแนนจาก Planning Poker cards จะมีตั้งแต่ 0, 1/2, 1, 2, 3, 5, 8, 13, 20, 40 และ 100 ยิ่งคะแนนมากแสดงถึงงานที่ทำมีความยาก การให้คะแนน การให้คะแนนในรอบแรกๆนั้นคนในทีมอาจจะมีความคิดเห็นที่แตกต่างกันแต่จะมีการแลกเปลี่ยนความคิดเห็นซึ่งกันละกันจนได้คะแนนที่เป็นเอกฉันท์ การให้ทุกคนเข้ามามีส่วนร่วมในการประเมินงานนั้นจะทำให้เราสามารถประเมินและวางแผนงานที่มีสิทธิภาพมากยิ่งขึ้น
ก่อน Planning Poker ควรเตรียมตัวอย่างไรบ้าง ?
หลายคนคิดว่าในส่วนของการให้คะแนนนั้นคงไม่ต้องเตรียมอะไรมากแค่ฟัง PO อธิบายงานแล้วก็น่าจะให้คะแนนได้เลย แต่แท้จริงแล้วควรจะมีกิจกรรมมากกว่านี้เพื่อการประเมินงานที่ละเอียดมากขึ้นโดยควรจะเริ่มจาก
1. เข้าไปอ่านทำความเข้าใจ Story ใน Backlog ก่อนที่จะเริ่ม Planning
2. จดคำถามหรือข้อสงสัยเกี่ยวกับ Requirement เพื่อเตรียมสอบถามในระหว่างการประชุม
3. ศึกษาวิธีการที่จะนำมาพัฒนาระบบหากมีหลายวิธีให้จดเป็น list ไว้เพื่อนำเสนอในการประชุม เพราะแต่ละวิธีอาจจะส่งผลต่อความซับซ้อนของงาน
4. บอกถึงข้อจำกัดในการใช้งาน(ถ้ามี) โดยบอกว่าอะไรจะครอบคลุมหรือไม่ครอบคลุมใน Story นี้บ้าง เพราะบางครั้งข้อจำกัดนี้เองอาจะทำให้เกิดเป็น Story อื่นแต่หากไม่บอกข้อกำจัดไว้แล้ว PO อาจจะเข้าใจได้ว่าควรจะถูกทำใน Story นี้แล้ว
5. ทดลองให้คะแนน Poker cards จากมุมมองของตนเองก่อน
ระหว่าง Planning Poker ควรมีกิจกรรมอะไรบ้าง ?
1. เริ่มจาก PO/BA เป็นผู้อธิบายรายละเอียด Story ที่อยู่ใน Backlog ให้ทุกคนทราบ
2. สรุปทำความเข้าในเนื้อหาใน Story อีกครั้ง
3. สอบถามข้อสงสัยหรือเนื้อหาส่วนที่ยังไม่เข้าใจ
4. ให้คะแนนเพื่อประเมิน Story นั้นๆ
5. แลกเปลื่ยนความคิดเห็นถึงคะแนนการให้คะแนนในกรณีที่ทุกคนในทีมให้คะแนนไม่เป็นเอกฉันท์ โดยใช้วิธีการสอบถามแต่ละคนว่าทำไมถึงให้คะแนนที่ตัวเองยกขึ้นมา เช่น บางคนให้ 2 คะแนน บางคนให้ 5 คะแนน ในส่วนการแลกเปลื่ยนความคิดเห็นนี้เองเราอาจจะหยิบยกวิธีที่เราได้เตรียมพัฒนาระบบไว้ก่อนหน้านั้นแล้วมาอธิบายให้คนในทีมว่าเรานั้นคิดอย่างไร เราเลือกวิธีไหนในการพัฒนาซอฟต์แวร์ ซึ่งผลลัพธ์จากขั้นตอนนี้เราต้องได้คะแนนที่เป็นเอกฉันท์สำหรับ Story นั้นๆ
Poker cards ตัวแปรสำคัญในการประเมินงาน
หลายคนคงยังสงสัยอยู่ว่าตัว Poker cards ที่ใช้ในการประเมินงานแต่ละ Story นั้นมีที่มาอย่างไรบ้างทำไมถึงต้องใช้เลข 0, 1, 2, 3, 5, 8, 13, 20, 40 และ 100 เท่านั้นในการประเมิน ทำไมไม่เป็นเลขจำนวนนับ Poker Cards นั้นใช้แนวความคิดการสร้างตัวเลขจากลำดับจำนวนฟีโบนัชชี (Fibonacci Sequence) การใช้ตัวเลขฟีโบนัชชีนั้นมีประสิทธิภาพกว่าจำนวนนับคือมีจำนวนตัวเลขที่ไม่เยอะจนเกินไป เช่น หากใช้เลขจำนวนนับคน 3 ประเมินงานอาจจะให้คะแนนตั้งแต่ 9 10 และ 11 ได้ ทำให้จะใช้เวลานานกว่าจะสรุปว่าสุดท้ายแล้วคะแนนที่ให้ใน Story นั้นๆเป็นเท่าไหร่ แต่หากใช้เลขฟีโบนัชชีก็ประเมินได้เลขว่าคะแนนของ Story นั้นคือ 8 จะทำให้ง่ายต่อการประเมินและสรุปคะแนนมากกว่า การให้คะแนนนั้นจะต้องคำนึงถึง 2 ปัจจัยคือความซับซ้อนของงานและเวลาที่คิดว่าจะใช้ สำหรับแนวทางการให้คะแนนนั้นสามารถสรุปเป็นแนวทางได้ดังต่อไปนี้
คะแนน | ความหมาย |
---|---|
0 | งานนั้นได้ทำเสร็จไปแล้ว |
1, 1/5 | งานนั้นมีขนาดเล็กและทำอย่างง่ายมาก |
2,3 | สำหรับงานขนาดเล็กและมีความซับซ้อนน้อย |
5,8,13 | งานมีขนาดกลางและเริ่มมีความซับซ้อน |
20,40 | งานมีขนาดใหญ่และมีความซับซ้อนมาก |
100 | งานมีขนาดใหญ่มากและมีความซับซ้อนมากที่สุด |
? | ไม่สามารถประเมินงานได้ว่าใช้เวลานานแค่ไหน |
หลัง Planning แล้วต้องทำอะไรอีกไหม ?
หลังจากเสร็จกิจกรรม Planning แล้วงานทั้งหมดที่เตรียมไว้ก็จะถูกนำเข้ามาใน Sprint หน้าที่หลักของทุกคนในทีมนั้นควรจะทำให้เสร็จตามที่ได้วางแผนไว้ เช่น ใน Sprint นี้เรายืนยันกับ PO ว่าเราจะทำ Story ที่รวมกัน 30 แต้มให้เสร็จภายใน Sprint นี้ แต่บางครั้งมันก็อาจไม่ราบรื่นอย่างที่คิดเพราะบางทีอาจจะเจอว่าระหว่างที่ Develop อยู่นั้นก็พบว่าความซับซ้อนมันอาจจะมากกว่าที่คิดซึ่งหากพบเหตุการณ์เช่นนี้เรามีหน้าที่นำเสนอปัญหาให้กับทีมกับ PO ให้รับทราบเพื่อได้หาทางแก้ปัญหาได้ เช่น อาจจะให้ผู้เชี่ยวชาญจากทีมอื่นเข้ามาช่วยดู หรืออาจจะต้องปรับคะแนนของ Story นั้นๆใหม่แต่ก็ไม่ควรพบเหตุการณ์เช่นนี้บ่อยจนเกินไปเพราะบางทีมันอาจจะหมายถึงเราไม่ได้ทำการบ้านมาก่อน
สิ่งสำคัญอีกอย่างหนึ่งที่ควรทำหลังจากจบ Sprint แล้วคือหา Velocity ของทีมที่แม่นยำให้ได้ สมมติว่า Sprint นี้ทีมวางแผนไว้ว่าจะทำ Story ซึ่งมีคะแนนทั้งหมด 30 คะแนนและสามารถทำเสร็จทันตามเวลาไม่ขาดไม่เกินแสดงว่าใน Sprint ต่อๆไปก็ควรทำงานในปริมาณเท่านี้ แต่หากวางแผนไว้มากหรือน้อยจนเกินไปก็ต้องมีการปรับลดแต้มให้มีความเหมาะสม หากทำไปเรื่องเราจะได้ตัวเลขที่เหมาะสม (Baseline) เพื่อใช้ในการวางแผนครั้งต่อไป เราควรจะมีการประเมินแบบนี้ตลอดเพราะอาจจะมีปัจจัยหลายปัจจัยกระทบต่อคะแนน เช่น มีจำนวนคนเพิ่มหรือลดลง ทีมสามารถทำงานได้เร็วมากขึ้นจากความชำนาญ เป็นต้น
ตัวอย่างเว็บไซต์ที่ใช้ทำ Planning Poker
planningpoker เป็นเว็บไซต์หนึ่งที่มี UI สวยงามน่าใช้ เริ่มจากต้องสมัครสมาชิกก่อนเข้าใช้บริการ เมื่อเข้ามาแล้วจะมี 1 คนเป็น Host สร้างชื่อ Story ที่จะให้สมาชิกในทีมลงคะแนน เมื่อสร้าง Story เสร็จแล้วคนในทีมก็สามารถเข้ามาร่วมและลงคะแนนได้ เมื่อทุกคนลงคะแนนเสร็จแล้วคนเป็น Host ก็จะกด End Game เพื่อดูคะแนนของแต่ละคนที่ร่วมลงคะแนน
เป็นอีกเว็บไซต์หนึ่งที่ใช้งานง่ายและใช้งานได้อย่างรวดเร็วเพราะไม่ต้อง Login ระบบก่อนก็สามารถเข้าใช้งานได้ โดยคนที่เป็น Host จะให้เลข Session กับคนอื่นให้เข้ามา Vote และเห็นคะแนนได้ทันที
เว็บไซต์โทนสีฟ้าน่าใช้โดยจะต้องสมัครสมาชิกก่อน จากนั้น Host จะสร้าง link ให้สมาชิกคนอื่นเข้ามาลงคะแนนซึ่งสมาชิกคนที่จะเข้ามาร่วมลงคะแนนนั้นไม่จำเป็นต้องสมัครสมาชิกก็ได้ จากนั้นเมื่อทุกคนเข้ามาอยู่ในห้องแล้วก็จะเริ่มการลงคะแนน
Reference:
- https://www.visual-paradigm.com/scrum/what-is-agile-planning-poker/
- https://mdalmijn.com/12-common-mistakes-made-when-using-story-points/