CSE 403, Spring 2008, Alverson Estimation What to say when asked for an estimate “I’ll get back to you” Pragmatic Programmer Deadly sins material adapted.

Slides:



Advertisements
Similar presentations
Time Management.
Advertisements

COST ESTIMATION TECHNIQUES AND COCOMO. Cost Estimation Techniques 1-)Algorithmic cost modelling 2-)Expert judgement 3-)Estimation by analogy 4)-Parkinsons.
Cost as a Business Driver 1 John Brown C Eng MIEE mr_ Software Cost Estimation.
Estimating with Use Cases Extracts from the Lamri Use Case Survival Guide™ Mark Aked Managing Consultant For more information visit or .
Agile Planning. The problem with documentation Argument: “Heavy” documentation too much for most business-style projects.
Computer Engineering 203 R Smith Project Tracking 12/ Project Tracking Why do we want to track a project? What is the projects MOV? – Why is tracking.
Chapter 26 Estimation for Software Projects
Risks  All projects have some degree of risk  Risks are issues that can cause problems  Delay in schedule  Increased project costs  Technical risk.
Software project management Module 1 -Introduction to process management Teaching unit 1 – Introduction Ernesto Damiani Free University of Bozen-Bolzano.
Software Technology Support Center BE AMERICA’S BEST The Problems in Software Estimating Dr. Randall Jensen Software Technology Support Center Hill AFB,
SE is not like other projects. l The project is intangible. l There is no standardized solution process. l New projects may have little or no relationship.
1 Chapter 3 Project Management. 2 The 4 P’s  People — the most important element of a successful project  Product — the software to be built  Process.
Release & Deployment ITIL Version 3
Information System Economics Software Project Cost Estimation.
Estimation Wrap-up CSE 403, Spring 2008, Alverson Spolsky.
1 A Real-World Development Lifecycle Greg Wilson
DEV-42: Achieving Real-time BAM with OpenEdge ®, Sonic ™, and Apama ® Eric DebeijBart Schouw Business Development Manager Senior Product Consultant.
Estimation Why estimate? What to estimate? When to estimate?
Project Management Estimation. LOC and FP Estimation –Lines of code and function points were described as basic data from which productivity metrics can.
Estimating Copyright © 2006 Patrick McDermott UC Berkeley Extension McConnell, Steve, Software Estimation: Demystifying the Black Art,
©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 Lecture 17: Chapter 26 Estimation for Software Projects Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman.
1 Software Process and Project Metrics. 2 Normalization for Metrics.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
1 Chapter 23 Estimation for Software Projects. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for.
Project estimation Biased advice on producing accurate project estimates and managing expectations with stakeholders. Morgan Strong.
Introduction to Software Engineering ECSE-321 Unit 4 – Project Management 10/19/2015Introduction to Software Engineering – ECSE321Unit 4 – Project Management/1.
Agile Concepts - II “Agile” Estimating & Planning Nupul Kukreja 5 th November, 2014.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Agile Planning. The problem with documentation Argument: “Heavy” documentation too much for most business-style projects.
1 / 23 CS 709B Advanced Software Project Management and Development Software Estimation - II Based on Chapter 4 of the book [McConnell 2006] Steve McConnell,
10/27/20151Ian Sommerville.  Fundamentals of software measurement, costing and pricing  Software productivity assessment  The principles of the COCOMO.
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.
The Art of Estimating Programming Tasks Adriana Lopez Development Director Dragon Age II.
Software Project Planning Part II. Troutman's Postulates Profanity is the one language understood by all programmers. Not until a program has been in.
Copyright , Dennis J. Frailey CSE7315 – Software Project Management CSE7315 M16 - Version 8.01 SMU CSE 7315 Planning and Managing a Software Project.
Software Project Estimation IMRAN ASHRAF
©1999 Addison Wesley LongmanSlide 3.1 Managing IS Projects Planning –Decomposing Project into Activities –Estimating resources –Developing a schedule –Setting.
Empirical Estimation Models Based upon historic data Basic Structure E = A + B * (ev) C where A, B, c are empirical constants ‘ev’ is the effort in terms.
Function Points Synthetic measure of program size used to estimate size early in the project Easier (than lines of code) to calculate from requirements.
CSE 403, Spring 2007, Alverson Estimation What to say when asked for an estimate “I’ll get back to you” Pragmatic Programmer Deadly sins material adapted.
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.
CSE SW Project Management / Module 15 - Introduction to Effort Estimation Copyright © , Dennis J. Frailey, All Rights Reserved CSE7315M15.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Project, People, Processes and Products Project management skills – schedule, monitoring, risk management, … People management skills – delegation, mentoring,
Software Engineering (CSI 321) Project Planning & Estimation 1.
1 Text Layout Introduction (1-4) Team Skill 1 – Analyzing the problem (5-7) Team Skill 2 – Understanding User and Stakeholder Needs (8-13) Team Skill 3.
The COCOMO model An empirical model based on project experience. Well-documented, ‘independent’ model which is not tied to a specific software vendor.
PICKING THE RIGHT DATES AND QUANTITIES Continuous Estimation.
Intro to Estimating Part Art, Part Science. Importance of Good Estimates Time (Realistic Deadlines) most software projects are late because the time was.
Cost Estimation Cost Estimation “The most unsuccessful three years in the education of cost estimators appears to be fifth-grade arithmetic. »Norman.
Copyright , Dennis J. Frailey CSE7315 – Software Project Management CSE7315 M15 - Version 9.01 SMU CSE 7315 Planning and Managing a Software Project.
Continuous Improvement. Start Simple and Continually Improve E.g., Gmail Labels 1.
CSE 403, Spring 2008, Alverson CSE 403 Software Engineering Pragmatic Programmer Tip: Care about Your Craft Why spend your life developing software unless.
CS 160 and CMPE/SE 131 Software Engineering March 22 Class Meeting Department of Computer Science Department of Computer Engineering San José State University.
Software project management 3rd Umer khalid Lecturer University of Lahore Sargodha campus.
COCOMO Software Cost Estimating Model Lab 4 Demonstrator : Bandar Al Khalil.
1 Agile COCOMO II: A Tool for Software Cost Estimating by Analogy Cyrus Fakharzadeh Barry Boehm Gunjan Sharman SCEA 2002 Presentation University of Southern.
27 Jul 2006CSE403, Summer'06, Lecture 15 Midterm Exam Statistics Other statistics: Average: 40.6 Median: 42.3 Std Dev: 6.2 Max: 46.5 Min: 28 Easiest Problems:
Managing the Project Lifecycle
Lecture 11: Scheduling, Estimation, and Prioritization
Software Engineering (CSI 321)
Client Management Managing Client Expectations
Sprint Planning April 2018.
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.
Chapter 26 Estimation for Software Projects.
Presentation transcript:

CSE 403, Spring 2008, Alverson Estimation What to say when asked for an estimate “I’ll get back to you” Pragmatic Programmer Deadly sins material adapted from

CSE 403, Spring 2008, Alverson Outline Why are we talking about estimation? Estimation basics Mariner’s scenario - what’s your estimate? 15 deadly sin’s of estimation What’s your estimate now?

CSE 403, Spring 2008, Alverson Readings Required: o EstimationBasics, pg 1-8 (not pg3/costing) o Evidence Based Scheduling (Joel Spolsky) You can also check out o Pragmatic Programmer – pg o Survival Guide – pg o Cocomo II or

CSE 403, Spring 2008, Alverson Why are we talking about estimation? In my experience, it’s REALLY hard for engineers to give estimates You WILL be asked for them Saying “it’ll be done when it’s done”, isn’t helpful BAD estimates can be bad for you, the team, the company, the customer Let’s learn some skills and context to help answer the estimation questions better

CSE 403, Spring 2008, Alverson With your 403 projects Has anyone been tracking  Estimated (target) completion  Actual completion What’s been your experience with hitting your estimates?

CSE 403, Spring 2008, Alverson From the beta docs I saw… To deal with slipping schedules, you moved features out. A good plan given the fixed final date! One team moved features in since things went much quicker than they expected. This doesn’t happen very often…

