Estimation Why estimate? What to estimate? When to estimate?

Slides:



Advertisements
Similar presentations
COST ESTIMATION TECHNIQUES AND COCOMO. Cost Estimation Techniques 1-)Algorithmic cost modelling 2-)Expert judgement 3-)Estimation by analogy 4)-Parkinsons.
Advertisements

Metrics for Process and Projects
Software Cost Estimation Main issues:  What factors determine cost/effort?  How to relate effort to development time?
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Software.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Software Cost Estimation.
Software project management (intro)
GPII-2A Planning a software project: Estimation & Measurement.
Software project management Module 1 -Introduction to process management Teaching unit 1 – Introduction Ernesto Damiani Free University of Bozen-Bolzano.
Measuring process attributes. Good Estimates Predictions are needed for software development decision-making (figure 12.1) A prediction is useful only.
SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION © University of LiverpoolCOMP 319slide 1.
Information Technology Project Management
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.
Software Metric capture notions of size and complexity.
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
© The McGraw-Hill Companies, Software Project Management 4th Edition Software effort estimation Chapter 5.
Software Engineering: A Practitioner’s Approach
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.
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.
Chapter 6 The Work Breakdown Structure and Project Estimation Copyright 2012 John Wiley & Sons, Inc. 6-1.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Chapter 23 Software Cost Estimation.
Software Measurement “There’s no sense in being precise when you don’t even know what you’re talking about.” -- John von Neumann.
Software Cost Estimation 1. APPROACHES Traditional: LOC estimation Modern: Functional Point Analysis 2.
Personal Estimation with PROBE CS3300 Fall Code Size Estimation Wide Band Delphi (Boehm) Give the team the specs to study Discuss the project goals.
Software cost estimation Predicting the resources required for a software development process 1.
1 Estimation Function Point Analysis December 5, 2006.
Lecture 4 Software Metrics
Applied Software Project Management LESSON 3: ESTIMATION Applied Software Project Management 12:02:37 PM 1.
10/27/20151Ian Sommerville.  Fundamentals of software measurement, costing and pricing  Software productivity assessment  The principles of the COCOMO.
Cost Estimation. Problem Our ability to realistically plan and schedule projects depends on our ability to estimate project costs and development efforts.
Cost Estimation What is estimated? –resources (humans, components, tools) –cost (person-months) –schedule (months) Why? –Personnel allocation –Contract.
Quality Software Project Management Software Size and Reuse Estimating.
1 Advanced Information Systems Development (SD3043) Project Management: Effort and Cost Estimation.
Estimating Software Projects & Activity Scheduling in the Dynamic, Multi-Project Setting: Choosing Heuristics Through Deterministic Simulation.
Introduction to Software Project Estimation I (Condensed) Barry Schrag Software Engineering Consultant MCSD, MCAD, MCDBA Bellevue.
©Ian Sommerville 2000Software Engineering, 7th edition. Chapter 26Slide 1 Software cost estimation l Predicting the resources required for a software development.
Function Points Synthetic measure of program size used to estimate size early in the project Easier (than lines of code) to calculate from requirements.
Guide to Computer Forensics and Investigations, 2e CC20O7N Software Engineering 1 Guide to Computer Forensics and Investigations, 2e CC20O7N Software.
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.
Personal Estimation with PROBE CS3300 Fall Process Everybody has one !!! Formal – Completely defined and documented Informal – Just the way things.
Cost Estimation Cost Estimation “The most unsuccessful three years in the education of cost estimators appears to be fifth-grade arithmetic. »Norman.
By Manish Shrotriya CSE MS Software Estimation Effort Estimation: how much effort is required to complete an activity. (How to define efforts: Line.
Chapter 5: Software effort estimation
Estimation Questions How do you estimate? What are you going to estimate? Where do you start?
THE FAMU-CIS ALUMNI SYSTEM
Chapter 33 Estimation for Software Projects
Project Cost Management
Alternative Software Size Measures for Cost Estimation
The Work Breakdown Structure and Project Estimation
Software Project Sizing and Cost Estimation
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
The Work Breakdown Structure and Project Estimation
Constructive Cost Model
Software Development & Project Management
COCOMO Model Basic.
Function Point.
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.
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
Chapter 33 Estimation for Software Projects
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
Chapter 26 Estimation for Software Projects.
Presentation transcript:

Estimation Why estimate? What to estimate? When to estimate? How not to estimate? How to estimate?

Why Estimate? At the beginning of a project customers usually want to know: How much? How long? Programmers don’t like “death march” projects. Good estimates lead to realistic project plans.

What to Estimate? Estimates are usually made in the following order: System Size (LOC or Function points) Effort Duration Cost How Long? System size is usually measured in Lines of Code (LOC) or Function Points. Effort and Duration are defined in the next two slides. A short description of the two concepts might be appropriate here in order to interpret the diagram. System size drives effort estimates which drive both duration and cost estimates. Cost to some extent depends on duration. It usually costs less to spread development over a longer duration. When development is rushed costs tend to go up. Size Effort Duration Primary Driver Cost (Other) How Much?

Effort Effort is the amount of labor required to complete a task. Effort is typically measured in terms of person months or person hours. Effort is a function of developer productivity. Productivity = LOC or function points per month or hour.

Duration Duration is the amount of calendar time or clock time to complete a project or task. As an analogy, you can rent a car by the mile (effort) or period of time (duration).

Effort vs. Duration Ironing a shirt Cooking a turkey Effort = 10 minutes Duration = 10 minutes Cooking a turkey Effort = 1 hour Duration = 3 hours Cutting a tree with a two-person saw The effort and duration required to complete a task are rarely equal. If you are ironing a shirt effort = duration. If you are baking a turkey, the effort is minimal (putting it in the oven and taking it out), but the time (duration) it takes to bake a turkey is about 3 hours. The effort to cut a tree with a two person saw is twice the duration of the task because two people are working at it. Effort = 30 minutes Duration = 15 minutes

Size Estimate: Lines of Code Widely used, even though there are obvious limitations: need a counting standard language dependent hard to visualize early in a project hard to understand by clients does not account for complexity or environmental factors The last few slides made the distinction between effort and duration. You may want to remind the audience at this point the topic is “What to measure?” The answer is size, effort, duration, and cost. Now we are giving more detail about estimating size.

Size Estimate: Function Points -1 Developed by Albrecht (1979) at IBM in the data processing domain and subsequently refined and standardised. Based on a user view of a system: external inputs - e.g. input screen external outputs - e.g. output screen external enquiries - e.g. prompt for input internal logical files - e.g. database internal interface files - e.g. shared math routines

Size Estimate: Function Points -2 Basic Function Points = 4 * EI + 5 * EO + 4 * EQ + 10 * ILF + 7 * EIF Each elementary function type has its own relative weighting for complexity: low -25%, average, high +50%

Size Estimate: Function Points -3 There is also a Value Adjustment Factor (VAF) which is determined by 14 general system characteristics covering factors such as operational ease, transaction volume, distributed data processing. The VAF ranges from 0.65 to 1.35

Difficulties with Function Points Counting function points is subjective, even with standards in place. Counting can not be automated (even for finished systems, c.f. LOC). The factors are dated and do not account for newer types of software systems, e.g. real-time, GUI-based. There are many extensions to the original function points that attempt to address new types of system.

When to Estimate? Estimates are made at the beginning of a project and updated at regular intervals as new information is gained and uncertainty reduced.

Cone of uncertainty

How not to Estimate (van Vliet) We were given 12 months to do the job, so it will take 12 months. (Parkinson) We know our competitor put in a bid of $1M so we need to schedule a bid of $0.9M. (Priced to win) We want our product at the trade show next year so the software must be written and tested in the next nine months. Actually the project needs one year but I can’t sell that to my boss. We know 10 months is acceptable so we will settle for 10 months. Estimates are not targets. A target is a desired cost, schedule, etc. Estimates are what realistically can be accomplished. Parkinson's "law" is that work expands to consume available time and resources.

How to Estimate? Techniques for estimating size, effort and duration: Analogy Expert judgement Parametric (algorithmic) models Not all techniques apply to all parameters you might want to estimate. The algorithmic models usually only work for effort and duration. Analogy and expert judgment can be applied to any estimate.

Estimating by Analogy Identify one or more similar projects and use this project (or parts of it) to produce an estimate for the new project. Estimating accuracy is often improved by partitioning a project in parts and making estimates of each part (errors cancel out so long as estimating is unbiased). Can use a database of projects from your own organisation or from multiple organisations. Because effort doesn't scale linearly with size and complexity, extrapolating from past experience works best when the old and new systems are based on the same technology and are of similar size and complexity.

Estimating by Expert Judgment Have experts estimate project costs possibly with the use of consensus techniques such as Delphi. Bottom-up composition approach: Costs are estimated for work products at the lowest-levels of the work breakdown structure and then aggregated into estimates for the overall project. Top-Down decomposition approach: Costs are estimated for the project as a whole and then divided among the phases and components of the project.

Wide-band Delphi Get multiple experts/stakeholders Share project information Each participant provides an estimate independently and anonymously All estimates are shared and discussed Each participant estimates again Continue until or consensus, or exclude extremes and calculate average

Parametric (Algorithmic) Models Formulas that compute effort and duration based on system size and other cost drivers such as capability of developers, effectiveness of development process, schedule constraints, etc. Most models are derived using regression analysis techniques from large databases of completed projects. In general the accuracy of their predictions depends on the similarity between the projects in the database and the project to which they are applied.

Effortperson months = 2.94 * (Cost Drivers) * (KLOC)**E COCOMO II COCOMO = Constructive Cost Model Basic formula: Effortperson months = 2.94 * (Cost Drivers) * (KLOC)**E KLOC = Size estimate Cost Drivers = project attributes that have a linear effect on effort. Examples: analyst capability, reliability requirements, etc. E = an exponent based on non-linear project effects such as process maturity, team cohesion, etc. Nominal or average values for cost drivers is 1. So, if analysts have average capability you multiple by 1. If they are below average you multiple by a number greater than 1 such as 1.15.

DurationMonths = 3.67 * (Effortperson months)**F COCOMO II Schedule estimate is a function of person months: DurationMonths = 3.67 * (Effortperson months)**F F = an exponent based on the same non-linear project effects considered in the equation for person months.

Estimation Guidelines Don’t confuse estimates with targets Apply more than one technique and compare the results Collect and use historical data Use a structured and defined process. Consistency will facilitate the use of historical data. Update estimates as new information becomes available Let the individuals doing the work participate in the development of the estimates. This will garner commitment. Be aware that programmers tend to be optimistic when estimating.