Software cost estimation and project management Flashcards
What are the issues with measuring success relative to the original estimation?
Sometimes companies
- estimate too low timescales
- are underresourced and over-promised
- estimate too high timescales
- are overresourced
- get it just right
Describe Boehm’s cone of uncertainty
- Describes the evolution of the amount of best case uncertainty during a project.
- Early on in a project, there’s large variance so estimations are often incorrect
- As the project progresses, variance reduces and our estimation ability improves
- When we get very close to the project delivery date, the variance is so small that we can near perfectly estimate when it will be finished.
What is project success and failure defined by?
- Context (budget, costings, type of company)
- Culture
- estimation skill
- development skill
- or an external body may determine if a project is a failure or success
What is an EQF score:
An estimation quality factor is a technique used to determine the quality of your estimation.
What does a project’s EQF score tell us?
What is an EQF of 0 considered to be?
What is an EQF of 3 considered to be?
What is an EQF of 10 considered to be?
- If it’s high it tells us your good at estimating
- If it’s low it tells your bad at estimating
- If the EQF score is 0, you’re perfect at estimating
- An EQF of 10 is considered to be good
Calculate the EQF score for this project:
* Project completes in 14 weeks
* Estimates: 20,10,15,12,12
- Differences: 6,4,1,2,2
- Average deviation: ((6/14) + (4/14) + (1/14) + (2/14) + (2/14)) / 5 = 0.214
- EQF = 1/Average = 4.67
What is the issue with EQF?
It doesn’t show or consider estimation bias
What does estimation bias show?
Estimation bias as a measure for a number of estimates shows if the estimator in generally over or under estimates.
What does it mean if an estimator has an estimation bias of 0?
It means that the over estimate the same amount of time as they underestimate
What does a positive or negative estimation bias tell us:
A positive estimation bias tells us that the estimator generally overestimates
a negative estimation bias tells us the estimator generally underestimates
What are the effects of over and under estimating project duration?
- overestimation leads to waste and over-resourcing
- underestimations lead to more project overruns and money may be lost in the form of contract penalty clauses
What would EQF scores of 3 and 22 be classed as?
Organisation A has a fairly poor EQF around 3 (which means a typical error of around 30% in there estimation values)
Organisation B has a lot higher performance in terms of estimation and seems to have a successful estimation technique (EQF 22).
What is the difference between calculating the bias and calculating the bias percentage?
Note: In the exam, it will ask for the bias to be calculated this means the bias percentage.
Bias percentage is just the normalised figure of the bias:
Bias = mean(estimates) - actual value
Bias percentage = (mean(estimates) - actual value) / actual value
Give the (percentage) bias of the following project:
* Estimates: 20,10,15,12,12
* Actual value: 14
- Bias = (13.8-14)/14 = -0.0143 or - 1.43%
- We can see that the estimates are fairly unbiased overall, but only slightly optimistic (overall the estimation was under the actual)
When do you bother calculating bias?
- if the EQF is good, you’re not bothered about bias
- If the EQF is bad, you calculate it to see if there’s a pattern to your estimates
What does the eqf and bias tell you about your process for estimating project duration?
- if your EQF is bad and your bias is 0, then your process for estimation is random or all over the place
- if your EQF is bad and your bias is largely negative or largely positive, it means there’s a fault in your process that’s causing either great under or great over estimation
What are some attributes that effect estimations?
-When the estimation is made: early estimations are more erroneous than later ones
-management pressure: can create low estimates because management has pushed for that
-inexperienced developers
-lack of design (makes it harder to estimate)
-quality of specification (more detail, means the estimate for how long it takes is more accurate)
What is sandbagging?
giving more time or resources than is actually needed just in case they are needed (but most likely aren’t)
What criticisms or flaws were made by the rise and fall of the chaos report about the standish chaos report?
- The Chaos Report’s criteria is overly narrow and not reflective of real-world success factors, such as delivering business value or user satisfaction.
- The Standish Group’s methods were opaque, data findings are based on is not published, making it hard to validate their findings.
- Bias Toward Small Projects: Later iterations showed smaller projects had higher success rates, leading some to argue the report undervalued the benefits and challenges of large-scale innovation.
- you have to look at the raw data to see if companies were actually successful
What are the general engineering principles?
Specification: What should it do? How should we specify?
Design: How should it do it? General approach
Implementation: Implement the design as product
Quality control: Test/analyse the product
Modify/enhance: Improve the product, fix problems
What are the software engineering activities?
Software Engineering activities
* Requirements analysis
* Software design/implementation: Patterns, Actor model, AOP
* Software testing and analysis: Program slicing
* Software Management: Scheduling, quality assurance, workflow
What are the 6 steps of the software engineering process?
- Specification
- Design
- Development
- Verification
- Validation
- Management
What are the 4 software engineering components?
- Software specification: customers and engineers define the software and it’s operational constraints
- software development: SOLID and OO patterns
Actor model, futures (concurrency) - Software validation: Software (and specification) is checked against requirements
- Software evolution: Software modified to meet new customer and market requirements
What are some ways we can improve design and implementation?
- Using OO object patterns
- Improve concurrency modelling (Actor modelling and futures)
- Conform to software principles such as SOLID and DRY
- Use Agile approaches like pair programming