สตอรี่พอยต์ เป็นหน่วยสัมพัทธ์สำหรับวัดความซับซ้อนของงานในวิธีการพัฒนาซอฟต์แวร์แบบคล่องตัว แตกต่างจากชั่วโมง สตอรี่พอยต์ไม่เพียงคำนึงถึงเวลาเท่านั้น แต่ยังรวมถึงความซับซ้อน ความเสี่ยง และความไม่แน่นอนของงานด้วย ตามข้อมูลจาก Scrum.org, 2023 ทีมที่ใช้การประเมินแบบสัมพัทธ์ด้วยสตอรี่พอยต์พลาดกำหนดส่งสปรินต์น้อยกว่าทีมที่ประเมินเป็นชั่วโมงถึง 25%
ประเด็นสำคัญ
สตอรี่พอยต์ เป็นเมตริกความซับซ้อนของงานที่ใช้ใน Scrum และวิธีการคล่องตัวอื่นๆ ทีมประเมินแต่ละงานไม่ใช่เป็นชั่วโมง แต่เป็นหน่วยสัมพัทธ์: “งานนี้ซับซ้อนเป็นสองเท่าของงานอ้างอิง” แนวทางนี้ช่วยลดความแตกต่างของความเร็วระหว่างนักพัฒนาต่างๆ และมุ่งเน้นที่ความซับซ้อน
แนวคิดของ สตอรี่พอยต์ เกิดขึ้นในช่วงต้นทศวรรษ 2000 พร้อมกับความนิยมของ Scrum หนึ่งในคนแรกๆ ที่อธิบายวิธีการนี้คือ Ron Jeffries ซึ่งเป็นส่วนหนึ่งของ Extreme Programming (XP) แนวคิดคือการย้ายออกจากการประเมินในรูปแบบ “ชั่วโมงทำงาน” ซึ่งมักจะไม่แม่นยำ ไปสู่ความซับซ้อนเชิงสัมพัทธ์ที่ทีมกำหนดร่วมกัน ปัจจุบัน สตอรี่พอยต์เป็นมาตรฐานอุตสาหกรรมสำหรับทีมคล่องตัว
เมื่อประเมินด้วย สตอรี่พอยต์ ทีมพิจารณาปัจจัยสามประการ: ปริมาณงาน (ปริมาณโค้ด หน้าจอ ตรรกะ) ความซับซ้อน (ความท้าทายทางเทคนิค เทคโนโลยีใหม่) และความไม่แน่นอน (ความต้องการที่ไม่ชัดเจน ความเสี่ยง) หนึ่งสตอรี่พอยต์อาจหมายถึง “งานง่ายที่ไม่มีความเสี่ยง” ในขณะที่ 8 อาจหมายถึง “งานซับซ้อนที่มีความไม่แน่นอนสูง”
การเลือก มาตราส่วนสตอรี่พอยต์ ส่งผลต่อความแม่นยำของการประเมินและความสะดวกในการวางแผน มาตราส่วนที่นิยมมากที่สุดคือลำดับฟีโบนัชชี แต่ก็มีทางเลือกอื่นๆ
| มาตราส่วน | ค่า | ข้อดี | ข้อเสีย |
|---|---|---|---|
| ฟีโบนัชชี | 1, 2, 3, 5, 8, 13, 21 | การกระจายตัวเพิ่มขึ้นตามธรรมชาติสำหรับงานใหญ่ | ยากสำหรับทีมใหม่ |
| เชิงเส้น | 1, 2, 3, 4, 5 | เรียบง่ายและเข้าใจง่าย | ไม่มีการกระจายตัวสำหรับงานใหญ่ |
| ยกกำลัง | 1, 2, 4, 8, 16, 32 | การกระจายตัวสูงสุดสำหรับงานใหญ่ | งานใหญ่แยกแยะได้ยาก |
| เสื้อยืด | S, M, L, XL | การประเมินคร่าวๆ ที่รวดเร็ว | ไม่แม่นยำ ต้องแปลงค่า |
ลำดับฟีโบนัชชี ไม่ได้ถูกเลือกโดยบังเอิญ ความแตกต่างระหว่าง 1 และ 2 น้อยมาก (50%) ในขณะที่ระหว่าง 13 และ 21 มีนัยสำคัญ (62%) สิ่งนี้สะท้อนความเป็นจริง: งานเล็กได้รับการประเมินแม่นยำกว่า งานใหญ่มีการกระจายตัวมากกว่า เมื่องานถูกประเมินที่ 21 สตอรี่พอยต์ ทีมเข้าใจว่า: “เราไม่รู้ว่าจะใช้เวลาเท่าไหร่ แต่มันมากกว่า 13 แน่นอน” มาตราส่วนฟีโบนัชชีป้องกันความแม่นยำที่ผิดพลาด
เพื่อให้มาตราส่วนทำงาน ทีมตกลงเกี่ยวกับ งานอ้างอิง: “งาน X คือ 1 สตอรี่พอยต์” โดยทั่วไปจะเลือกงานที่ง่ายและคุ้นเคยเป็นงานอ้างอิง เช่น “เพิ่มฟิลด์ข้อความบนหน้าจอ” หรือ “แก้ไขบั๊กพิมพ์ผิด” งานอื่นๆ ทั้งหมดจะถูกประเมินโดยเทียบกับงานอ้างอิง หากไม่มีงานอ้างอิง สตอรี่พอยต์จะสูญเสียความหมาย — แต่ละคนเข้าใจหน่วยแตกต่างกัน
ความเร็ว (Velocity) คือจำนวนเฉลี่ยของสตอรี่พอยต์ที่ทีมทำให้เสร็จต่อสปรินต์ นี่คือเมตริกหลักสำหรับการพยากรณ์กำหนดการของโครงการ
ความเร็ว คำนวณจากงานที่เสร็จสมบูรณ์: รวมสตอรี่พอยต์ของงานทั้งหมดที่ทีมทำให้เสร็จ (ตรงตามนิยามของความสำเร็จ) งานที่ยังไม่เสร็จจะไม่นับรวม เพื่อความแม่นยำ ให้ใช้ค่าเฉลี่ยของ 3-5 สปรินต์ล่าสุด ตัวอย่างเช่น ถ้าทีมทำสตอรี่พอยต์เสร็จ 20, 22, 18 และ 24 ใน 4 สปรินต์ล่าสุด ความเร็ว = 21 สต
การทราบ ความเร็ว และปริมาณรวมของแบ็คล็อกในสตอรี่พอยต์ คุณสามารถพยากรณ์จำนวนสปรินต์จนถึงการเผยแพร่ได้ ตัวอย่างเช่น ถ้าแบ็คล็อกมี 210 สตอรี่พอยต์และความเร็ว = 21 จะต้องใช้ 10 สปรินต์ นี่คือการพยากรณ์คร่าวๆ ที่จะปรับปรุงเมื่องานดำเนินไป สำคัญ: ความเร็วคือค่าเฉลี่ย ไม่ใช่ข้อผูกมัด วางแผนโดยใช้ขอบเขตล่าง (18 สต) แทนที่จะใช้ค่าเฉลี่ย
ความเร็ว ไม่สามารถเพิ่มได้ด้วยคำสั่ง — มันเป็นอาการของสุขภาพของกระบวนการ การเติบโตของความเร็วอย่างยั่งยืนทำได้โดย: ลดหนี้ทางเทคนิค ปรับปรุงกระบวนการตรวจสอบโค้ด ลดการสลับบริบท ทำให้การทดสอบและ CI/CD เป็นอัตโนมัติ สำคัญ: ไม่สามารถเปรียบเทียบความเร็วของทีมต่างๆ ได้ — แต่ละทีมกำหนดสตอรี่พอยต์ในแบบของตนเอง
สตอรี่พอยต์ และ ชั่วโมง มีวัตถุประสงค์ต่างกัน และการเลือกระหว่างทั้งสองขึ้นอยู่กับบริบท ทีมที่มีประสบการณ์ใช้ทั้งสองแนวทางสำหรับงานที่แตกต่างกัน
สตอรี่พอยต์ ขาดไม่ได้สำหรับการวางแผนสปรินต์: พวกมันไม่ขึ้นอยู่กับว่าใครจะเป็นคนทำงาน จูเนียร์อาจทำ 2 สตต่อวัน ซีเนียร์ทำ 4 สต แต่การประเมินงานยังคงเป็น 2 สตสำหรับทั้งสองคน สตอรี่พอยต์ช่วยให้ติดตามประสิทธิภาพของทีมโดยไม่ต้องเปรียบเทียบนักพัฒนา ซึ่งช่วยลดแรงกดดันทางการเมืองและปรับปรุงบรรยากาศในทีม
ชั่วโมง จำเป็นสำหรับข้อผูกมัดภายนอก: สัญญา งบประมาณ รายงานลูกค้า ลูกค้าต้องการรู้ไม่ใช่ “8 สตอรี่พอยต์” แต่เป็น “3 สัปดาห์” ในการแปลงสตอรี่พอยต์เป็นชั่วโมง ให้ใช้อัตราการแปลงในอดีต: ทีมรู้ว่า 1 สต เท่ากับประมาณ 4 ชั่วโมงทำงาน การแปลงควรโปร่งใสและขับเคลื่อนด้วยข้อมูล ไม่ใช่การเดา
หลายทีมใช้ แนวทางแบบผสมผสาน: งานถูกประเมินเป็นสตอรี่พอยต์สำหรับการวางแผนสปรินต์ จากนั้นผู้จัดการแปลงเป็นชั่วโมง/วันสำหรับรายงานภายนอก สิ่งสำคัญคือไม่ควรผสมสองระบบในกระบวนการเดียว: ไม่ว่าคุณจะประเมินเป็นสตอรี่พอยต์และหาเวลาจากความเร็ว หรือประเมินเป็นชั่วโมงโดยตรง
การนำสตอรี่พอยต์มาใช้อมักมาพร้อมกับข้อผิดพลาดที่ทำให้ข้อดีของการประเมินแบบสัมพัทธ์สูญเปล่า ต่อไปนี้คือข้อผิดพลาดที่พบบ่อยที่สุด
ข้อผิดพลาดที่พบบ่อยที่สุด — ทีมตกลงกัน: “1 สต = 4 ชั่วโมง” ในกรณีนี้ สตอรี่พอยต์สูญเสียความหมายและกลายเป็นชั่วโมงในชื่ออื่น สตอรี่พอยต์ควรเป็นแบบสัมพัทธ์ ไม่ยึดติดกับเวลา ถ้างาน A ซับซ้อนเป็นสองเท่าของงาน B มันจะได้รับ 2 สต ไม่ว่าจะใช้เวลากี่ชั่วโมงก็ตาม
เมื่องานถูกประเมิน หลังจากเสร็จสิ้น — นั่นไม่ใช่การประเมิน แต่เป็นการบันทึก สตอรี่พอยต์ควรถูกกำหนดก่อนเริ่มงาน ในช่วงเวลาที่มีความไม่แน่นอนสูงสุด การประเมินหลังเสร็จสิ้นบิดเบือนความเร็วและไม่มีประโยชน์ต่อการวางแผน นอกจากนี้ยังสร้างความรู้สึกแม่นยำที่ผิดพลาด
การเปรียบเทียบความเร็ว ของทีม A และทีม B เป็นการกระทำที่ไร้ความหมาย แต่ละทีมกำหนดงานอ้างอิงและมาตราส่วนแตกต่างกัน สำหรับทีมหนึ่ง 1 สต คืองานง่ายหนึ่งชั่วโมง สำหรับอีกทีมหนึ่ง คืองานหนึ่งวัน คุณสามารถเปรียบเทียบได้เฉพาะความเร็วของทีมเดียวกันเมื่อเวลาผ่านไป: ว่ามันเพิ่มขึ้นหรือลดลง
เมื่องาน ที่แตกต่างกัน มีความซับซ้อนเท่ากันได้รับสตอรี่พอยต์ต่างกัน และงานที่ซับซ้อนกว่าได้รับพอยต์น้อยกว่า มาตราส่วนก็จะพัง ทีมควรปรับเทียบมาตราส่วนอย่างสม่ำเสมอ: ทุก 3-6 สปรินต์ ทบทวนย้อนหลังว่าการประเมินสอดคล้องกับความซับซ้อนจริงมากน้อยเพียงใด สิ่งนี้ช่วยปรับปรุงความสอดคล้องของการประเมิน
คำถามที่พบบ่อย
สตอรี่พอยต์ไม่มีค่าที่ตายตัว เทียบเท่าเป็นชั่วโมง มันเป็นหน่วยสัมพัทธ์: 1 สต = ความซับซ้อนของงานอ้างอิง ในการแปลงเป็นชั่วโมง ให้ใช้อัตราการแปลงในอดีตของทีมคุณ: หารจำนวนชั่วโมงทำงานเฉลี่ยต่อสปรินต์ด้วยความเร็ว โดยทั่วไป 1 สต = 4-8 ชั่วโมง แต่สิ่งนี้แตกต่างกันในแต่ละทีม
ได้ สตอรี่พอยต์ สามารถใช้ใน Kanban ได้ แต่มีข้อควรระวัง Kanban ไม่มีสปรินต์ที่ตายตัว ดังนั้นความเร็วจึงคำนวณเป็นรายสัปดาห์หรือรายเดือนแทน ทีม Kanban มักใช้รอบเวลา (Cycle Time) แทนสตอรี่พอยต์ — เวลาที่งานใช้ตั้งแต่เริ่มต้นจนเสร็จสิ้น การเลือกขึ้นอยู่กับลักษณะเฉพาะของทีม
หาก การประเมินแตกต่างกัน (คนหนึ่งให้ 3 สต อีกคนให้ 13) นั่นเป็นสัญญาณว่างานไม่เข้าใจดีพอ แยกงานออกเป็นส่วนย่อยๆ อภิปรายความเสี่ยงและความไม่แน่นอนที่นักพัฒนาต่างๆ มองเห็น หากงานมีขนาดใหญ่ ให้ประเมินเป็น Spike (การวิจัย 2-4 วัน) แทนสตอรี่พอยต์
การเปลี่ยนผ่าน ใช้เวลา 3-6 สปรินต์ เริ่มต้นด้วยการเลือกมาตราส่วน (ฟีโบนัชชีเป็นตัวเลือกที่ปลอดภัยที่สุด) และกำหนดงานอ้างอิง ดำเนินการวางแผนโป๊กเกอร์ 2-3 ครั้ง คำนวณความเร็วหลังจากแต่ละสปรินต์ อย่าแปลงสตอรี่พอยต์เป็นชั่วโมง — ให้ทีมคุ้นเคยกับระบบใหม่ หลังจาก 3 สปรินต์ คุณจะเห็นว่าการวางแผนดีขึ้นมากเพียงใด
ไม่ การประเมินไม่เปลี่ยนแปลง สตอรี่พอยต์คือการประเมินความซับซ้อนเบื้องต้นที่ทำก่อนเริ่มงาน หลังจากงานเสร็จสิ้น การประเมินยังคงเหมือนเดิม แม้ว่าความพยายามจริงจะแตกต่าง การเปลี่ยนการประเมินหลังเสร็จสิ้นบิดเบือนสถิติและทำให้วัตถุประสงค์ของการพยากรณ์ไร้ผล วิเคราะห์ความคลาดเคลื่อนในการทบทวนย้อนหลัง แต่อย่าเปลี่ยนการประเมินย้อนหลัง
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ
อ่านเพิ่มเติม