การบริหารจัดการโครงการซอฟต์แวร์
การบริหารจัดการโครงการซอฟต์แวร์คือการประยุกต์ใช้เทคนิคการวางแผน การจัดระเบียบ การประมาณการ และการควบคุมกับโครงการซอฟต์แวร์ เพื่อให้ได้ผลิตภัณฑ์ที่ถูกต้องตามความต้องการ ภายใต้ข้อจำกัดด้านต้นทุน ตารางเวลา และคุณภาพที่ยอมรับได้
Definition
การบริหารจัดการโครงการซอฟต์แวร์คือระเบียบวินัยของการวางแผน การติดตาม และการควบคุมบุคลากร กระบวนการ และทรัพยากรของโครงการซอฟต์แวร์ เพื่อให้บรรลุวัตถุประสงค์ด้านขอบเขต ตารางเวลา ต้นทุน และคุณภาพ
Scope
ขอบเขตนี้ครอบคลุมถึงการประมาณการความพยายามและต้นทุน; การจัดตารางเวลาและการวางแผน; การบริหารจัดการความเสี่ยง; การจัดองค์กรทีมและปัจจัยมนุษย์ในการทำงานซอฟต์แวร์; การจัดการการกำหนดค่าและการเปลี่ยนแปลง; การจัดการคุณภาพซอฟต์แวร์; การวัดและเมตริกสำหรับการติดตามความคืบหน้า; และเศรษฐศาสตร์ที่โดดเด่นและความท้าทายในการประสานงานที่ทำให้การจัดการซอฟต์แวร์แตกต่างจากโครงการวิศวกรรมอื่นๆ
Sub-topics
Core questions
- จะประมาณการความพยายาม ต้นทุน และตารางเวลาของซอฟต์แวร์ภายใต้ความไม่แน่นอนได้อย่างไร?
- จะระบุ จัดลำดับความสำคัญ และลดความเสี่ยงตลอดโครงการได้อย่างไร?
- โครงสร้างทีมและการสื่อสารส่งผลต่อประสิทธิภาพการทำงานอย่างไร?
- จะควบคุมการเปลี่ยนแปลงและคุณภาพตลอดโครงการได้อย่างไร?
Key theories
- กฎของ Brooks และเศรษฐศาสตร์ของทีม
- Brooks สังเกตว่าการเพิ่มคนเข้าในโครงการซอฟต์แวร์ที่ล่าช้าจะทำให้โครงการล่าช้าออกไปอีก เนื่องจากค่าใช้จ่ายในการสื่อสารและการฝึกอบรมบุคลากรใหม่เพิ่มขึ้นเร็วกว่ากำลังการผลิตที่เพิ่มขึ้น ซึ่งเน้นย้ำว่าความพยายามในการพัฒนาซอฟต์แวร์ไม่สามารถแบ่งแยกได้ง่ายๆ
- การประมาณการต้นทุนด้วยอัลกอริทึม
- แบบจำลองเช่น COCOMO ประมาณการความพยายามและตารางเวลาโดยพิจารณาจากขนาดและปัจจัยของโครงการ ทำให้ได้การประมาณการที่ทำซ้ำได้ ปรับเทียบได้ ซึ่งเสริมการตัดสินใจของผู้เชี่ยวชาญและแนวทางที่อิงตามการเปรียบเทียบ
Clinical relevance
การบริหารจัดการโครงการที่ดีเป็นตัวกำหนดว่าซอฟต์แวร์จะถูกส่งมอบตรงเวลาและงบประมาณด้วยคุณภาพที่เพียงพอหรือไม่; การประมาณการที่ไม่ดี ความเสี่ยงที่ไม่ได้รับการจัดการ และการละเลยเศรษฐศาสตร์ที่ไม่เป็นเชิงเส้นของทีม เป็นสาเหตุหลักของความล้มเหลวและการเกินงบประมาณของโครงการซอฟต์แวร์
Evidence & guidelines
พื้นที่ความรู้ด้านการจัดการวิศวกรรมซอฟต์แวร์ SWEBOK และคู่มือ PMBOK ให้กรอบการทำงานที่เป็นที่ยอมรับร่วมกัน และมาตรฐานต่างๆ เช่น ISO/IEC/IEEE 16326 ได้กล่าวถึงการวางแผนการบริหารจัดการโครงการสำหรับซอฟต์แวร์
History
Brooks ได้กลั่นกรองบทเรียนอันยากลำบากจากโครงการขนาดใหญ่ในทศวรรษ 1960 ให้เป็นหลักการบริหารจัดการที่ยั่งยืนในปี 1975; Boehm ได้วางรากฐานเศรษฐศาสตร์ซอฟต์แวร์และการประมาณการต้นทุนในปี 1981; ตั้งแต่นั้นมา สาขาวิชานี้ได้รวมเอาการบริหารจัดการความเสี่ยง เมตริก และการวางแผนแบบปรับตัวที่เบาบางกว่าของวิธีการแบบ Agile เข้ามาด้วย
Debates
- การบริหารจัดการโครงการแบบคาดการณ์ล่วงหน้าเทียบกับการบริหารจัดการโครงการแบบปรับตัว
- มีการถกเถียงกันว่าโครงการซอฟต์แวร์ควรได้รับการจัดการที่ดีที่สุดด้วยแผนงานที่ละเอียดล่วงหน้า หรือด้วยการควบคุมแบบปรับตัวที่อิงตามการทำซ้ำ; Agile สนับสนุนการควบคุมเชิงประจักษ์และการวางแผนใหม่บ่อยครั้ง ในขณะที่การจัดการแบบดั้งเดิมเน้นแผนงานพื้นฐาน โดยมีการผสมผสานทั้งสองแบบเป็นเรื่องปกติ
Key figures
- Frederick Brooks
- Barry Boehm
- Tom DeMarco
- Watts Humphrey
Related topics
Seminal works
- brooks1995
- boehm1981
- swebok2014
Frequently asked questions
- ทำไมการเพิ่มคนเข้าในโครงการที่ล่าช้าจึงทำให้โครงการล่าช้าออกไปอีก?
- บุคลากรใหม่จะต้องได้รับการฝึกอบรมให้ทันกับงาน และจำนวนช่องทางการสื่อสารจะเพิ่มขึ้นโดยประมาณตามกำลังสองของขนาดทีม; ค่าใช้จ่ายเพิ่มเติมและการหยุดชะงักที่เกิดขึ้นในตอนแรกจะลดผลผลิตลงแทนที่จะเพิ่มขึ้น ซึ่งเป็นข้อสังเกตที่รู้จักกันในชื่อกฎของ Brooks
- ทำไมการประมาณการซอฟต์แวร์จึงเป็นเรื่องยากมาก?
- ซอฟต์แวร์เป็นสิ่งที่จับต้องไม่ได้ มักจะเป็นสิ่งใหม่ และถูกกำหนดโดยความต้องการที่เปลี่ยนแปลงไป ดังนั้นการเปรียบเทียบจากประวัติศาสตร์จึงไม่สมบูรณ์แบบและความไม่แน่นอนก็สูง; การประมาณการอย่างมีวินัยจะรวมแบบจำลอง การตัดสินใจของผู้เชี่ยวชาญ และช่วงค่าต่างๆ แทนที่จะเป็นการคาดเดาแบบจุดเดียว เพื่อจัดการกับความไม่แน่นอนนี้