CSE 403, Spring 2008, Alverson How do you create an estimate? 1. Estimate the size of the development product 2. Estimate the effort in person-months/person- hours 3. Estimate the schedule in calendar months 4. Estimate the project cost in $$ Refine your estimate as you get further in development

CSE 403, Spring 2008, Alverson 1. Estimate the size of the project By analogy to a past project (historical data) o Joel: monte carlo estimate/velocity By estimating source lines of code (SLOC) By estimating functions (function points) By consulting experienced experts May be able to estimate effort by analogy and experience, too….

CSE 403, Spring 2008, Alverson Software Estimation, McConnell Is SLOC alone a good estimator? Effort (staff months) There is a correlation with effort and SLOC, but also a big variation. x Measuring programming progress by lines of code is like measuring aircraft building progress by weight. Bill Gates __ linear --- worst case x typical

CSE 403, Spring 2008, Alverson SLOC depends on app domain SLOC/staff month depends on software domain Internet systems: Real time systems: SLOC/staff month depends on software domain Internet systems: Real time systems: Software Estimation, McConnell

CSE 403, Spring 2008, Alverson SLOC depends on programming language LanguageStatements relative to C C1:1 C#1:2.5 Fortran951:2 Java1:2.5 Macro assembly2:1 Perl1:6 SQL1:10 Software Estimation, McConnell

CSE 403, Spring 2008, Alverson 2. Estimate the effort Effort in general depends on many factors, (only one of which is project size (SLOC/functions)) Software Estimation, McConnell Effect of personnel factors Best programmers can improve schedule by 24%

CSE 403, Spring 2008, Alverson Cocomo model of estimation You can estimate effort using historical data, and/or, if none exists, an algorithmic approach COCOMO (Constructive Cost Model) o Estimation model o Developed by Barry Boehm in the 1980’s o Evolved to COCOMOII Features: o Simple and well tested, tools available o 20% cost and 70% time estimate accuracy (?!) o Assumes the project cost is basically dependent on total physical size of all project files o Takes into account the environment

CSE 403, Spring 2008, Alverson COCOMO II formula o Effort adjustment factors (17) include:  Database size  Product complexity  Required reusability  Required reliability  Language and tools experience  Programmer capability o Scaling factors (5) include:  Precedence  Process maturity  Team cohesion effort (in person-months) = (2.94 x a) x KSLOC^b 2.94xa is the “effort adjustment factor” b is the “scaling factor” effort (in person-months) = (2.94 x a) x KSLOC^b 2.94xa is the “effort adjustment factor” b is the “scaling factor”

CSE 403, Spring 2008, Alverson Let’s try it out Quick and dirty More accurate expert_cocomo2000.html We’re considering as part of your final release, for you to apply the model to see how accurate it is for your situation.

CSE 403, Spring 2008, Alverson 3. Estimate the schedule Can’t we just add? Starting date + effort (months)/num developers = Ending date

CSE 403, Spring 2008, Alverson Estimation recap 1. Estimate the size of the development product 2. Estimate the effort in person-months/person- hours 3. Estimate the schedule in calendar months Ideally, refer to historical data and experience Refine the estimate during the project lifecycle How does Joel’s approach fit with this? Value doing 1 and 2 in a group/iteratively

CSE 403, Spring 2008, Alverson Estimation process Size Effort Schedule Cost Feature Set Experience/historical data

CSE 403, Spring 2008, Alverson Estimation Scenario It’s June 1st in Seattle. You have a team of 4 developers, Reggie, Archie, Betty, and yourself. Marketing has asked you to create a system to manage Mariners souvenirs at Safeco field. You need a GUI, as well as way to enter and update inventory. Low inventory needs to be flagged. When can your team deliver? Delivery date: Factors:

