Guest Lecture: Project Estimating Wolfgang Behr, Accenture

Slides:



Advertisements
Similar presentations
Guide to Estimating.
Advertisements

Copyright 2000, Stephan Kelley1 Estimating User Interface Effort Using A Formal Method By Stephan Kelley 16 November 2000.
Software Cost Estimation Main issues:  What factors determine cost/effort?  How to relate effort to development time?
Project Risks and Feasibility Assessment Advanced Systems Analysis and Design.
Software project management (intro)
1 COST ESTIMATION Basics, COCOMO, FP. 2 What is estimated? TIME MONEY TIME: –duration, chronological weeks, months, years –effort, person-month (man-month)
GPII-2A Planning a software project: Estimation & Measurement.
Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002.
SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION © University of LiverpoolCOMP 319slide 1.
Software Cost Estimation Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
1 Cost Estimation CIS 375 Bruce R. Maxim UM-Dearborn.
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
Information System Economics Software Project Cost Estimation.
© The McGraw-Hill Companies, Software Project Management 4th Edition Software effort estimation Chapter 5.
Cmpe 589 Spring Software Quality Metrics Product  product attributes –Size, complexity, design features, performance, quality level Process  Used.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Lecture 22 Instructor Paulo Alencar.
COCOMO Models Ognian Kabranov SEG3300 A&B W2004 R.L. Probert.
Estimation Why estimate? What to estimate? When to estimate?
Chapter 6 : Software Metrics
Project Management Estimation. LOC and FP Estimation –Lines of code and function points were described as basic data from which productivity metrics can.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 26 Slide 1 Software cost estimation 1.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Chapter 23 Software Cost Estimation.
By K Gopal Reddy.  Metrics in software are of two types.direct and indirect.  Function points as indirect metrics.  Function points are used to measure.
1 UseCase-based effort estimation of software projects TDT 4290 Customer-driven project IDI, NTNU, 14. Sept Bente Anda, Simula Research Lab., Oslo,
Software cost estimation Predicting the resources required for a software development process 1.
Software Engineering SM ? 1. Outline of this presentation What is SM The Need for SM Type of SM Size Oriented Metric Function Oriented Metric 218/10/2015.
10/27/20151Ian Sommerville.  Fundamentals of software measurement, costing and pricing  Software productivity assessment  The principles of the COCOMO.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 3 1 Software Size Estimation I Material adapted from: Disciplined.
Cost Estimation. Problem Our ability to realistically plan and schedule projects depends on our ability to estimate project costs and development efforts.
Second Hour Lecture 9:30 – 10:20 am, September 8, 2001 Evolution of Software Economics Improving Software Economics (from Chapters 2 and 3 of Royce’ book)
Cost Estimation What is estimated? –resources (humans, components, tools) –cost (person-months) –schedule (months) Why? –Personnel allocation –Contract.
Project Estimation Model By Deepika Chaudhary. Factors for estimation Initial estimates may have to be made on the basis of a high level user requirements.
Quality Software Project Management Software Size and Reuse Estimating.
Software Project Planning Part II. Troutman's Postulates Profanity is the one language understood by all programmers. Not until a program has been in.
Disciplined Software Engineering Lecture #3 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
©Ian Sommerville 2000Software Engineering, 7th edition. Chapter 26Slide 1 Software cost estimation l Predicting the resources required for a software development.
SFWR ENG 3KO4 Slide 1 Management of Software Engineering Chapter 8: Fundamentals of Software Engineering C. Ghezzi, M. Jazayeri, D. Mandrioli.
Software Project Estimation IMRAN ASHRAF
©Ian Sommerville, adapted by Werner Wild 2004Project Management Slide 1 Software cost estimation u Predicting the resources required for a software development.
Software cost estimation. Fundamental estimation questions How much effort is required to complete an activity? How much calendar time is needed to complete.
Function Points Synthetic measure of program size used to estimate size early in the project Easier (than lines of code) to calculate from requirements.
Estimating “Size” of Software There are many ways to estimate the volume or size of software. ( understanding requirements is key to this activity ) –We.
Effort Estimation In WBS,one can estimate effort (micro-level) but needed to know: –Size of the deliverable –Productivity of resource in producing that.
Software Engineering (CSI 321) Project Planning & Estimation 1.
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
SCOPE DEFINITION,VERIFICATION AND CONTROL Ashima Wadhwa.
Software project management 3rd Umer khalid Lecturer University of Lahore Sargodha campus.
Chapter 5: Software effort estimation
INFSY 570 DR. R. OCKER Software Project Planning.
بشرا رجائی برآورد هزینه نرم افزار.
Estimation Questions How do you estimate? What are you going to estimate? Where do you start?
Project Cost Management
Software Engineering (CSI 321)
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Constructive Cost Model
Software Development & Project Management
COCOMO Model Basic.
Chapter 5: Software effort estimation- part 2
Chapter 5: Software effort estimation
Software Metrics “How do we measure the software?”
More on Estimation In general, effort estimation is based on several parameters and the model ( E= a + b*S**c ): Personnel Environment Quality Size or.
COCOMO Models.
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Software Cost Estimation
Software Development Cost Estimation Chapter 5 in Software Engineering by Ian Summerville (7th edition) 4/7/2019.
Software Cost Estimation
Chapter 26 Estimation for Software Projects.
COCOMO MODEL.
Presentation transcript:

