ข้อผิดพลาดที่ยอมรับได้คืออะไรเมื่อประเมินระยะเวลาของโครงการ?


23

บริษัท ที่ฉันทำงานอยู่นั้นตั้งเป้าที่จะให้ค่าความผิดพลาดสูงสุด 10% พวกเขาคาดหวังว่านักวิเคราะห์จะไม่พลาดการคาดการณ์มากกว่าหรือน้อยกว่า 10%

ฉันไม่รู้ว่าจะคิดยังไงเพราะฉันไม่มีอะไรจะเปรียบเทียบกับมัน

อะไรเป็นพื้นฐานที่ดีในการวัดหากเราประเมินผิดเกินไปไม่มากก็น้อย เท่าไหร่ (ใน%) คุณคิดว่าเป็นโอเคเพื่อพลาด?


3
ฉันต้องการให้ขอบข้อผิดพลาดถูกระบุโดยทีมทำการประมาณค่าและส่งพร้อมค่าประมาณ โดยขนาดใหญ่นัดแรกของคุณโดยประมาณด้วยคำอธิบายสั้น ๆ ของผลิตภัณฑ์และไม่มีข้อกำหนดที่ชัดเจนจะมีอัตรากำไรสูงสำหรับข้อผิดพลาด เมื่อโครงการได้รับการกำหนดมากขึ้นเรื่อย ๆ อาจมีการประมาณการใหม่ด้วยระยะขอบที่ผิดพลาดน้อยลง
Jesse C. Slicer

3
คุณกำลังบอกว่าถ้าคุณใช้งบประมาณน้อยเกินไปใครบางคนกำลังเดือดร้อน?
pdr

@pdr พวกเขาไม่ได้พูดอะไรเกี่ยวกับผลที่ตามมา
Tulio F.


2
ฉันขอแนะนำให้ดูที่หนังสือ "การประมาณค่าซอฟต์แวร์" โดย Steve McConnell มันมีชิ้นอาหารอันโอชะที่มีความแม่นยำ +/- 10% เป็นไปได้ - แต่เป็นไปได้เฉพาะในโครงการที่มีการควบคุมที่ดี สิ่งนี้อ้างอิงถึงหนังสือโดย Jones ในปี 1998

คำตอบ:


25

หากคุณไม่ได้ประเมินบางสิ่งที่คล้ายกับสิ่งที่คุณและเพื่อนร่วมงานของคุณทำมาก่อนหน้านี้ +/- 10% นั้นเป็นแง่ดีอย่างน่าขัน การจัดการของคุณอาจไม่ได้มีจำนวนมากประสบการณ์กับซอฟต์แวร์หรือพวกเขาไม่ได้ตระหนักถึงข้อ จำกัด ขนาดใหญ่เพื่อการประมาณค่าซอฟแวร์ กระดาษแผ่นนั้นมีวัสดุประกอบมาด้วยและสามารถพบเจอบัณฑิตได้มากมาย

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

ระบบง่าย ๆ อีกอย่างหนึ่ง: Pinocchio หุ่นยนต์ทำด้วยไม้ชิ้นส่วนจมูกของเขาจะเติบโตขึ้นเมื่อเขาพูดปด จะเกิดอะไรขึ้นเมื่อพัก Pinocchio แล้วพูดว่า "จมูกของฉันกำลังโต" ระบบบางระบบไม่สามารถคาดการณ์ได้

ปัญหาทั้งสองนี้มีอยู่แล้วในระบบซอฟต์แวร์ส่วนใหญ่ ด้วยเหตุนี้คุณจะไม่ได้รับการประมาณการเท่ากับ +/- 10%

คำแนะนำของฉันคือให้การคาดการณ์ที่หนักหน่วงทำงานเหมือนเป็นทาสเพื่อให้โครงการเสร็จเร็วที่สุดเท่าที่จะทำได้แล้วดูยุ่งจนกว่าคุณจะอยู่ในระดับต่ำกว่า 10% หรือต่ำกว่า ณ จุดนั้นให้ประกาศความสำเร็จที่น่าตื่นเต้น