CSE 403, Spring 2008, Alverson 15 Deadly Sins of Estimation Estimating how long “it” will take to build before anyone knows what “it” is Can you imagine these happening?

CSE 403, Spring 2008, Alverson Mariners system Was “it” a beta release or a final release that you were estimating delivery of? FinalBeta

CSE 403, Spring 2008, Alverson Deadly Sin #2 Assuming that the most reliable estimates come from the people with the most powerful vocal chords Think about the dynamics of your team…

CSE 403, Spring 2008, Alverson Deadly Sin #3 Creating an estimate for a new project by comparing it to a past project … … which overran its estimates... … and ultimately realizing that you based the new project’s plans on the past project’s estimated results instead of its actual results

CSE 403, Spring 2008, Alverson Deadly Sin #4 Assuming that the sales department is better at estimating software projects than the programmers are

CSE 403, Spring 2008, Alverson Deadly Sin #5 Creating schedules that assume that no one will go to training... - or attend meetings … - or be called to work on another project... - or need to support a key customer … - or take a vacation... - or get sick … - or … schedule <> effort/num developers

CSE 403, Spring 2008, Alverson Mariners system Newsflash! Archie’s adoption came through, and he’s on paternity leave for a month! You’re down to 3 developers for that time.

CSE 403, Spring 2008, Alverson Deadly Sin #7 Presenting estimates with a high degree of precision (“67.4 days”) that are supported by only a low degree of accuracy (“±2 months”) General rule of thumb, if the project takes days, estimate in days, if takes years, estimate in years, etc.

CSE 403, Spring 2008, Alverson Mariners system What unit did you use for your Mariners system estimate? YearsDaysMonths

CSE 403, Spring 2008, Alverson Deadly sin #8 Consider all engineers to be created equal

CSE 403, Spring 2008, Alverson Mariners system Newsflash! Reggie is a 12 th grade intern, working with you until September.

CSE 403, Spring 2008, Alverson Mariners system Newsflash! You got promoted to chief architect! Congratulations, but now you need to spend 25% of your time on other projects.

CSE 403, Spring 2008, Alverson Deadly Sin #9 Providing the most optimistic estimate Estimates are often taken as commitments Best to bound your estimate with assumptions, time qualifiers, a probability, a level of confidence, or a confidence interval Time Confidence Now 12mo 14mo

CSE 403, Spring 2008, Alverson +/- qualifier, best/target/worst case o ie.12 months target, 11 months best case, 14 months worst case confidence level based on the cone of uncertainty … or on your experience with estimating Expressing uncertainty RD, McConnell Project cost

CSE 403, Spring 2008, Alverson Deadly Sins #10-15 Overestimating savings from new tools or methods Using only one estimation method Not including risk impacts into estimates Not anticipating customer changes or not discussing the tradeoffs when they occur Providing “off-the-cuff” estimates Being overly conservative

CSE 403, Spring 2008, Alverson Mariners system Marketing wants an additional feature to measure profit/loss and to identify which items are the “big winners”

CSE 403, Spring 2008, Alverson Mariners System It’s June 1st in Seattle. You have a team of 4 developers, Reggie, Archie, Betty, and yourself. Marketing has asked you to create a system to manage Mariners souvenirs at Safeco field. You need a GUI, as well as way to enter and update inventory. Low inventory needs to be flagged. When can your team deliver? o Archie is on leave for a month o Reggie is a 12 th grade intern, available until Sept o You got promoted to chief architect, and have to spend 25% of your time on other projects o Marketing wants a additional feature to measure profit/loss and which items are the “big winners” o When can you deliver the FINAL release?

CSE 403, Spring 2008, Alverson Mariners System – your estimate Delivery date: Factors:

CSE 403, Spring 2008, Alverson Summary Getting an accurate estimate is hard! But we need estimates to avoid surprises and to coordinate with others Consider the type of project and its environment as well as its size Try to avoid deadly sins … these are just the tip of the iceberg (sadly)