Lecture 7 - Software Estimation I Flashcards
In Scope management, what does Scoping mean?
Define boundaries of the project
What are the elements that make up Scope Management? (3)
- Time
- Resources
- Functionality
What is Brook’s Law?
Adding a human resource to a late software project makes it later
5 persons working full time for six weeks in a project, 35 hours of work per week. What is the Work Effort?
Work Effort = (5 persons x 6 weeks x 35 hours/week) = 1050 person-hours
What is “productive effort”?
A person’s effort on project related tasks. Excludes lunch, coffee, team meetings, etc.
TF: Effort and Cost estimation allow you to estimate how many features can be delivered within a specific development iteration
True
TF: Estimating time needed for defect correction work is a benefit of Effort and Cost Estimation
True
What is a solution for a project that is over-scoped?
Reduce scope by defining a feature subset (release/project baseline) such that it is no longer over-scoped
How do you define requirements baseline-steps? (3)
- Establish business value
- Assess effort (person-hours) required to develop feature
- Assess risk involved in developing feature
TF: Assessing scope effort early in the project is easy
False. Difficult to estimate since requirements not detailed and design unclear
TF: A factor to consider when assessing scope risk is new unproven technologies being used
True
What are the Priority categories in Requirements Priority? (3)
- Critical
- Important
- Useful
What does it mean if a requirement is said to be Critical in Requirement Priority?
Means requirement must be incorporated in next product release
What does it mean if a requirement is said to be Important in Requirement Priority?
Means requirement is necessary but can be deferred to later release if necessary
What does it mean if a requirement is said to be Useful in Requirement Priority?
Means it would be nice to have, but might be dropped if there is insufficient time or resources
What are the Prioritization techniques? (3)
- Ranking
- Grouping
- Hundred-dollar method
How does the Ranking prioritization technique work?
Rank requirements using a scale
How does the Grouping prioritization technique work?
Group requirements based on priority groups (critical, important, useful)
How does the Hundred-dollar method prioritization technique work?
Stakeholders get a conceptual $100 to distribute among requirements
What is the first principle of Estimation Fundamental Principles?
An estimate is a projection from past to future, accounting for differences between past and future
How is the past captured in the first principle of Estimation Fundamentals?
Historical data
How is the future captured in the first principle of Estimation Fundamentals?
Requirements for the software to be developed
In the second principle of Estimation Fundamental Principles, all estimates are based on… (2)
- Set of assumptions that must be realized
- Set of constraints that must be satisfied
What is an assumption?
Statement taken to be true without verifying
(ex: might be assumed that productivity factor for project will be 500 lines of code per month)
What is a constraint?
An externally imposed condition that must be observed
(ex: project might be constrained to 5 people for 6 months)
Say you are given the constraint that 5 people will work for 6 months, and that similar past projects had an average of 50 delivered source lines of code (DSLOC) per person month, what product can we build?
5 people x 6 month = 30 person-months
50 x 30 = 1500 DSLOC per person-month
What is the third principle of Estimation Fundamental Principles?
Projects must be re-estimated periodically as understanding grows and aperiodically as project parameters change
How often should re-estimation and re-planning occur for a project less than 12 months long?
Monthly basis
How often should re-estimation and re-planning occur for a project more than 12 months long?
Quarterly basis
What are unanticipated changes that would require re-estimation of a project? (5)
- Major change in requirements
- Failure of new technology
- Compression of schedule
- Reduction of planned budget
- Loss of key personnel
When is uncertainty highest for a project?
At the start of the project
When is uncertainty lowest for a project?
At the end of the project
When is confidence lowest for a project?
At the start of the project
When is confidence highest for a project?
At the end of the project
What is the concept used to show the uncertainty and confidence level for a project?
Cone of uncertainty
What are two popular experience-based estimation approaches?
- Estimation by Analogy
- Estimation by Expert Judgment
Estimating new projects by comparing them to similar past projects is which estimation approach?
Estimation by Analogy
In Estimation by Analogy, ‘Using analogies to determine size measure’ means what?
comparing a new project or task to a similar past one to estimate effort, time, or cost
What is the first step of Estimation by Analogy?
Get detailed size results for a similar previous project
Finding subsystems (DB, UI, Classes, reports, etc.), number of elements (# of tables in DB, web pages for each subsystem) is part of which estimation technique and which step?
Step 1 of Estimation by Analogy
What is the second step of Estimation by Analogy?
Compare size of new project to a similar past project
How do you get the multiplication factor for comparing size of new project to similar past project in Estimation by Analogy?
Multiplication factor (subsystem) = (# elements in New) / (# elements in Old)
What is the third step of Estimation by Analogy?
Build up estimate for the size of the new project
How do you get the size of the new subsystem in Estimation by Analogy?
Size (new subsystem) = size (old subsystem) x multiplication factor
How do you get the size of the new Project in Estimation by Analogy?
Size (new project) = sum of size of all its subsystems
What is the fourth step of Estimation by Analogy?
Create an effort estimate based on size of the new project
How do you get the size ratio of a project in Estimation by Analogy?
Size ratio = size (new project) / size (old project)
How do you get estimated effort for a new project in Estimation by Analogy?
Estimated effort (new project) = Effort (old project) x size ratio
When should you use Estimation by Analogy? (3)
- When little data available (but previous systems can serve as basis)
- Quick, rough order of magnitude estimate needed
- Check on other techniques
TF: Estimates when little data is available is an advantage of Estimation by Analogy
True
TF: Estimation by Analogy requires large data collection
False. Requires limited data collection
TF: Estimation by Analogy is based on actual costs
True
TF: A disadvantage of Estimation by Analogy is it is based on limited data
True
TF: Subjective adjustments are easy to validate in Estimation by Analogy
False. Difficult to validate
TF: Accuracy being highly dependent on similarity between two projects is a disadvantage of Estimation by Analogy
True
TF: Estimation by Analogy identifies cost drivers
False. Do not identify cost drivers
Asking for an estimate for a project to someone knowledgeable about the application or development environment is which estimation approach?
Estimation by Expert Judgment
What is Delphi technique of Estimation by Expert Judgment?
When opinions of more than one expert is combined
How does the Delphi Technique work for Estimation by Expert Judgment?
- Each member estimates portion of project, then meet to compare estimates
- Discuss differences between individual results
- average out estimates
- Arrive to consensus estimate E
- Calculate range of effort estimation values
At the beginning of a project, the range of effort estimation values is within what?
± 25%
ex: [min, max] = [E * 75%, E * 125%]
As a project advances, the range of effort estimation values is within what?
± 15%
ex: [min, max] = [E * 85%, E * 115%]
What is the PERT estimation technique used for?
To create task-level estimates where the people who will complete the task create the estimates
What are the two cases we create when using the PERT estimation technique?
- Best Case
- Worst Case
How do you calculate the Expected Case in PERT Estimation technique?
ExpectedCase = [BestCase + (4*MostLikelyCase) + WorstCase] / 6
What are the advantages of Delphi Technique for Estimation by Expert Judgment? (2)
- Relatively cheap estimation method
- Accurate to degree that experts have direct experience with similar systems
What is a disadvantage of Delphi Technique for Estimation by Expert Judgment?
Low experience / no experiences results in inaccurate estimates