Guest Lecture: Project Estimating Wolfgang Behr, Accenture TU München Applied Software Engineering Prof. Bernd Brügge Software Engineering II, SS 2005 Guest Lecture: Project Estimating Wolfgang Behr, Accenture Copyright © 2005 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.

Objectives for Today Build an understanding of… … the importance of estimations … different estimation approaches (initial situation, expectations, top-down versus bottom-up, …) … advantages and disadvantages of different approaches … common pitfalls

Initial Situation Copyright © 2005 Accenture All Rights Reserved.

Importance of Estimations During the planning phase of a project, a first guess about cost and time is necessary Estimations (as part of the project business case) are therefore the basis for the decision to start a project Estimations are the foundation for project planning (resources, staffing, project schedule) and for further actions (market entry, marketing, etc.) à Estimating is one of the core tasks of project management !

Challenges Incomplete knowledge about: Project scope and changes Prospective resources / staffing Technical and organizational environment / infrastructure Feasibility of functional requirements Comparability of projects in case of new or changing technologies, staff, software engineering approaches Learning curve problem (increasing productivity over time, especially when staffing new personnel) Different expectations towards project manager (buyer -> low estimation; contractor -> at least “realistic” estimation…; in general: “political” estimations; tendency to be optimistic)

Guiding Principles Documentation of assumptions about: Estimation methodology Project scope, staffing, technology etc. Definition of estimation accuracy or definition of result bandwidth Increasing accuracy with proceeding project phases (for example: detailed estimation for implementation phase after detailed functional design) Reviews by experienced colleagues

Components of a Project Estimation Cost Personnel (in person days * (PD) or valued in cost) Material (PCs, software, tools etc.) Extra costs (travel expenses, etc.) Time Project duration Dependencies Personnel (number, qualification, availability) Infrastructure (rooms, technical infrastructure etc.; especially in offshore scenarios) * person day = effort for one person per working day

Estimation Approach Determination of estimated person days Allocation to staff types (teamlead, functional expert, programmer, etc.) either: Single cost rate* for all types (no differentiation necessary) Different cost rates depending on staff type (experience, skills etc.) Personnel cost = person days x cost rate * Cost rate = cost per person per day

Determination of Person Days (Effort) Most difficult part during project planning (many other planning tasks (especially project schedule) depend on this) Basic principles:: Evaluation of known information (about project scope, resources etc.) and conversion into effort Most important: knowledge about project scope (what needs to be done), reuse of software engineering approach (steps, work products) and in general: lots of experience

Top-Down versus Bottom-Up (1) There are two possible approaches for estimations: Top-Down Approach Estimation for whole project; then breakdown to different project phases and work products (possibly by using percentages, for example: 10% for project management is a common number) Bottom-Up Approach Estimation of work products on lowest possible level; then aggregation to top-level; possibly supplemented by some general percentages (see above) à Usually, a mixed approach with recurrent estimation cycles is used !

Top-Down versus Bottom-Up (2) Top-Down Approach Normally used in the planning or project idea generation phase (little information) Based on experiences from similar projects Not appropriate for project controlling (too high-level) Risk add-ons usual Bottom-Up Approach Rules based (in order to increase comparability) Result can be used for project controlling (detailed level) Smaller risk add-ons

Work Breakdown Structure Hierarchy of all project work products and tasks which are necessary to reach the project result Structured description of all relevant project tasks (but always based on results / work products !) Decomposition of tasks used to assign responsibilities Basis for estimation, budgeting, staffing and controlling Historically oriented on end product (system and its parts), now increasingly oriented on tasks and processes

