"ซอฟต์แวร์ทำเมื่อเสร็จแล้วไม่ช้าก็เร็ว"
สิ่งนี้เป็นจริง แต่สำหรับแต่ละงานที่นักพัฒนาของคุณเริ่มทำงานทุกคนในองค์กรของคุณเข้าใจคำจำกัดความของเสร็จสิ้นสำหรับแต่ละงานหรือไม่
ดูเหมือนว่าหนึ่งในปัญหาที่ใหญ่ที่สุดของคุณคือการประมาณค่าแต่นักพัฒนาสามารถให้การประมาณการที่เหมือนจริงเมื่อมีการนิยามที่ชัดเจนและชัดเจนที่ระบุไว้อย่างชัดเจน (ซึ่งรวมถึงปัญหากระบวนการของ บริษัท เช่นเอกสารประกอบสำหรับผู้ใช้แพ็คเกจงานในรุ่นที่เป็นทางการ ฯลฯ )
ไม่น่าแปลกใจที่การประมาณค่าเกินกำลังก่อให้เกิดปัญหาเนื่องจากนักพัฒนาส่วนใหญ่เห็นว่าการประเมินเวลาที่จำเป็นในการทำงานให้เสร็จสมบูรณ์นั้นเป็นสิ่งที่ยากที่สุดที่พวกเขาจะถูกถาม
แต่นักพัฒนาส่วนใหญ่มักจะมีความเหมาะสม (แม้ว่าในแง่ดี ) จัดการกับปริมาณของความพยายามที่พวกเขาจะสามารถที่จะใส่ในสำหรับช่วงเวลาที่กำหนด
ปัญหาที่เกิดขึ้นมักจะเป็นนักพัฒนาที่ต่อสู้เพื่อสร้างความสัมพันธ์ระหว่างงานและรวมจำนวนของความพยายามที่ต้องการเมื่อพวกเขากำลังจัดการกับข้อมูลที่ไม่สมบูรณ์ - โดยเฉพาะอย่างยิ่งถ้าพวกเขาจะกดดันให้เกิดขึ้นกับคำตอบทั้งหมดขึ้นด้านหน้าจะเป็นงานใหญ่จริงๆ .
สิ่งนี้นำไปสู่การประมาณเวลาโดยอัตโนมัติเมื่อถูกตัดการเชื่อมต่อจากความเป็นจริงและพวกเขามองไม่เห็นสิ่งต่าง ๆ เช่นกระบวนการสร้างและเอกสารประกอบของผู้ใช้
การตัดการเชื่อมต่อมีแนวโน้มที่จะเริ่มต้นตั้งแต่ต้นเมื่อมีการอธิบายงาน และโดยทั่วไปแล้วบุคคลที่ไม่ใช่ด้านเทคนิคจะเขียนรายการข้อกำหนดโดยไม่ต้องใช้ความพยายาม
บางครั้งผู้คนในฝ่ายบริหารอาวุโสระบุงานและไม่สนใจปัญหากระบวนการของ บริษัท อย่างสมบูรณ์ ไม่ใช่เรื่องแปลกสำหรับผู้บริหารระดับสูงที่จะคิดว่าสิ่งต่าง ๆ เช่นการกำหนดการทดสอบหรือการสร้างงานสร้างที่เป็นทางการหรือการปรับปรุงเอกสารผู้ใช้เกิดขึ้นอย่างน่าอัศจรรย์โดยไม่มีเวลาหรือความพยายาม จำเป็นต้องใช้
บางครั้งโครงการล้มเหลวก่อนที่นักพัฒนาซอฟต์แวร์จะเขียนรหัสเพราะบางคนทำงานไม่ถูกต้อง
หากทีมพัฒนาไม่ได้มีส่วนร่วมในการยอมรับข้อกำหนดหรือการยึดเกณฑ์การยอมรับนั่นเป็นความล้มเหลวของการจัดการเพราะนั่นหมายความว่าคนที่มีความเข้าใจรหัสไม่เพียงพอและปัญหาทางเทคนิคทำให้ธุรกิจมีความต้องการที่ไม่สมบูรณ์ และปล่อยให้โครงการเปิดไว้เพื่อการตีความที่ผิดขอบเขตการคืบการชุบทอง ฯลฯ
หากทีมพัฒนามีส่วนร่วมในการรวบรวมและยอมรับข้อกำหนดอาจเป็นความล้มเหลวของทีมที่รับผิดชอบในการชี้แจงรายละเอียด (และเกณฑ์การยอมรับ - เช่น "สิ่งที่ส่งมอบมีลักษณะอย่างไรเมื่อมันเสร็จแล้ว ?" ) ทีมพัฒนายังรับผิดชอบในการบอกว่าไม่มีเมื่อมีปัญหาการบล็อกอื่น ๆ ในทางหรือถ้าความต้องการนั้นไม่สมจริง
ดังนั้นหากนักพัฒนามีส่วนร่วมในการจับความต้องการ:
- ทีมมีโอกาสที่จะนั่งคุยกับผู้จัดการผลิตภัณฑ์เพื่อชี้แจงข้อกำหนด / คำจำกัดความที่ทำหรือไม่?
- ทีมถามคำถามที่เพียงพอเพื่ออธิบายความต้องการโดยนัย / สันนิษฐานหรือไม่? คำถามเหล่านั้นมีคำตอบที่น่าพอใจบ่อยเพียงใด
- ทีมต้องการเกณฑ์การยอมรับ (คำจำกัดความของการทำ) ก่อนที่จะทำการประเมินหรือไม่
- เกณฑ์การยอมรับมักจะดีเพียงใดสำหรับแต่ละงาน มันเป็นเอกสารที่คลุมเครือซึ่งมีรายละเอียดกระจัดกระจายหรืออธิบายการทำงานที่จับต้องได้และถ้อยคำที่ผู้พัฒนาสามารถแปลได้อย่างชัดเจนในการทดสอบ?
โอกาสที่ประสิทธิภาพของทีมของคุณจะไม่เป็นปัญหา ทีมของคุณอาจใช้ความพยายามทั้งหมดที่พวกเขาสามารถทำได้เกี่ยวกับการพัฒนา ปัญหาที่แท้จริงของคุณอาจเป็นหนึ่งในสิ่งต่อไปนี้:
- ข้อกำหนดที่ไม่สมบูรณ์และคลุมเครือ
- ความต้องการ / งานที่ใหญ่เกินไปในตอนแรก
- การสื่อสารที่ไม่ดีระหว่างทีมพัฒนาและผู้บริหารระดับสูง
- การขาดเกณฑ์การยอมรับที่กำหนดไว้อย่างชัดเจนก่อนส่งงานให้ทีม
- สเปคที่ไม่สมบูรณ์หรือคลุมเครือของการทดสอบการยอมรับ (เช่นนิยามของเสร็จสิ้น)
- เวลาไม่เพียงพอที่จัดสรรให้กับการกำหนด / ยอมรับเกณฑ์การยอมรับ
- นักพัฒนาไม่ได้พิจารณาเวลาในการทดสอบรหัสพื้นฐานที่มีอยู่หรือแก้ไขข้อบกพร่องที่มีอยู่
- นักพัฒนาทำการทดสอบรหัสพื้นฐานที่มีอยู่ แต่ไม่ได้เพิ่มข้อผิดพลาดเป็นปัญหาการบล็อกก่อนที่จะให้ประมาณการเกี่ยวกับข้อกำหนด
- ฝ่ายบริหารเห็นปัญหา / ข้อบกพร่องและตัดสินใจว่าไม่จำเป็นต้องแก้ไขข้อบกพร่องก่อนที่จะเขียนรหัสใหม่
- นักพัฒนาอยู่ภายใต้ความกดดันที่จะคิดเป็น 100% ของเวลาแม้ว่าอาจจะ 20% (หรือบางหมายเลขที่คล้ายกัน) ของเวลาของพวกเขาอาจจะเกิดขึ้นจากการประชุมการรบกวนอีเมล ฯลฯ
- การประมาณการจะได้รับการเห็นด้วยกับมูลค่าและไม่มีใครปรับพื้นที่สำหรับข้อผิดพลาดหรือความไม่แน่นอน (เช่น "เราตัดสินใจว่าจะใช้เวลา 5 วันดังนั้นเราจึงคาดว่าจะเสร็จใน 8")
- การประมาณการจะได้รับการปฏิบัติโดยทุกคน (นักพัฒนาและการจัดการ) เป็นตัวเลขเดียวแทนที่จะเป็นตัวเลข "ช่วง" ที่เหมือนจริง - เช่น
- ประมาณการกรณีที่ดีที่สุด
- การประเมินที่สมจริง
- การประเมินกรณีที่แย่ที่สุด
... รายการอาจยาวกว่านั้นอีกมาก
คุณต้องทำ "การหาข้อเท็จจริง" และหาเหตุผลว่าทำไมการประมาณการจึงตัดการเชื่อมต่อจากความเป็นจริงอย่างสม่ำเสมอ ซอฟต์แวร์พื้นฐานที่มีอยู่ไม่ดีหรือไม่? มันขาดความคุ้มครองการทดสอบหน่วย? นักพัฒนาของคุณหลีกเลี่ยงการสื่อสารกับฝ่ายบริหารหรือไม่? ฝ่ายบริหารหลีกเลี่ยงการสื่อสารกับผู้พัฒนาหรือไม่? มีการตัดการเชื่อมต่อระหว่างความคาดหวังของการจัดการและความคาดหวังของนักพัฒนาเมื่อมันมาถึง"คำจำกัดความของเสร็จสิ้น" ?