Planning Poker เครื่องมือการวางแผนที่ดีสำหรับการเริ่ม Sprint ของ Agile


     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/


ป้ายกำกับ

แสดงเพิ่มเติม

บทความยอดนิยม

Software Development Life Cycle (SDLC) คืออะไร ทำไมจำเป็นต่อการพัฒนาซอฟต์แวร์

Automation testing หรือ การทดสอบซอฟต์แวร์อัตโนมัติ คืออะไร ทำไมถึงสำคัญต่อการทดสอบซอฟต์แวร์

ม.ปลายอยากเข้าสายคอม วิทยาการคอม วิศวกรรมคอม เตรียมตัวอย่างไร ต้องมีพื้นฐานอะไรบ้าง

วิธีเก็บ วิเคราะห์ รวบรวม requirement อย่างไรให้มีประสิทธิภาพ

Performance Test คือ อะไร วัดประสิทธิภาพของระบบ ล่มไม่ล่ม จะรู้ได้อย่างไร

8 สิ่งที่ AI จะมาเปลี่ยนโลกในอนาคต

ถอดรหัสความลับเครื่อง Enigma จุดเริ่มต้นและจุดจบของสงครามโลกครั้งที่ 2