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 Boem’s cone of uncertainty
- Describes the evolution of the amount of best case uncertainty during a project.
- Early on in a project, there’s a lot of variance so estimations are largely incorrect
- As we progress through the project, the variance reduces and our ability to estimate correctly 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
- Sales driven estimation or development driven estimation
- estimation skill
- development skill
- or an external body may determine where 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
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?
We can see organisation A has a fairly poor EQF around 3 (which means a typical error
of around 30% in there estimation values). Also organisation A has a positive bias of 7% in their estimates. This would indicate a tendency to over estimate project time. This could lead to projects being over resourced and costing for projects being consistently over estimated.
Organisation B has a lot higher performance in terms of estimation and seems to have a successful estimation technique (EQF 22). Also organisation B has a very small bias, this would imply that the estimation tends to be not effected by external pressures.
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 you process for estimating project duration?
- if your EQF is bad and your bias is 0, then you’re 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?
- Definition of Success: The Chaos Report’s criteria (time, budget, and scope) were criticized as overly narrow and not reflective of real-world success factors, such as delivering business value or user satisfaction.
- Data Transparency: Critics argued that the Standish Group’s methods were opaque, 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
Manufacture/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 software engineering activities?
- 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 previous design approaches (object patterns)
- Improve concurrency modelling (Actor modelling and futures)
- Conform to software principles such as SOLID and DRY
- Use Agile approaches like pair programming
What should there be a test for?
- There should be a test for every requirement in the specification
What should tests be designed to do:
They should be designed to:
- Test core functionality
- Expose software failure
What are some types of testing:
- Path testing
- Boundary testing
- partition testing
- module testing
- beta testing
What are the advantages and disadvantages of having chat gpt create a product specification?
Advantage
- is that it very quickly can create a list of specifications
- it writes them clearly
- it has good coverage of core requirements
Disadvantage:
- it doesn’t understand what it’s producing
- any innovations are just pirated from existing products
Why did the report refer to the Chaos report as “one sided” in its reporting?
- The case studies show that organisation Y obtains unrealistically low success rates for the individual cost and functionality forecasts owing to the definitions’ one-sidedness.
- Realistically the organisation has a higher project success rate, but the one-sidedness of the chaos report makes the success figures a lot lower.
- Standish success rates don’t give an accurate indication of true estimation accuracy of cost and functionality in the case of an unbiased best-in-class organisation.
What is the meaning of the term f/a and how does it relate to project failure or success when looking at project time taken and also functionality delivered.
F is the forecasted value in terms of budget and time and A is the actual time or budget for the project
- they closer the f/a value is to 1, the more successful the chaos report determines the project to be
Describe the constraint triangle:
Software products have 3 constraints:
- Cost, time and quality
- You can adjust any two but you can’t have improve all 3 factors at once