เหตุใดซีรีย์ Fibonacci จึงใช้ในการวางแผนโป๊กเกอร์แบบ Agile? [ปิด]


94

เมื่อประมาณขนาดสัมพัทธ์ของเรื่องราวของผู้ใช้ในการพัฒนาซอฟต์แวร์แบบ Agile สมาชิกในทีมควรจะประมาณขนาดของเรื่องราวของผู้ใช้เป็น 1, 2, 3, 5, 8, 13, ... ดังนั้นค่าโดยประมาณควรคล้ายกับอนุกรมฟีโบนักชี แต่ฉันสงสัยว่าทำไม?

คำอธิบายของhttp://en.wikipedia.org/wiki/Planning_pokerใน Wikipedia มีประโยคลึกลับ:

เหตุผลในการใช้ลำดับฟีโบนักชีคือเพื่อสะท้อนถึงความไม่แน่นอนโดยธรรมชาติในการประมาณสิ่งของที่มีขนาดใหญ่ขึ้น

แต่ทำไมรายการขนาดใหญ่จึงมีความไม่แน่นอนโดยกำเนิด? ความไม่แน่นอนจะสูงขึ้นไม่ใช่หรือถ้าเราทำการวัดน้อยลงหมายความว่าถ้ามีคนประมาณเรื่องเดียวกันน้อยลง? และแม้ว่าความไม่แน่นอนจะสูงขึ้นในเรื่องราวที่ใหญ่กว่าเหตุใดจึงหมายความถึงการใช้ลำดับฟีโบนักชี มีเหตุผลทางคณิตศาสตร์หรือสถิติหรือไม่? มิฉะนั้นการใช้ชุด Fibonacci สำหรับการประมาณค่าจะรู้สึกเหมือนวิทยาศาสตร์ของ CargoCult สำหรับฉัน


9
อาจเป็นเพียงเพราะลำดับฟีโบนักชี "เจ๋ง" ลำดับเลขชี้กำลังจะทำงานได้ 2^nอาจเว้นวรรคตัวเลขมากเกินไปดังนั้นทำไมไม่ใช้ลำดับฟีโบนักชีซึ่งเกี่ยวกับc*phi^nอะไร?
interjay

+1 สำหรับ "เจ๋ง" ฉันเคยทำงานร่วมกับโปรแกรมเมอร์มาก่อนที่ต้องการผลักดันสิ่งแปลก ๆ เข้าสู่ Fibonacci - มันเป็น 'สิ่งของ' ของพวกเขาเสมอ
KevinDTimm


2
คำถามนี้ดูเหมือนจะไม่ตรงประเด็นเพราะมันเกี่ยวกับ ... ?
Adriano Repetti

คำตอบ:


78

อนุกรมฟีโบนักชีเป็นเพียงตัวอย่างหนึ่งของมาตราส่วนประมาณค่าเลขชี้กำลัง เหตุผลที่ใช้มาตราส่วนชี้แจงมาจากทฤษฎีสารสนเทศ

ข้อมูลที่เราได้รับจากการประมาณการเติบโตช้ากว่าความแม่นยำของการประมาณมาก ในความเป็นจริงมันเติบโตเป็นฟังก์ชันลอการิทึม นี่คือสาเหตุของความไม่แน่นอนที่สูงขึ้นสำหรับสินค้าขนาดใหญ่

การกำหนดฐานที่เหมาะสมที่สุดของมาตราส่วนเลขชี้กำลัง (การทำให้เป็นมาตรฐาน) เป็นเรื่องยากในทางปฏิบัติ ฐานที่สอดคล้องกับมาตราส่วน Fibonacci อาจเหมาะสมที่สุดหรือไม่ก็ได้

นี่คือคำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับเหตุผลทางคณิตศาสตร์: http://www.yakyma.com/2012/05/why-progressive-estimation-scale-is-so.html


4
นี่เป็นคำอธิบายที่ลึกซึ้งยิ่งขึ้นที่ฉันหวังไว้ ขอบคุณสำหรับคำตอบนี้
asmaier

“ [a] ความพยายามในการประมาณค่าเพียงเล็กน้อยช่วยได้มากและ [a] ความพยายามในการประมาณค่าที่มากก็ช่วยได้ไม่น้อย”บทความดีๆ
ptim

40

จากหกหมายเลขแรกของลำดับฟีโบนักชีสี่ตัวเป็นจำนวนเฉพาะ ซึ่งจะจำกัดความเป็นไปได้ที่จะแบ่งงานออกเป็นงานเล็ก ๆ เท่า ๆ กันเพื่อให้หลายคนทำงานควบคู่กันไป การทำเช่นนั้นอาจนำไปสู่ความเข้าใจผิดว่าความเร็วของงานสามารถปรับขนาดได้ตามสัดส่วนกับจำนวนคนที่ทำงานนั้น ซีรี่ส์ 2 ^ n มีความเสี่ยงต่อปัญหาดังกล่าวมากที่สุด ในความเป็นจริงลำดับฟีโบนักชีบังคับให้คนหนึ่งประเมินงานที่เล็กกว่าใหม่ทีละงาน