คำแนะนำของฉันคือให้การคาดการณ์ที่หนักหน่วงทำงานเหมือนเป็นทาสเพื่อให้โครงการเสร็จเร็วที่สุดเท่าที่จะทำได้แล้วดูยุ่งจนกว่าคุณจะอยู่ในระดับต่ำกว่า 10% หรือต่ำกว่า ณ จุดนั้นให้ประกาศความสำเร็จที่น่าตื่นเต้น พร้อมกับ Dilbert ของคุณเช่น avatar ทำให้มันถูกต้องสำหรับฉันขอบคุณ
Tulio F.

6
@tofs - การขอการประมาณการที่ถูกต้อง (ยกเว้นว่าคุณเกือบทำสิ่งเดียวกันซ้ำ ๆ ซ้ำ ๆ ) ควรเป็นธงเตือนคุณ ความคาดหวังของพวกเขาเป็นแง่ดีแบบไม่สมจริงและคุณจะเป็นคนที่ไม่ได้พบพวกเขา ดีกว่าที่จะบอกพวกเขาตอนนี้หลังจากที่พวกเขาใช้เงินเป็นจำนวนมากจากความมั่นใจในการประมาณการ นอกจากนี้ดูเหมือนว่าจะแก้ตัวถ้าคุณบอกพวกเขาเกี่ยวกับเรื่องนี้ก่อนมือ
psr

@psr ฉันคิดว่าฉันจะต้องทำลายฟองสบู่ของพวกเขาปัญหาคือมันมาจากเบื้องบน ถ้าฉันทำไม่ได้ฉันจะต้องใช้วิธีประเมินที่หนักหน่วงอย่างน่าเสียดาย
Tulio F.

3
การเปรียบเทียบ Rubix Cube ทำงานได้เฉพาะเมื่อคุณโพสต์ครึ่งทางผ่านการแก้ปัญหาลูกบาศก์ผู้บริหารระดับสูงตัดสินว่าสีทึบบนใบหน้าทั้งหมดนั้นเกินไป Web 1.0 และพวกเขาต้องการแถบ NoSql Ajax แทน และจากนั้นผู้ใช้บอกคุณว่าพวกเขาไม่สามารถใช้งานได้จนกว่าจะมีด้านที่เจ็ดกับภาพของแมวที่มัน ...
Tacroy

1
ฉันเคยเป็น บริษัท ภายนอกให้กับ บริษัท อื่นที่บอกฉันว่าพวกเขายอมรับข้อผิดพลาด +/- 10% สำหรับการประมาณการซึ่งมีความแม่นยำอย่างน่าขัน พวกเขาต้องการงานทุกอย่างที่จะต้องประมาณการล่วงหน้าและส่งเสียงครวญครางถ้าฉันกล้าที่จะบอกว่าฉันไม่ได้ทำมันภายในการประเมิน ฉันใช้เวลาส่วนตัวของฉันเพื่อตอบสนองความคาดหวังในที่สุดพวกเขาก็ยุติความร่วมมือกับเราโดยบอกว่าการแก้ไขข้อผิดพลาดบางอย่างของฉันล้มเหลว (อาจเป็น 3 ใน 50) คนเหล่านี้มีความคิดที่โหดเหี้ยม สำหรับพวกเขาฉันเป็นแค่คนเอาต์ซอร์ซ บทเรียนที่ยอดเยี่ยมสำหรับฉันไม่เคยใช้เวลาส่วนตัวของคุณ
Ivan G

3

