The Art of Estimating Programming Tasks Adriana Lopez Development Director Dragon Age II.

Slides:



Advertisements
Similar presentations
Tools for Change Plan, Do, Study, Act The PDSA Cycle Explained
Advertisements

Screen 1 of 20 Reporting Food Security Information Reporting for Results Learning Objectives At the end of this lesson you will be able to: understand.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
ESTIMATING Agile/practical project work TDT4290, NTNU, Trondheim Fredrik Bach 02/09/2014.
1 / 27 CS 709B Advanced Software Project Management and Development Software Estimation - I Based on Chapters 1-3 of the book [McConnell 2006] Steve McConnell,
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 6: Project Cost Management
Making the Learning Process Work for You
INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”
Projmgmt-1/33 DePaul University Project Management I - Risk Management Instructor: David A. Lash.
User Interface Testing. Hall of Fame or Hall of Shame?  java.sun.com.
Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
HIT241 - COST MANAGEMENT Introduction
Personal Software Process Overview CIS 376 Bruce R. Maxim UM-Dearborn.
Exploring Users’ Values, Motivations and Emotions Sarah Thew University of Manchester
EGR 105 Foundations of Engineering I Time Management Fall 2008.
N By: Md Rezaul Huda Reza n
Software Project Planning CS470. What is Planning? Phases of a project can be mostly predicted Planning is the process of estimating the time and resources.
Estimation Why estimate? What to estimate? When to estimate?
Chapter 6 : Software Metrics
Estimating Copyright © 2006 Patrick McDermott UC Berkeley Extension McConnell, Steve, Software Estimation: Demystifying the Black Art,
Objective 2.02 Utilize project-management skills to improve workflow and minimize costs.
Setting Your Fees Project Cost and Setting Your Fees.
Project Cost Management
Chapter 4: Project Cost Management
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
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.
Management & Development of Complex Projects Course Code MS Project Management Earned Value Concepts Lecture # 19.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
1 / 23 CS 709B Advanced Software Project Management and Development Software Estimation - II Based on Chapter 4 of the book [McConnell 2006] Steve McConnell,
1 Software Estimation. 2 Software Estimation: Demystifying the Black Art  While there is a limit to how good a project can go, there is no limit to how.
Applied Software Project Management LESSON 3: ESTIMATION Applied Software Project Management 12:02:37 PM 1.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 3 1 Software Size Estimation I Material adapted from: Disciplined.
Quality Software Project Management Software Size and Reuse Estimating.
CS 350: Introduction to Software Engineering Slide Set 3 Estimating with Probe I C. M. Overstreet Old Dominion University Fall 2005.
Disciplined Software Engineering Lecture #3 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
STEP 4 Manage Delivery. Role of Project Manager At this stage, you as a project manager should clearly understand why you are doing this project. Also.
SOFTWARE METRICS. Software Process Revisited The Software Process has a common process framework containing: u framework activities - for all software.
Project Management MLP, Careers & Employability Division.
Time Effect on Project Planning and Budgeting ‘Jide Onademuren.
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.
The Personal Software Process Alan Kelon Oliveira de Moraes May 15, Recife.
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.
CSE SW Project Management / Module 15 - Introduction to Effort Estimation Copyright © , Dennis J. Frailey, All Rights Reserved CSE7315M15.
Advanced Software Engineering Lecture 4: Process & Project Metrics.
9/8/99Lecture 51 CIS 4251 / CIS 5930 SOFTWARE DEVELOPMENT Fall 1999 Sept. 8, 1999 Marge Holtsinger.
2.02 Utilize project-management skills to improve workflow and minimize costs.
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.
(6) Estimating Computer’s efficiency Software Estimation The objective of Software Estimation is to provide the skills needed to accurately predict the.
INFO 636 Software Engineering Process I Prof. Glenn Booker Week 10 – Process Definition 1INFO636 Week 10.
CS 160 and CMPE/SE 131 Software Engineering March 22 Class Meeting Department of Computer Science Department of Computer Engineering San José State University.
Project Cost Estimation and Management. Learning Objectives Understand the importance of project cost management. Explain basic project cost management.
Customize Your Own Learning Process. Chapter Overview Skills for learning Reading for comprehension Problem solving Organizing your learning process Preparing.
Making the Learning Process Work for You.  Skills for learning Reading for comprehension Problem solving  Organizing your learning process  Preparing.
Software cost and effort estimation will never be an exact science. Estimation is very difficult to do, but is often needed Too many variables can affect.
Developing the schedule – Tracking Gantt charts Critical path method – Longest path, earliest time Schedule trade-offs using CPM – Free slack, total slack.
Chapter 33 Estimation for Software Projects
Debugging Intermittent Issues
Software Project Sizing and Cost Estimation
Chapter 7: Project Cost Management
Chapter 11 – Project Dashboard
Chapter 33 Estimation for Software Projects
Pest Risk Analysis (PRA) Stage 2: Pest Risk Assessment
Chapter 26 Estimation for Software Projects.
Quality & Risk Management
Presentation transcript:

The Art of Estimating Programming Tasks Adriana Lopez Development Director Dragon Age II

Why Are We Here? Individual Estimate Improvement

A Question  Have you ever been asked to provide an estimate for a task…  only to be proven horribly wrong (>2x)?  What were some of the consequences you experienced as a result?

What Were the Consequences?  Lower quality games  Poor coordination with other groups  Loss of credibility with your managers or peers  Oh, and Crunch Time  Lots and lots of crunch time

Overview  The Basics  What is an estimate?  Why is estimating hard?  How do we make estimating easier?  Questions?

What is an Estimate?