7
นั่นคือมุมมองที่น่าสนใจ แต่ทำไมจึงไม่ใช้อนุกรมของจำนวนเฉพาะ 1,2,3,5,7,11, ... ใช้สำหรับการประมาณแทนอนุกรมฟีโบนักชี?
asmaier

2
นั่นเป็นความคิดที่ยอดเยี่ยม อันที่จริงมักเกิดขึ้นบ่อยพอที่จะเลือกเฉพาะที่สร้าง [1.5-2.0] ^ n ซีรี่ส์ ตัวเลขฟีโบนักชีนั้นง่ายกว่าที่จะสร้างขึ้นใหม่จากส่วนหัว แต่เครื่องมือเช่น JIRA อนุญาตให้ระบุชุดของค่าใดก็ได้
KillerInsect

5
อีกจุดคือระยะห่างระหว่างการประมาณการ เวลาที่คุณประเมินมากขึ้นความแน่นอนก็จะน้อยลง ระหว่าง 3-5 และ 5-7 คือความแตกต่างที่เหมือนกันซึ่งหมายถึงความแน่นอนเดียวกัน แต่เมื่อคุณต้องเลือกระหว่าง 8 ถึง 13 (ช่องว่างที่ใหญ่กว่า) มันบังคับให้คุณตรวจสอบจริงๆว่าคุณเป็นคนอย่างไร
คริส

@asmaier ฉันคิดว่าเป็นเพราะตัวเลข fibonacci เป็นเลขชี้กำลังโดยที่จำนวนเฉพาะเป็นเส้นตรงสำหรับตัวอย่างขนาดเล็กที่มักใช้เมื่อประมาณเรื่องราว
icc97

17

ตามบล็อกเปรียวนี้

"เพราะพวกมันเติบโตในอัตราเดียวกับที่มนุษย์เราสามารถรับรู้การเปลี่ยนแปลงขนาดที่มีความหมายได้"

ช่ายยย. ฉันคิดว่าเป็นเพราะพวกเขาเพิ่มบรรยากาศแห่งความชอบธรรม (Fibonacci!

แต่คุณจะได้ผลลัพธ์เดียวกันโดยใช้การปรับขนาดเสื้อยืด ...


1
คำตอบนี้เกือบจะเหมือนกันทุกประการ (อ้างอิงลิงก์เดียวกันและข้อความอ้างอิงเดียวกัน) กับคำตอบจาก @kajเมื่อสองเดือนก่อน
icc97

1
ฉันชอบวิธีที่บุคคลนี้ยกมา ทำให้ฉันเข้าใจได้ทันที
nishantbhardwaj2002

15

คุณต้องการสิ่งที่เป็นเอกซ์โพเนนเชียลเพื่อให้คุณสามารถแสดงจำนวนเวลาใดก็ได้โดยมีข้อผิดพลาดสัมพัทธ์คงที่ ความแม่นยำของการประมาณค่าของคุณมีแนวโน้มที่จะเป็นสัดส่วนกับการประมาณของคุณ

คุณต้องการอะไร: a) ด้วยจำนวนเต็ม b) เลขชี้กำลัง c) ง่าย

แล้วทำไม Fibonacci แทนที่จะเป็น 1 2 4 8? ฉันเดาว่าเป็นเพราะ fibonacci เติบโตช้าลง มันอยู่ใน goldratio ^ n และ goldratio = 1.61 ...


3
"ความแม่นยำของการประมาณค่าของคุณก็มีแนวโน้มที่จะแปรผันตามการประมาณของคุณ" นี่เป็นกฎในสถิติหรือเป็นสิ่งที่มนุษย์ทำตามปกติ? หากคุณใช้ตัวเลขฟีโบนักชีคุณจะถือว่าข้อผิดพลาดสัมพัทธ์ของการประมาณค่าประมาณ f (n-1) / f (n) = 1-goldenratio = 61% ดังนั้นหากมีค่าประมาณ 5 คนจะถือว่าสิ่งนี้มีข้อผิดพลาดสัมพัทธ์ประมาณ 3 ดังนั้นความซับซ้อนที่เพิ่มขึ้นอย่างมีนัยสำคัญจะเป็นเพียง 8 หรือสูงกว่าเท่านั้น อย่างไรก็ตามเหตุใดข้อผิดพลาดสัมพัทธ์จึงถือว่าประมาณ 60% นี่เป็นเพียงกฎง่ายๆหรือไม่?
asmaier

1
เพื่อตอบความคิดเห็นของตัวเอง: Mike Cohn (พฤศจิกายน 2548) "การประมาณและการวางแผนแบบ Agile" กล่าวว่า: "จากการศึกษาพบว่าเราสามารถประมาณสิ่งต่างๆที่อยู่ในลำดับความสำคัญได้ดีที่สุด (Miranda 2001; Saaty 1996)"
asmaier