ฉันลังเลอย่างมากเกี่ยวกับ "ขอบข้อผิดพลาดเป้าหมาย" เพราะขึ้นอยู่กับโครงการ หากคุณพยายามประเมินว่าจะต้องใช้เวลานานเท่าใดในการติดตั้งกำหนดค่าและปรับแต่งระบบ CRM ใหม่โดยที่ไม่มีใครค่อนข้างแน่ใจว่าการปรับแต่งประเภทใดบ้างที่จะต้องมีความจำเป็นและจำเป็นต้องมีการเปลี่ยนแปลงกระบวนการทางธุรกิจประเภทใด บริษัท ไม่มีประวัติโครงการขนาดใหญ่ที่คล้ายกันขอบความผิดพลาดของคุณควรจะค่อนข้างใหญ่ (เช่นคุณอาจเดาได้ว่าจะใช้เวลา 18 เดือน +/- 50% และเสนอราคา 9-27 เดือน) ในขณะที่โครงการดำเนินต่อไปข้อมูลจำเพาะจะชัดเจนขึ้นการตัดสินใจเกี่ยวกับกระบวนการทางธุรกิจนักพัฒนาของคุณจะรู้สึกสบายใจมากขึ้น หากคุณพยายามประเมินระยะเวลาที่จะสร้างเว็บไซต์อีคอมเมิร์ซขั้นพื้นฐานที่ 101 เมื่อคุณ ' มีประวัติที่ดีจาก 100 คนแรกคุณคาดหวังว่าจะสามารถให้การประมาณการที่แม่นยำมากขึ้น แม้ว่าโครงการส่วนใหญ่จะตกอยู่ตรงกลาง

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


ในขณะที่ Bruce Ediger ชี้ให้เห็นว่านักวิเคราะห์สามารถแก้ไขปัญหาได้อย่างไร ฉันคิดว่าคุณพูดอะไรบางอย่างที่ฉันสามารถใช้เมื่อโต้เถียงกับเจ้านายของฉัน
Tulio F.

1

ข้อมูลพื้นฐานที่ดีจะเป็นข้อมูลที่คุณรวบรวมมาจริง

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

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

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


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

PERTเป็นตัวอย่างหนึ่งของกรอบการทำงานที่จะจัดการกับการประมาณค่าโดยใช้เหตุผลเชิงสถิติ ตัวอย่างเช่น:

"จากสิ่งที่ฉันรู้ตอนนี้เรามีระดับความเชื่อมั่น 90% ที่เราสามารถส่งมอบใน 8 เดือนความเชื่อมั่น 95% ใน 10 เดือนความมั่นใจ 99% ใน 2 ปีเป็นต้น"

หมายเหตุที่นี่: ยิ่งพวกเขามั่นใจในตัวคุณมากเท่าไหร่การประมาณก็ยิ่งมากขึ้นเท่านั้น ขึ้นอยู่กับความซับซ้อน (หรือที่คุณอาจจะแม่นยำ) มันอาจแตกต่างกันเล็กน้อยระหว่าง 80% ถึง 90% หรืออาจใหญ่มาก!


สุดท้าย - โชคดี;) หากคุณเคยแก้ปัญหา 'ข้อผิดพลาดสูงสุด' ในการประเมินซอฟต์แวร์โดยคุณสามารถระบุบางอย่างเช่น 'การประมาณของเราทั้งหมดจะเป็น +/- 10%' ให้แน่ใจว่าได้มอบหมายภาพยนตร์บ็อกซ์ออฟฟิศสำหรับส่วนที่เหลือของ เราในอุตสาหกรรมซอฟต์แวร์ ฉันกำลังคิดอะไรบางอย่างที่เหมือนอยู่ระหว่าง Office Space กับ The Matrix: D


1

มันขึ้นอยู่กับขนาดและความซับซ้อนของโครงการเป็นอย่างมาก

หากประมาณการโครงการของคุณบอกว่า 1 สัปดาห์ - 10% เหมาะสม มันหมายถึง +/- 1/2 วัน
หากเป็น 1 เดือน 10% สั่นคลอน - จากประสบการณ์ของฉันมันเป็นไปไม่ได้ที่จะคาดการณ์สิ่งที่คุณจะค้นพบใน 1 เดือน

มากกว่าหนึ่งเดือน - การเดิมพันทั้งหมดปิดแล้ว :)

เหล่านี้เป็นนักพัฒนาซอฟต์แวร์ต่อ - ดังนั้นสำหรับทีมนักพัฒนา 4 คน 1 สัปดาห์ == 1 เดือน

สำหรับทีมนักพัฒนา 4 คนส่วนใหญ่เป็นเรื่องที่ดีที่จะมีรายการคุณลักษณะที่สามารถทำได้ใน 1 เดือนและอยู่ภายใน 10% สำหรับฟีเจอร์เหล่านั้น จากนั้นประมาณการใหม่สำหรับเดือนถัดไป