An Estimate…  Is a prediction of effort or complexity for a task.  Should reflect inherent uncertainty:  “I think this task will take between 3 and 8 days.”  Should be provided by the people doing the work.

An Estimate…  Has both accuracy and precision.  An accurate estimate is one where the actual value falls within the range of the estimate.  Avoid ranges that are too big to be of value.  A precise estimate is one with a narrow range.  Avoid misleading precision not supported by data.

An Estimate…  Allows the project to plan and organize its resources.  Accurate and precise estimates allow the project to be completed on time and predictably.

Why is Estimating Hard?

Under- vs. Over-Estimation  Studies show that programmers typically underestimate the work required to complete a task.

Incomplete Requirements  It’s too early in the project.  Estimating how long “it” will take before anyone knows what “it” is.  User doesn’t know what they want.  I’ll know “it” when I see “it”.  We haven’t asked the right questions.  Remember to get both functional and non- functional requirements.  Differentiate between Incomplete vs. Unstable Requirements

Cone of Uncertainty Project Management term used to describe the level of uncertainty existing at different stages of a project. Term popularized by Steve McConnell. Estimate Variability  Project Life 

Individual Estimation Practices  Pressure to Provide Low Estimates  Management needs to meet a target.  Peer pressure.  Remember:  Lower Estimate != Better Programmer  Avoid “Off-the-Cuff” Estimates

Individual Estimation Practices  Omitted Activities  Programming Activities  Non-Programming Activities  Unfounded Optimism  A justification to support an estimate that is not based on data.  “We’re smarter now”  “It can’t be that bad”

Individual Estimation Practices  Subjectivity / Bias  A desire (conscious or unconscious) to achieve a particular outcome.  Unfamiliar Problem Domain  Lack of experience.  Lack of Historical Data  Base your estimates on past performance.

Project Chaos  Differentiate between targets and estimates  Determine whether you are being asked for a realistic estimate or for a way of meeting a target.  Do not provide “off-the-cuff” estimates  “Off-the-cuff” estimates can become targets / commitments.  Learn to negotiate the requirements

How do we make it easier? PlanExecuteReview

Planning What are you getting yourself into?

The project leads are concerned about the total workload required to complete the agreed upon scope. Total workload is the sum of individual tasks and is based on how complex / how big you think the work is. Use estimation techniques to figure that out.

Technique 1: Establish a baseline  Complexity Estimates:  XP (Experience Points)  Complexity Points  Headaches  Beers  Allow ranges: 1,2,3,5,8,13,20…  Actual work is measured in real time (e.g. hours).  Time Based Estimates: Effort Hours Ideal days

Technique 2: Collaboration  Lowers personal bias.  Without collaboration:  The estimate will depend upon who is / when asked.  Do not assume that the most reliable estimates come from the people with the most powerful vocal chords. Ok guys, how long is this going to take? 5 2Zzz z

Technique 3: Triangulation  Compare New Work with Known Past Work.  Requires Historical Data.  Be Consistent ! 2 XP 1 XP 3 XP

~ 10,000 XP A – 2 XP B – 3 XP C – 1 XP Technique 4: Decomposition  Breakdown large tasks / user stories into smaller tasks / user stories that:  You’re more familiar with  Are no bigger than a few days of work

Planning  Use these techniques to arrive at an estimate that minimizes the impact of:  Omitted Activities  Unfounded Optimism  Subjectivity  Bias  Unfamiliar Problem Domain

Planning  Remember to record your estimate!  To have data from previous tasks, you need to start writing your estimates down.  Use it as a tool to help you monitor and improve your own performance during execution.

Execution 80% of the time is spent doing 20% of the work

Record Actual Time Spent  The most effective way to deal with many of the Individual Estimation problems.  Depends upon having a clear and unambiguous task.  A clear task allows you to differentiate between defects and changes.

Where is your time going?  Exercise: Try tracking your time for your next user-story or Task. Observe where you spend your time.

Review How did I do?

 Ask questions:  How fast are you working?  How close was your estimate to the actual result?  Did I forget to anticipate anything that would be useful to know when estimating my next task?

Analyze the Results  Useful Calculations  Velocity  How fast are you working?  Magnitude of Relative Error (MRE)  How close was your estimate to the actual result?

Example – Part 3a, Velocity  Velocity is Work / Unit Time  Points:7 XP / 3 calendar days= 2.3 XP / day  Effort:9.5 hrs / 3 calendar days = 3.2 hrs / day DateTaskOriginal Estimate Total calendar days Total Velocity 4/7/2008A3 XP5 4/8/2008B2 XP2 4/9/2008C5 XP80.66 XP /day

Example – Part 3b, MRE  MRE is ABS (Actual – Expected) / Actual  ABS (9.5 – 7) / 9.5 = 0.26 TaskBestExpectedWorstActualMRE A1 B5 C10 D %

Update Future Estimates  Don’t update the original estimate when the task is complete just to get a better result!  It is to be expected that estimates change over time.  Requirements are refined or change altogether as the project moves forward.  Remember the “Cone of Uncertainty”

Summary  It is our INDIVIDUAL responsibility to improve the accuracy and precision of our estimates.  Watch for Bad Individual Estimation Practices  Use Collaboration Techniques  Collect and Analyze Data  Use Analysis to Improve Your Future Estimates

Summary  Find a method that works for you.  (Make sure it will still work with your project).

¿Questions? “It is very difficult to make a vigorous, plausible, and job- risking defense of an estimate that is derived by no quantitative method, supported by little data, and is certified chiefly by the hunches of the managers.” Fred Brooks

References  10x Software Engineering course offered by Construx Software (  Software Estimation by Steve McConnell  Mountain Goat Software ( /) /