1
มิแรนดา (2544): "การปรับปรุงประมาณการอัตนัยโดยใช้การเปรียบเทียบแบบจับคู่" กล่าวว่า "ฉันได้ทำการสำรวจอย่างไม่เป็นทางการในหมู่เพื่อนร่วมงานโดยมีคน 30 คนจากประเทศต่างๆและจากทั้งภาคอุตสาหกรรมและสถาบันการศึกษาได้ให้ข้อมูลสำหรับมาตราส่วนผลการศึกษาชี้ให้เห็นว่าความสอดคล้องระหว่างขนาดและ คำอธิบายด้วยวาจาในโดเมนซอฟต์แวร์ใกล้เคียงกับที่แสดงในตารางที่ 3 มากกว่าของ Saaty " และในตารางนี้เราจะเห็นว่ามีสิ่งที่เรียกว่า "ใหญ่กว่าเล็กน้อย" หากมีขนาด 125% ของขนาดฐานและจะเรียกว่า "ใหญ่กว่า" ถ้าเป็น 175% ของขนาดฐาน
asmaier

1
หมายเลข Fibonacci ถัดไปคือ 161% ของจำนวน Fibonacci ในอดีตดังนั้นจึงพอดีระหว่าง "ใหญ่กว่าเล็กน้อย" และ "ใหญ่กว่า" ในตาราง Mirandas ดูเหมือนการสำรวจอย่างไม่เป็นทางการนี้เป็นที่มาของสาเหตุที่เราใช้ตัวเลข Fibonacci เนื่องจากอัตราส่วนของพวกเขาใกล้เคียงกับที่เราหมายถึงหากเราบอกว่ามีอะไรที่ใหญ่กว่า
asmaier

@asmaier ฉันคิดว่าคุณควรเพิ่มความคิดเห็นเหล่านี้เป็นคำตอบแยกต่างหากมันยอดเยี่ยมหรืออาจจะอยู่ในคำถาม PM.SE ที่เชื่อมโยงเนื่องจากน่าเสียดายที่ถูกล็อค
icc97

7

ลำดับฟีโบนักชีเป็นเพียงหนึ่งในหลาย ๆ ส่วนที่ใช้ในโป๊กเกอร์การวางแผนโครงการ

เป็นการยากที่จะประมาณการหน่วยงานขนาดใหญ่ได้อย่างแม่นยำและง่ายที่จะจมอยู่กับการสนทนาในชั่วโมงเทียบกับวันหากตัวเลขของคุณ "จริง" เกินไป

ฉันชอบคำอธิบายที่http://www.agilelearninglabs.com/2009/06/story-sizing-a-better-start-than-planning-poker/กล่าวคือชุด Fibonacci แสดงถึงชุดของตัวเลขที่เราสามารถแยกแยะได้โดยสังหรณ์ใจ ระหว่างพวกเขาเป็นขนาดที่แตกต่างกัน


4

ฉันใช้ Fibonacci ด้วยเหตุผลสองประการ:

  • เมื่องานมีขนาดใหญ่ขึ้นรายละเอียดก็ยากที่จะเข้าใจ
  • ค่าประมาณงานคือจำนวนชั่วโมงสำหรับทุกคนในทีมที่จะทำงานให้เสร็จ
  • ไม่ใช่ทุกคนในทีมที่จะมีประสบการณ์ในการทำงานบางอย่างเท่ากันเพื่อเพิ่มความไม่แน่นอนด้วยเช่นกัน
  • มนุษย์มีความเหนื่อยล้าจากงานที่ใหญ่ขึ้นและอาจซับซ้อนขึ้น แม้ว่างานที่ซับซ้อนเป็นสองเท่าจะได้รับการแก้ไขในเวลาสองเท่าสำหรับคอมพิวเตอร์นักพัฒนาอาจต้องใช้เวลามากกว่านี้เล็กน้อย

ในขณะที่เราเพิ่มความไม่แน่นอนทั้งหมดเข้าไปเราก็ไม่ค่อยแน่ใจว่าชั่วโมงนั้นควรจะเป็นเท่าไหร่ มันจะง่ายกว่าถ้าเราสามารถวัดได้ว่างานนี้ใหญ่ / เล็กกว่างานอื่นที่เราประเมินไว้แล้ว เมื่อเราเพิ่มขนาด / ความซับซ้อนของงานผลกระทบของความไม่แน่นอนก็จะเพิ่มขึ้นด้วย ฉันจะใช้เวลาประมาณ 13 ชั่วโมงอย่างมีความสุขสำหรับงานที่ดูเหมือนใหญ่เป็นสองเท่าของงานที่ฉันเคยประมาณไว้ที่ 5 ชั่วโมง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.