Effort Estimation การประมาณการณ์บุคลากร People Effort Estimation การประมาณการณ์บุคลากร
Productivity ประสิทธิผลในการผลิตงาน Productivity จะเป็นตัวบ่งชี้ว่าในโครงการจำเป็นจะต้องใช้บุคลากรเท่าใด โดยในการวัด Productivity นั้นจะวัดจากผลผลิตหรือโปรแกรม ที่ผลิตต่อแรงงาน หรือ บุคลากร ที่ใช้การดำเนินการ Productivity = Output Size (LOC or FP) Effort (Man-Month)
Productivity ตัวอย่างเช่นหากสามารถผลิตซอฟต์แวร์ขนาด 1000 KLOC โดยใช้บุคลากร 1 คน ในเวลา 5 เดือนจะสามารถคำนวณหา Productivity ได้ดังนี้ Productivity = 1000 KLOC 5 Man-Month Productivity = 200 KLOC/Man-Month
Productivity ตัวอย่างเช่นหากสามารถผลิตซอฟต์แวร์ขนาด 100 FP โดยใช้บุคลากร 1 คน ในเวลา 5 เดือนจะสามารถคำนวณหา Productivity ได้ดังนี้ Productivity = 100 FP 5 Man-Month Productivity = 20 FP/Man-Month
Team Productivity ในการประเมินบุคลากรที่ใช้ในการพัฒนาซอฟต์แวร์นั้นจะไม่มองที่บุคคล แต่จะมองภาพรวมของทีมในการพัฒนา Team Productivity = Output Size (LOC or FP) All Team Effort (Man-Month)
Hours/Function Points ISBSG International S/W Benchmarking Standards Group ได้ยกตัวอย่าง บุคลากรที่ใช้เทียบกับขนาดซอฟต์แวร์ ในรูปแบบของ Function Point (FP) โดยแยกตามประเภทของซอฟต์แวร์ดังตาราง FP Size Hours/Function Points Mainframe Client-Server Packaged Software Object- Oriented 225 9.1 11.4 7.6 12.5 400 10.4 13.0 8.7 14.3 625 12.2 15.2 10.1 16.7 875 14.6 18.3 20.1 1125 22.8 25.1
Factor Application Domain Experience Process Quality Project Size/Complexity Technical Support Work Environment Teamwork Other Constraints
Effort Estimation Metric (COCOMO) Constructive Cost Model : COCOMO สามารถแบ่งออกเป็น 3 ประเภทโครงการดังนี้ ประเภท ลักษณะโครงการ ขนาด นวัตกรรมใหม่ ระยะเวลาและข้อจำกัด ลักษณะการพัฒนา Organic เล็ก เล็กน้อย มีความยืดหยุ่นมาก คงที่ Semi Detached กลาง บางส่วน ระยะเวลาเหมาะสมไม่มีข้อจำกัดมากนัก ปานกลาง Embedded ใหญ่ ค่อนข้างมาก ระยะเวลาสั้น ต้องเร่งด่วน และ ข้อจำกัดสูง ซับซ้อน
Effort Estimation Metric (COCOMO) มีการประมาณการ E=Effort และ D=Development Time ดังนี้
Effort Estimation Metric (COCOMO) ตัวอย่าง สมมติให้โครงการพัฒนาซอฟต์แวร์ในระดับ Organic หนึ่งได้ทำการคำนวณ จำนวนบรรทัดออกมาได้ 33.2 KLOC จงหาว่าโครงการนี้จะต้องใช้จำนวนทั้งหมดกี่คน และ ระยะเวลาประมาณเท่าไหร่
Cost Estimation องค์ประกอบในการประเมินราคาซอฟต์แวร์ ขนาด (Size) ระยะเวลา (Schedule)
Cost Estimation กระบวนการประเมินราคาซอฟต์แวร์ Software Sizing Method Selection Software Costing Comparison Refining
Cost Estimation Method Cost Estimation Arithmetic Models Expert Judgment Analogy Parkinson’s Law Price to Win Top Down Bottom Up
Summary of Cost Estimation ในการประเมินค่าใช้จ่ายในการพัฒนาซอฟต์แวร์เป็นเรื่องสำคัญเพราะจะเป็นสิ่งบอกถึงการได้มาซึ่งโครงการนั้นๆ ถ้ามีการประเมินราคาผิดพลาดมากกว่าความเป็นจริง ก็อาจจะส่งผลเสียต่อองค์กรคือ อาจจะทำให้ลูกค้าไม่พอใจหรือเสียโอกาสทางการตลาดได้ แต่ถ้า ประเมินราคาต่ำเกินไป ก็อาจจะส่งผลให้ในการทำงานจริงนั้น อาจจะทำให้ขาดทุนในระหว่างดำเนินการได้ ดังนั้นในการประเมินค่าใช้จ่ายจะต้อทำการประเมินอย่างรอบคอบ ทั้งค่าใช้จ่ายในการพัฒนาและค่าใช้จ่ายในส่วนอื่นๆอย่างเหมาะสม ซึ่งในการประเมินค่าใช้จ่ายให้ได้อย่างเหมาะสมนั้นจะต้องเลือกวิธีการในการประเมินราคาที่เหมาะสมกับองค์กรด้วย การประเมินราคานั้นถึงจะมีประสิทธิภาพสูงสุด
Exercise สมมติให้โครงการพัฒนาซอฟต์แวร์ในระดับ Semi Detached หนึ่งได้ทำการคำนวณ จำนวนบรรทัดออกมาได้ 135 KLOC จงหาว่าโครงการนี้จะต้องใช้จำนวนทั้งหมดกี่คน และ ระยะเวลาประมาณเท่าไหร่ สมมติให้โครงการพัฒนาซอฟต์แวร์ในระดับ Organic หนึ่งได้ทำการคำนวณ จำนวนบรรทัดออกมาได้ 22.5 KLOC จงหาว่าโครงการนี้จะต้องใช้จำนวนทั้งหมดกี่คน และ ระยะเวลาประมาณเท่าไหร่ จงอธิบายกระบวนการประเมินราคาซอฟต์แวร์มาพอสังเขป