ฉันได้ตั้งสมมติฐานที่ไร้เดียงสาที่นี่

  1. นักพัฒนาทั้งหมดสามารถทำงานแบบขนาน
  2. ยังไม่ถือว่าเป็นผู้ทดสอบ - พวกเขาควรมีเวลาทดสอบ
  3. นักพัฒนาทั้งหมดเท่ากัน - ส่วนหน้าส่วนหลังนักออกแบบ ฯลฯ ...

คุณต้องแยกตัวประกอบเหล่านี้ด้วยค่ะ แต่นี่เป็นแนวคิดทั่วไป


1

มีตัวแปรมากมาย:

  1. โครงการนานเท่าไหร่?

  2. โครงการจะจัดการอย่างไร น้ำตก? เปรียว? การแย่งชิงกัน?

ฉันจะสมมติจากคำถามน้ำตก หากเป็นกรณีนี้คุณคาดหวังว่าจะล้มเหลวไปบ้างในอัตราร้อยละที่กำหนดคำขอมาร์จิ้น

หากคำตอบคือวิธีการแบบ Agile โดยเฉพาะอย่างยิ่ง SCRUM ไม่สำคัญว่าเปอร์เซ็นต์ส่วนต่างคืออะไร ระยะขอบของข้อผิดพลาด 50% ใน 2 สัปดาห์ Sprint คือ 1 สัปดาห์ใน 1 สัปดาห์ Sprint เป็น 2.5 วันทั้งสถานการณ์กรณีเลวร้ายที่สุด นี่เป็นเพราะวันที่จัดส่งถูกประเมินใหม่ทุก Sprint และจะได้รับความแม่นยำมากขึ้นเมื่อเวลาผ่านไปแทนที่จะน้อยลงเรื่อย ๆ

ด้วยความผิดพลาด 50% ของข้อผิดพลาด Waterfall ไม่ได้รับการแจ้งเตือนอย่างใดอย่างหนึ่ง แต่ในโครงการ 12 เดือนที่ 6 เดือนและไม่ได้รับการค้นพบ / ยอมรับจริง ๆ มันไม่ดีจนกระทั่ง 10 เดือนใน 12 เดือน


0

ย้อนกลับไปเมื่อฉันเคยเป็นผู้นำทีมซอฟท์แวร์ซึ่งอยู่รอบ ๆ ขอบเขตของยุคครีเทเชียส / ตติยภูมิเราจริง ๆ แล้วใกล้จะถึง +/- 10% จากการประมาณ ประมาณ +/- 15% ถ้าหน่วยความจำที่หลบของฉันทำหน้าที่ แต่นี่เป็นเพราะเรากำลังประเมินสิ่งที่เราได้ทำไปแล้ว : เฟิร์มแวร์การสื่อสารแบบเรียลไทม์ค่อนข้างง่ายซึ่งเอาไบต์จาก A และย้ายไปยัง B โดยใช้ภาษาที่เราคุ้นเคยในสภาพแวดล้อมแบบเรียลไทม์ที่ออกแบบโดยเรา พูดคุยกับฮาร์ดแวร์ที่ออกแบบโดย บริษัท ไม่กี่สำนักงาน จำนวนของสายพันธุ์เล็กน้อยในรูปแบบดังกล่าวข้างต้นอย่างแท้จริงสำหรับปีที่ผ่านมา

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


0

คุณอาจเคยได้ยินเรื่อง 300% ใช่ไหม?

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

ฉันคิดว่าเราประเมินได้ไม่ดีเพราะ:

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

ดังนั้นในระดับสูงสุดด้วยกลุ่มธุรกิจที่ต้องการการประมาณการที่ดีกว่า 300% สิ่งที่เราทำคือการตั้งเป้าหมายการประมาณการที่ดีพอสมควร แต่ในราคาที่สูงกว่าและกว้างกว่า "เราจะมีฟังก์ชั่นแก้ไขผู้ใช้" แม้ว่าเวอร์ชั่น 1 จะมีความหมายสำหรับ 1 กลุ่มผู้ใช้สำหรับการเปลี่ยน 1 ฟิลด์เท่านั้น

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

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