อ่าน "Clean Coder" ของ Bob Martin (และ "Clean Code" ขณะที่คุณอยู่ในนั้น) ต่อไปนี้มาจากหน่วยความจำ แต่ฉันขอแนะนำให้คุณซื้อสำเนาของคุณเอง
สิ่งที่คุณต้องทำคือค่าเฉลี่ยถ่วงน้ำหนักสามจุด คุณทำการประมาณสามครั้งสำหรับงานแต่ละชิ้น:
- สถานการณ์กรณีที่ดีที่สุด - สมมติว่าทุกอย่างถูกต้อง (a)
- สถานการณ์กรณีที่เลวร้ายที่สุด - สมมติว่าทุกอย่างผิดพลาด (b)
- การคาดเดาที่เกิดขึ้นจริง - สิ่งที่คุณคิดว่าอาจจะใช้ (c)
ค่าประมาณของคุณคือ (a + b + 2c) / 4
- ไม่มันจะไม่ถูกต้อง มีวิธีการประเมินที่ดีกว่า แต่วิธีนี้รวดเร็วเข้าใจง่ายและลดการมองโลกในแง่ดีโดยทำให้คุณพิจารณากรณีที่เลวร้ายที่สุด
- ใช่คุณจะต้องอธิบายต่อผู้จัดการของคุณว่าคุณไม่คุ้นเคยกับรหัสและมันเป็นสิ่งที่คาดเดาไม่ได้สำหรับคุณที่จะทำให้ บริษัท ประเมินอย่างแม่นยำและแม่นยำโดยไม่ต้องใช้เวลานานในการตรวจสอบรหัสในแต่ละครั้งเพื่อปรับปรุงการประเมิน บอกว่าคุณต้องการ n วันเพียงเพื่อให้ บริษัท ประมาณว่าจะใช้เวลาอีกกี่วัน) หากคุณเป็น "JuniorDev" สิ่งนี้ควรเป็นที่ยอมรับสำหรับผู้จัดการที่เหมาะสม
- คุณควรอธิบายให้ผู้จัดการของคุณทราบว่าค่าประมาณของคุณโดยเฉลี่ยขึ้นอยู่กับกรณีที่ดีที่สุดกรณีที่แย่ที่สุดและเป็นไปได้และให้ตัวเลขของพวกเขาซึ่งทำให้พวกเขามีแถบข้อผิดพลาด
- อย่าเจรจากับการประมาณ - หากผู้จัดการของคุณพยายามใช้กรณีที่ดีที่สุดสำหรับการประเมินทุกครั้ง (พวกเขาเป็นคนโง่ - แต่ฉันได้เจอแบบนี้) แล้วก็กลั่นแกล้ง / กระตุ้นให้คุณพยายามตีเส้นตาย กำลังจะผิดหวังบางครั้ง ให้อธิบายเหตุผลที่อยู่เบื้องหลังการประมาณการ (กรณีที่ดีที่สุดกรณีที่เลวร้ายที่สุดและกรณีที่น่าจะเป็นไปได้) และให้เข้าใกล้ค่าเฉลี่ยถ่วงน้ำหนักเกือบทุกครั้งและคุณควรจะตกลง นอกจากนี้เพื่อวัตถุประสงค์ของคุณเองให้เก็บสเปรดชีทประมาณการและเพิ่มค่าจริงของคุณเมื่อคุณทำเสร็จแล้ว สิ่งนี้จะช่วยให้คุณมีความคิดที่ดีขึ้นเกี่ยวกับวิธีการปรับค่าประมาณของคุณ
แก้ไข:
สมมติฐานของฉันเมื่อฉันตอบนี้:
- OP เป็นนักพัฒนาเยาวชน (ขึ้นอยู่กับชื่อผู้ใช้ที่เลือก) คำแนะนำใด ๆ ที่ได้รับนั้นไม่ได้มาจากมุมมองของผู้จัดการโครงการหรือหัวหน้าทีมที่คาดว่าจะสามารถดำเนินการประมาณการที่ซับซ้อนมากขึ้นทั้งนี้ขึ้นอยู่กับอายุของสภาพแวดล้อมการพัฒนา
- ผู้จัดการโครงการได้สร้างแผนโครงการซึ่งประกอบด้วยงานจำนวนมากที่วางแผนไว้ว่าจะใช้เวลาหลายเดือนในการส่งมอบ
- OP กำลังถูกขอให้จัดเตรียมจำนวนประมาณการสำหรับงานที่พวกเขาได้รับมอบหมายจากผู้จัดการโครงการของพวกเขาที่ต้องการตัวเลขที่แม่นยำอย่างสมเหตุสมผล (ไม่ใช่เส้นโค้งความน่าจะเป็น :)) เพื่อป้อนเข้าสู่แผนโครงการและใช้เพื่อติดตามความคืบหน้า
- OP ไม่ได้มีสัปดาห์ในการผลิตแต่ละประมาณการและได้รับการเผาไหม้มาก่อนด้วยการประเมินในแง่ดีและต้องการวิธีการที่แม่นยำกว่าการเกาะนิ้วในอากาศและพูดว่า "2 สัปดาห์เว้นแต่รหัสจะมีความพิเศษเฉพาะในกรณีที่ 2 เดือน หรือมากกว่า".
ค่าเฉลี่ยถ่วงน้ำหนักสามจุดทำงานได้ดีในกรณีนี้ มันรวดเร็วเข้าใจได้โดยไม่เกี่ยวกับด้านเทคนิคและมากกว่าการประมาณการหลายอย่างควรเฉลี่ยกับสิ่งที่ใกล้ถึงความแม่นยำ โดยเฉพาะอย่างยิ่งถ้า OP ใช้คำแนะนำของฉันเกี่ยวกับการเก็บบันทึกการประมาณการและตามจริง เมื่อคุณรู้ว่า "กรณีที่แย่ที่สุด" ในโลกแห่งความเป็นจริงและ "กรณีที่ดีที่สุด" มีลักษณะอย่างไรคุณสามารถป้อนข้อมูลจริงลงในการประมาณการในอนาคตของคุณและปรับการประมาณการสำหรับผู้จัดการโครงการของคุณหากกรณีที่เลวร้ายที่สุดนั้นแย่กว่าที่คุณคิด
ลองทำตัวอย่างที่ใช้งานได้:
- กรณีที่ดีที่สุดจากประสบการณ์ที่เร็วที่สุดที่ฉันเคยทำมาตรงไปตรงมาจริงๆคือสัปดาห์ที่จะเริ่มต้นให้เสร็จ (5 วัน)
- จากกรณีที่เลวร้ายที่สุดจากประสบการณ์มีช่วงเวลาที่มีการเชื่อมโยงทุกที่และในที่สุดก็พาฉันไป 6 สัปดาห์ (30 วัน)
- การประมาณจริงอาจใช้เวลา 2 สัปดาห์ (10 วัน)
5 + 30 + 2x10 = 55
55/4 = 13.75 ซึ่งเป็นสิ่งที่คุณบอก PM ของคุณ บางทีคุณอาจใช้เวลาถึง 14 วัน เมื่อเวลาผ่านไป (เช่นสิบงาน) มันควรจะเฉลี่ย
อย่ากลัวที่จะปรับสูตร บางทีครึ่งหนึ่งของงานฝันร้ายและมีเพียงสิบเปอร์เซ็นต์ที่ง่าย ดังนั้นคุณจึงทำให้ estmate a / 10 + b / 2 + 2c / 5 เรียนรู้จากประสบการณ์ของคุณ
หมายเหตุฉันไม่ได้ตั้งสมมติฐานเกี่ยวกับคุณภาพของ PM PM ที่ไม่ดีจะให้ข้อมูลสั้น ๆ แก่คณะกรรมการโครงการเพื่อขออนุมัติจากนั้นกลั่นแกล้งทีมงานโครงการเพื่อลองและไปให้ถึงกำหนดเวลาที่ไม่สมจริงที่พวกเขาได้ทำไว้ การป้องกันเพียงอย่างเดียวคือการเก็บบันทึกเพื่อให้คุณสามารถมองเห็นการประมาณการและเข้าใกล้พวกเขา