Project Estimation เมล็ดพันธุ์แห่งความหายนะหลักๆ ของซอฟท์แวร์มักจะถูกหว่านลงไปไปในช่วงสามเดือนแรกของการเริ่มต้นโครงการทางด้านซอฟต์แวร์ ตารางเวลาที่เร่งรีบ คำสัญญาที่ไร้เหตุผล เทคนิคการประมาณการไม่เป็นแบบมืออาชีพ และ ปราศจากการใส่ใจของฟังก์ชันเกี่ยวกับการบริหารโครงการ สิ่งเหล่านี้คือแฟกเตอร์ทั้งหลายที่ก่อให้เกิดปัญหาต่าง ๆ ขึ้นมา เมื่อโครงการเดินหน้าไปอย่างไร้ทิศทางไปสู่วันส่งมอบที่เป็นไปได้ยาก หายนะในส่วนที่เหลือย่อมเกิดขึ้นอย่างยากที่จะหลบเลี่ยง T. Capers Jones
20.
Pricing and Estimatingผู้บริหารหลายคนถือว่าสิ่งเหล่านี้คือศิลป ( art ) ! สารสนเทศที่ให้แก่ผู้ประมูลรายหนึ่งโดยทั่วไปแล้วจะอยู่ในมือของรายอื่น ๆ ด้วย และนี่คือส่วนสำคัญของกระบวนการวางแผน ( planning process ) สร้างพื้นฐานในการจัดทำมาตรฐานในเรื่อง budgets, man-hours, material costs, contingencies, etc. กลยุทธ์ทางด้านราคาที่เหมาะสมจะถูกสร้างขึ้นมาในแต่ละสถานการณ์
21.
Types of Estimates(1) Order of magnitude estimates - ทำโดยไม่มีรายละเอียดของข้อมูลเชิงวิศวกรรม ( engineering data ) - อาจใช้ประสบการณ์จากอดีต - ความถูกต้อง +- 35% ภายในขอบเขตของโครงการณ์ Approximate (rule of thumb) estimates - ทำโดยไม่มีรายละเอียดของข้อมูลเชิงวิศวกรรม - อาจใช้โครงการที่คล้ายกันที่เคยทำมาแล้ว - ความถูกต้อง +- 15%
อาศัยเวลา (Time Boxing ) กำหนดเวลาของแต่ละการดำเนินการหรืองานหรือสิ่งที่ต้องส่งมอบ มุ่งเน้นที่ team ได้ถ้า team มีประสิทธิภาพ และสามารถทำให้ team เสื่อมลงได้ถ้าใช้บ่อย หรือ ใช้กับ team ที่ไม่มีประสิทธิภาพ เพราะการทำเช่นนี้เป็นการเพิ่ม stress หรือ pressure ให้กับ project team เพื่อให้งานเสร็จ
Example WBS withEstimated Task Durations 6.2 Test Results Report 6.2.1 Review test plan with client 1 day 6.2.2 Carry out test plan 5 days 6.2.3 Analyze results 2 days 6.2.4 Prepare test results report and presentation 3 days 6.2.5 Present test results to client 1 day 6.2.6 Address any software issues or problems 5 days
Complexity Low Average High Total Internal Logical Files (ILF) _ 3 x 7 = 21 _ 2 x 10 = 20 _ 1 x 15 = 15 56 External Interface Files (EIF) __ x 5 = __ _ 2 x 7 = 14 __ x 10 = __ 14 External Input (EI) _ 3 x 3 = 9 _ 5 x 4 = 20 _ 4 x 6 = 24 53 External Output (EO) _ 4 x 4 = 16 _ 2 x 5 = 10 _ 1 x 7 = 7 33 External Inquiry (EQ) _ 2 x 3 = 6 _ 5 x 4 = 20 _ 3 x 6 = 18 44 Total Unadjusted Function Points (UAF) 200
40.
ขั้นตอนต่อไปคือการคำนวณหา VAFValue Adjustment Factor (VAF) based on Degrees of Influence (DI) มักเรียกว่า Processing Complexity Adjustment (PCA) ซึ่งหามาจาก General Systems Characteristics (GSC) ดังแสดงไว้ในหน้าถัดไป โดยกำหนด scale เอาไว้ดังนี้ 0 = not present หรือ not influence 1 = incidental influence 2 = moderate influence 3 = average influence 4 = significant influence 5 = strong influence จะคำนวณหา Total adjusted function points
41.
General System CharacteristicDegree of Influence Data Communications 3 Distributed Data Processing 2 Performance 4 Heavily Used Configuration 3 Transaction Rate 3 On-line Data Entry 4 End User Efficiency 4 Online Update 3 Complex Processing 3 Reusability 2 Installation Ease 3 Operational Ease 3 Multiple Sites 1 Facilitate Change 2 Total Degrees of Influence 40 Value Adjustment Factor VAF = (TDI * 0.01) + .65 VAF = (40 * .01) + .65 = 1.05 Total Adjusted Function Points = FP = UAF * VAF FP = 200 * 1.05 = 210
42.
เมื่อได้ TotalAdjusted Function Points (TAFP) แล้ว จะ transformed into development estimates หรือ converted in equivalent LOC ดังตารางในหน้าถัดไป T. Capers Jones ได้ใช้เทคนิคเรียกว่า Backfiring เพื่อทำ direct conversion จาก application’s source code ไปให้ทัดเทียมกับ function point count
43.
Source: http://www.theadvisors.com/langcomparison.htmLanguage Average Source LOC per Function Pont Average Source LOC for a 210 FP Application Access 38 7,980 Basic 107 22,470 C 128 26,880 C++ 53 11,130 COBOL 107 22,470 Delphi 29 6,090 Java 53 11,130 Machine Language 640 134,440 Visual Basic 5 29 6,090
44.
COCOMO – CO nstructive CO st MO del Parametric Model ถูกพัฒนาโดย Barry Boehm in 1981 Project types Organic ( Person-Months = 2.4 x (KDSI) 1.05 ) Routine projects เมื่องานที่ต้องทำคาดว่าจะราบลื่นอาจมีปัญหาเล็กน้อยไม่กี่ปัญหา Embedded ( Person-Months = 3.0 x ( KDSI ) 1.12 ) Challenging projects ที่อาจมีหลักการใหม่ ( new ground ) เกิดกับองค์กรหรือ project team Semi-detached ( Person Months 3.36 x ( KDSI ) 1.20 ) อยู่ระหว่าง organic และ embedded Projects อาจไม่ง่ายและตรงไปตรงมาแต่มีระดับความเชื่อมั่นสูงว่า project team จะพบกับสิ่งที่ท้าทาย KDSI = thousands of delivered source instructions, i.e. LOC
45.
COCOMO – EffortExample สมมติว่า จะพัฒนา application ที่มีประมาณ 200 total adjusted function point จากตารางที่ผ่านมา สมมติว่า application พัฒนาบน Java จะได้ Line of code ออกมา = 10,600 lines of code ( คำนวณได้จาก 10,600 Java LOC = 200 FP * 53 โดยอาศัยตารางท่านมา ให้ดูในชิ่งของ Java ) และโครงการเป็นแบบ medium difficult จะใช้ Semi-Detached equation ได้เป็น Person-Months = 3.0 * KDSI 1.12 = 3.0 * (10.6) 1.12 = 42.21 1 person-month คือ คนหนึ่งคนทำงาน 152 ชั่วโมง ดังนั้น 42.21 person-months จะใช้คนกี่คน ?
The Mythical Man-Month– Frederick Brooks ประการที่ห้า เมื่อตารางเวลาถูกรับรู้ว่าเลื่อนออกไป การสนองตอบทั่ว ๆ ไปจะเป็นการเพิ่ม manpower ให้มากขึ้น เหมือนกับทำการดับไฟด้วยน้ำมันมีแต่ทำให้เลวร้ายลงไป ไฟก็จะลุกมากขึ้นก็จะใช้น้ำมันมากขึ้น แน่นอนว่ามันคงจบลงด้วยความหายนะอย่างแน่นอน
50.
COCOMO – COnstructiveCOst MOdel COCOMO Model Types Basic ( ตัวอย่างที่ผ่านมาใช้โมเดลนี้ ) Intermediate Advanced COCOMO II SLIM vs. COCOMO
51.
Software Engineering Metricsand Approaches Heuristics Rules of thumb approach to estimating Estimating Software Costs – Jones ตัวอย่างเช่น When for scheduling a software task: 30% – Planning 20% – Coding 25% – Component test and early system test 25% – System test, all components in hand
Some Examples ofHeuristics from Estimating Software Costs by Capers Jones (1988) Each formal design inspection will find and remove 65 percent of the bugs present. Each formal code inspection will find and remove 60 percent of the bugs present. Function points raised to the 0.4 power predict the approximate development schedule in calendar months. Function points divided by 150 predict the approximate number of personnel required for the application. อ่านเพิ่มเติมในหน้า 150
54.
What Is theBest Way to Estimate IT Projects? ใช้มากกว่าหนึ่งเทคนิคในการประมาณต้นทุน ถ้าการประมาณได้จากเทคนิคที่แตกต่างกันและใกล้คียงกันให้ใช้ค่าเฉลี่ย การปรับค่าประมาณการ จะขึ้นกับประสบการณ์เป็นหลัก การเจรจาตกลงกันอาจนำไปสู่การประมาณการที่ไม่สอดคล้องกับความเป็นจริง ( unrealistic estimations )