Example: WBS

Estimation Approaches There are different approaches available to do project estimations: Expert estimations (“Expertenschätzungen”) and analogies (top-down) Lines of code estimations Function point analysis (top-down) COCOMO Alternative Approach

Expert Estimations Copyright © 2005 Accenture All Rights Reserved.

Expert Estimations = Guess from experienced people No better than the participants Suitable for atypical projects Result justification difficult Important when no detailed estimation can be done (due to lacking information about scope etc.)

Function Point Analysis Copyright © 2005 Accenture All Rights Reserved.

Function Point Analysis Initially developed by Albrecht, A.J., IBM Research, 1979 Method for determining dimension and complexity of software projects, depending on the system functions (not on tasks !) Estimations are based on a user view (functionality) Independent of… Implementation language / technology Software engineering approach Top-Down approach

Function Types # of external input (Eingabefunktionen, EF) # of external output (Berechnungsfunktionen, BF) # of external inquiries (Abfragefunktionen, AF) # of logical internal files (Dateneinheiten, DE) # of external interface files (Schnittstellen zu externen Systemen, SES) Result: unadjusted function points: UFP = (a · EF) + (b · BF) + (c · AF) + (d · DE) + (e · SES) a-f = weight factors (see following slide)

Determining Unadjusted Function Points Weight Factors Function Type Number simple middle complex Input Functions x 3 4 6 = Calculation Functions x 4 5 7 = Query Functions x 3 4 6 = Datasets x 7 10 15 = Interfaces x 5 7 10 = # Unadjusted Function Points =

Adjusting Function Points Function points are then adjusted depending on system complexity, represented by 14 general complexity factors (for example transaction rate, performance, online data input, …), valid for the whole system Weighted complexity numbers between 0 (not important) to 5 (very important) Result: System Complexity Factor (SCF): SCF = 0,65 + (0,01 · Sum of weight factors) (Thus, the results can vary by 35% due to the general system complexity factors…) Then: Calculation of Function Points (FP): FP = UFP · SCF

Advantages of Function Point Analysis Independent of implementation language and technology (no LOC (lines of code) determination necessary) Estimates are based on design specification (results, which are usually known before necessary tasks are known) Users without technical knowledge can be integrated into the estimation process -> increases acceptance of estimation Incorporation of experiences from different organizations (but resulting also different factors) Adaptable to new technologies and individual situations Easy to learn and limited time effort

Disadvantages of Function Point Analysis Complexity of the function (the result) is estimated – but: complexity of its implementation would be the relevant factor for an estimation ! Complete description of functions necessary (often not the case in early project stages) -> too much focus on functionality High uncertainty in calculating function points: Components difficult to determine Weight factors deducted from past experiences (independency from technology ?) Difficulty to determine weight factors Increasing uncertainty in case of emphasis on a certain type of function types (for example output functions) Code reuse and external providers of software components are not considered Task planning and controlling not possible (also: no breakdown to single project phases considered)

Conclusion Good as a support tool for determining functionality of a system Involvement of persons without deep technical understanding increases acceptance – but: they have to be trained in using the method High uncertainties Further developments (see IFPUG, International Function Point Users Group) Feature Points (better, if emphasis on special function types; it considers also algorithm complexity)

COCOMO Copyright © 2005 Accenture All Rights Reserved.

COnstructive COst MOdel (COCOMO) Developed by Boehm, Barry W., “Software Engineering Economics”, Prentice-Hall, 1981 Top-down approach to estimate cost, effort and schedule of software projects, based on size and complexity of projects Assumptions: Derivability of effort by comparing finished projects (COCOMO database) System requirements do not change during development Exclusion of some efforts (for example admin, training, rollout, integration, etc.)

Approach Estimation of number of instructions (“Kilo Delivered Source Instructions” = KDSI) Determination of project complexity by scale factors simple project (“organic mode”) Semi-complex project (“semidetached mode”) complex project (“embedded mode”) Other cost factors are rated on a qualitative scale between “very low” and “extra high” and multiplied whith each other; by using them, more accurate estimations are possible Software reliability Data base size Programmer capability etc. einfach: kleine Entwicklergruppen arbeiten in bekanntem Problemumfeld mittelschwer: Komplexität zwischen „einfach“ und „komplex“ kompex: komplexes, im Wesentlichen unbekanntes Problemumfeld [PM] bedeutet „Einheit in Personenmonaten“ [KDSI] bedeutet „Einheit ist Kilo Delivered Source Instructions“

Calculation of Effort Basic formula: A = C * KLOCB A = Effort in man months B, C = constants Project C B Simple 2,4 1,05 Semi-Complex 3,0 1,12 Complex 3,6 1,20 einfach: kleine Entwicklergruppen arbeiten in bekanntem Problemumfeld mittelschwer: Komplexität zwischen „einfach“ und „komplex“ kompex: komplexes, im Wesentlichen unbekanntes Problemumfeld [PM] bedeutet „Einheit in Personenmonaten“ [KDSI] bedeutet „Einheit ist Kilo Delivered Source Instructions“

Calculation of Time to Develop Basic formula: T = D * AE T = Time to develop D, E = constants A = Effort in man months (see slide before) Project D E Simple 2,5 0,38 Semi-Complex 2,5 0,35 Complex 2,5 0,32 einfach: kleine Entwicklergruppen arbeiten in bekanntem Problemumfeld mittelschwer: Komplexität zwischen „einfach“ und „komplex“ kompex: komplexes, im Wesentlichen unbekanntes Problemumfeld [PM] bedeutet „Einheit in Personenmonaten“ [KDSI] bedeutet „Einheit ist Kilo Delivered Source Instructions“

Advantages of COCOMO Appropriate for a quick, high-level estimation of project costs Fair results with smaller projects which are done in a known development environment (comparison with past projects is possible) All project phases (from design to test) are covered (partially by using experiences like 10% project management, 10% infrastructure etc.)

Disadvantages of COCOMO Some very important factors are not considered in the original model: Development hardware Use of modern CASE tools Skills of team members Management quality User interface quality Comparability with past projects not always possible Lots of influencing factors which have to be determined in advance

Conclusion Use it for quick estimations after first analysis phase Results will improve if one large project is split up into smaller part projects which are estimated separately Experience shows, that estimation results can deviate from real effort by a factor of 4 ! There are further developments in place: COCOMO II (since the mid 1990s) and others Commercial versions

Alternative Model Copyright © 2005 Accenture All Rights Reserved.

Approach (1) Use both top-down and bottom-up elements: Determine essential characteristics of a project (infrastructure, technology, project team skills and experience, etc.) and derive some generic factors Factors for fixed efforts and activities like 10% for project management or infrastructure Factors for project phases (for example 50% test effort), often derived from already finished phases (step-by-step detailling of estimations)

Approach (2) Determine all work products (WBS…) of the system to be developed (# of screens, # of database tables, # of queries, # of logical modules etc.) and give them complexity factors Determine work product types (screen, table, module, …) Define all necessary tasks that need to be done to produce these work product types (for example design, coding, unit test are tasks to produce a module) Assign effort to tasks by using past experience Extrapolate to project effort (summing up) Use add-ons (contingency and risk factors)

Example (non-exhaustive) Work Package Complexity Type Multiplier / Factor PDs Requirements Elicitation 29 Function A Low Use Case 1 5 Function B Medium 8 Function C 2 16 Etc. Implementation 39 Screen A High Screen 18 Screen B Batch Job A Batch Batch Job B Technical Architecture 10 % 3,9 10% of

Prerequisites Identical estimation approach for different projects necessary Lots of experience with estimating projects necessary in order to develop good parameters Multicheck of top-down with bottom-up results and vice versa Post calculation after end of project important for improving parameters

Summary and Outlook Project Estimating Copyright © 2005 Accenture All Rights Reserved.

Importance of Estimations (1) Basis for decision to start, plan and manage a project (project controlling, earned-value analysis) If used properly, transparent way to discuss project scope and effort All approaches depend very much on personal experiences Approaches have lots of possibilities to influence the results (“Stellschrauben”) – these have to be used carefully

Importance of Estimations (2) Estimation results (effort and time) are almost always too high (for political / human reasons) and have to be adjusted in a structured and careful manner Review by experts (top-down versus bottom-up) are always necessary New technologies can make new parameters necessary Depending on the situation, multiple methods are to be used in combination

Outlook Project Planning In general, Duration = Effort / People, but: A larger project team increases team communication complexity which usually reduces productivity Therefore it is not possible to reduce duration ad libitum by adding more people to a project (on the contrary, it can even take longer !) A trade-off has always to be found between duration and people

Questions ?