Critical Estimation Concepts Flashcards

1
Q

What is a target?

A

A target is a statement of a desirable business objective. Such as: “We need to have Version 2.1 ready to demonstrate at a trade show in May” It is not an estimate, but the estimate can help finding out if the target can be hit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is a commitment?

A

A commitment is a promise to deliver defined functionality at a specific level of quality by a certain date. It can be the same as an estimate, or more aggressive, or more conservative.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is an estimate (Dictionary Definition)?

A

Dictionary Definition:

1) A tentative evaluation or rough calculation
2) A preliminary calculation of the cost of a project
3) A judgement based upon one’s impressions; opinion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Which concepts are closely related to and often confused with estimates?

A

Targets, which are business objectives, and Commitments, which are promises. They can be the same, but don’t have to be.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the relationship between Estimation and Planning?

A

They are related, but estimation is not planning, and planning is not estimation.

Estimation should be unbiased and analytical, with accuracy as the goal.

Planning is done to seek a particular result, to achieve a specific outcome. We plan specific means to reach a specific end.

Estimates form the foundations of a plan. If Estimates differ dramatically from the targets, the project plan needs to account for the high risk.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How can you avoid miscommunication around Estimates, Targets and Commitments?

A

When you’re asked to provide an estimate, determine whether you’re supposed to be estimating or figuring out how to hit a target.

Red flags are statements like: “How long will this take? We need to have it delivered by March”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

How is Project Outcome vs. Estimate distributed?

A

Not as a bell curve: It has a hard stop on the left side since there is a lower limit about how much needs to be done, but there is no limit on the right side.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How should single estimates be treated?

A

Not as estimates, as they are lacking information about the probability. Ask about a range, or about the best case vs. worst case.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

How can probability in estimates be expressed?

A

Either directly (“90% confident with a 24 week schedule”) or as a range (“18-24 weeks”) or with best/worst case (“Best case: 18 weeks. Worst case: 24 weeks”)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is usually the real purpose of Estimations?

A

It’s not about predicting a project’s outcome, it’s to determine whether a project’s targets are realistic enough to allow the project to be controlled to meet them.

It’s as if packing for a trip. Will the clothes for the trip fit in a small suitcase, maybe with minor adjustments, or are we forced to take a bigger suitcase? Project Managers normally don’t want an estimate that tells them that the clothes don’t fit, they want a plan for making as many of the clothes fit as possible.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is a good estimate?

A

A good estimate is an estimate that provides a clear enough view of the project reality to allow the project leadership to make good decisions about how to control the project to hit its targets.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

How should estimates with a confidence (like 90%) be treated?

A

With caution - confidences should only be set if there is a quantitative basis, otherwise it is wishful thinking

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

How wide should you make your ranges?

A

Ranges are usually done too narrow. They should not misrepresent the confidence in the estimates (for example, little confidence in a range of 6-7 hours is worth less than high confidence in a range of 4-16 hours)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Where does the pressure to use narrow ranges come from?

A

Often from the inside, professional pride or to give the impression that a narrower range represents a better estimate.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Why are narrow ranges bad?

A

They come from the misconception of Precision vs Accuracy, which are often mixed up.

A precise estimate is like 8h, 2 mins, 3 seconds. Very precise, but not very accurate

An accurate estimate is like “it will be done in the future”. Very accurate, but not very precise.

By giving a high precision, people get the feeling that the estimate is also very accurate.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is Parkinson’s Law and how does it relate to Estimates?

A

Work will expand to the available time.

The fear is that if developers overestimate, they find ways to use the additional time.

This might be true, but the cost for overestimation is linear and bounded - work expands to fill the available time, but no further. The cost for underestimation is nonlinear and unbounded, it causes delays, defects and hard to predict costs.

This should be tackled with better project control, not with intentional underestimation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What is the Student Syndrome and how does it relate to Estimates?

A

It’s the assumption that if developers are given too much tiem, they procrastrinate until late in the project, then they rush to complete their work and probably won’t finish the project on time.

However, this can be solved more efficiently through active task tracking and project control and not through changing the estimates.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What are typical arguments against overestimation?

A
  • Student’s Syndrome
  • Parkinson’s Law
  • Missing sense of urgency
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

What are typical arguments against underestimation?

A
  • Reduced chance of on-time completion
  • Reduced effectiveness of project plans
  • Poor technical foundation
  • Destructive late-project dynamics make the project even worse
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What is the software industry’s problem with estimate and what are the consequences?

A

The software industry has an underestimation problem. The consequence is that estimates will get bigger as they get more accurate.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What are the benefits of accurate estimates?

A
    • Improved status visibility
    • Higher quality
    • Better coordination with nonsoftware functions
    • Better budgeting
    • Increased credibility for the development team
    • Early risk information
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

How important is the predictability of a project in comparison to other factors such as functionality and cost?

A

It usually is much more important. People prefer a predictable feature even if it takes a bit longer, because the business can depend on it.

Many businesses value predictability more than development time, cost or flexibility.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What is the problem with “intuition” and “guessing” as an estimation technique?

A

Even for skilled developers these estimates are usually not accurate.

60%-85% of all estimates are based on guessing, intuition, unstructured expert judgement, informal analogies and similar techniques.

These have been found to corellate with cost and schedule overruns.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What is the Cone of Uncertainty?

A

A representation of the best case of variablility in estimates at a certain stage of Software Development. As the project moves along, the cone gets narrower.

Since this is a best case representation, working on the estimate cannot make it more accurate than the cone, instead, the software definition needs to be refined.

The cone doesn’t narrow itself - decisions need to be taken to remove the variability from the project.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

What are typical steps within the Cone of Uncertainty?

A
    • Initial Concept
    • Approved Product Definition
  • Requirements Complete
  • User Interface Design Complete
  • Detailed Design Complete
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

What is the relationship between the Cone of Uncertainty and Commitment?

A

Committing too early in the Cone means the project will fail. Project Managers can navigate projects if the estimate is within 20% of the project’s reality, so meaningful commitments can be done around 30% in the project (after some work has been done)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

What is the relationship between the Cone of Uncertainty and Iterative Development?

A

Iterative Development creates “mini-cones” for each current feature, which means that the cone for that feature can be reduced in a few days.

However, this means that the overall cone for other features will not narrow down until an interation starts.

A middle ground can be to reduce the cone in a sequential way before switching to iterations - but that depends on the priorities of the business (Flexibility of switching features vs predicatbility of outcome)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

What is the relationship between chaotic processes and estimation?

A

Better estimation pracitces alone do not provde more accurate estimations for chaotic projects. You can’t accurately estimate an out-of-control process. As a first step, fixing the chaos is more imporant than improving the estimates.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

What is the relationship between unstable requirements and estimates?

A
    • Unstable requirements can be part of process chaos, so the cone will never narrow
    • Additionally, these requirements are often not re-estimated, or new requirements come in but are not accounted for, so the project runs late even if the (initial) estimates where good
    • To deal with unstable requirements, consider project control strategies instead of or in addition to estimation strategies.
    • Additionally, the original estimates can be buffered to account for late requirement additions (for example: add 50% buffer on the sum of overall estimates)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Which categories of activities are usually omitted during estimation?

A
  • Missing requirements
  • Missing software-development activities
  • Missing non-software-development activities
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Why should also very tiny requirements be included in the estimates?

A

As nothing can be built for free, the estimates should not imply that it can.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Why are developer estimates usually too optimistic?

A

Developer Estimates are usually 20%-30% too optimistic. Reasons include:

  • We’ll be more productive on this project than we were on the last project
  • A lot of things went wrong on the last project, not so many will go wrong on this project
  • We started the project slowly and learned a lot of lessons the hard way, but all the lessons will allow us to finish the project much faster than we started it
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

What is the danger of complex estimation techniques with lots of “control knobs”?

A

Methods with control knobs such as scaling factors or multipliers give you the feeling that the estimate will be more accurate, but allow the estimator’s subjectivity to creep in . The variance of the resulting estimate is much bigger than for simpler estimation techniques.

34
Q

What is the danger of off-the-cuff-estimates?

A

They are usually too high as they rely only on memory or gut feeling. Even a 15 minute estimate based on notes or documents will be more accurate.

35
Q

What is the Diseconomy of Scale and how does it relate to Estimates?

A

The Diseconomy of Scale means that when a software grows linearily in size, the number of communication paths between people involved (and sometimes modules written) increases as a squared function.

This means, the bigger a system, the greater the cost of each unit (and therefore the estimate).

It also means that as the project scales up linearily, the efforts go up exponentially.

Therefore, two projects/estimates can not be easily compared if those projects differ a lot in size

36
Q

When can you ignore the diseconomies of scale?

A

When the new project is roughly the same size as the old one (Factor 3 lowest to biggest)

37
Q

What is the relationship between the type of system and estimates?

A

After Size, the type is the second biggest influence to estimates even if the project size is compareable. For some types it’s easier to create/write software quickly than for others.

38
Q

What are main influences on estimates?

A
  • The sizes (effort scales exponentially with linear system growth)
  • The type (for some types it’s easier to write code than for others)
  • The personnel
  • The programming language and frameworks
39
Q

What are typical Personnel Factors which influence an estimate?

A
    • Requirements Analyst capability
    • Programmer Capability
    • Personnel Continuity
    • Business Area Experience
    • Language and Tools Experience
    • Platform Experience
    • Team Cohesion

That means, you can’t make an estimate if you don’t have some idea of who will be doing the work - because individual performance varies by a huge factor

40
Q

How does the Programming Language influence the estimate?

A

The choice of the programming language has several aspects which influence the estimate:

    • Familiarity with the programming language
    • Ease of development
    • Ease of writing tests
    • Richness of tool support and environments
    • Interpreted vs compiled languages (interpreted tend to be more productive)
41
Q

Which are the Cocomo Adjustment Factors?

A

In the order of impact on the estimate:

    • Product Complexity
    • Requirements Analyst Capability
    • Programmer Capability
    • Time Constraint
    • Personnel Continuity
    • Multisite Development
    • Required Reliability
    • Extent of Documentation required
    • Business Area Experience
    • Use of Software Tools
    • Platform Volatility
    • Storage Constraint
    • Process Maturity
    • Language and Tools Experience
    • Database Size
    • Platform Experience
    • Architecture and Risk Resolution
    • Precedentedness
    • Development for Reuse
    • Team Cohesion
    • Development Flexibility
42
Q

What is the influence of Applications (Business Area) Experience on Estimates?

A

Teams that aren’t familiar with the project’s business area need significantly more time.

Influence: 1.51

43
Q

What is the influence of Architecture and Risk Resolution on Estimates?

A

The more actively the project attacks risks, the lower the effort and cost will be. This is controllable by the project manager.

Influence: 1.38 (Impact depends on Project Size)

44
Q

What is the influence of Database Size on Estimates?

A

Large, complex databases require more effort project-wide. The total influence is moderate.

Influence: 1.42

45
Q

How does underestimation cause Reduced effectiveness of project plans?

A
  • Follow-up activities, team size and other aspects which are based on the estimation will also fall apart
46
Q

How does underestimation cause Poor technical foundation?

A
  • Too little time will spent on requirements and design
  • The result is worse than nominal
47
Q

What are Destructive late-project dynamics and how do they relate to estimates?

A

Relation to Estimates: Are a typical outcome of underestimation.

What they are:

  • Status meetings, reestimation, apologizing to the customer
  • Scope renegotiation
  • Fixing problems for quick and dirty workarounds
48
Q

How do accurate estimates lead to Improved status visibility?

A

If the project plan is a fantasy, no one pays attention to it. If the estimates are accurate, the plan is more visible.

49
Q

How do accurate estimates lead to Higher Quality?

A

Accurate estimates help avoid stress-related quality problems.

50
Q

How do accurate estimates lead to Better coordination with nonsoftware functions?

A

It’s easier to coordinate other activities/follow ups if the estimates are accurate

51
Q

How do accurate estimates lead to Early Risk Information?

A

If estimates are accurate, they tell you more about the project risks. It is not good to negotiate the estimates instead of adapting the plan.

52
Q

How should the scoping error ranges of the Cone of Uncertainty be used?

A

They should be applied to estimates according to the state of the requirement. Since they are a “best case” approximation, the ranges for any feature given at any point should not have a narrower range.

53
Q

What is the scoping error range for the phase “Detailed Design Complete”?

A

Possible Error on low side: 0.90x (-10%)

Possible Error on high side: 1.10x (+10%)

Range High to Low Estimates: 1.2x

54
Q

What is the scoping error range for the phase “User Interface Design Complete”?

A

Possible Error on low side: 0.8x (-20%)

Possible Error on high side: 1.25x (+25%)

Range High to Low Estimates: 1.6x

55
Q

What is the scoping error range for the phase “Requirements Complete”?

A

Possible Error on low side: 0.67x (-33%)

Possible Error on high side: 1.5x (+50%)

Range High to Low Estimates: 2.25x

56
Q

What is the scoping error range for the phase “Approved Product Definition”?

A

Possible Error on low side: 0.5x (-50%)

Possible Error on high side: 2.0x (+100%)

Range High to Low Estimates: 4x

57
Q

What is the scoping error range for the phase “Initial Concept”?

A

Possible Error on low side: 0.25x (-75%)

Possible Error on high side: 4.0x (+300%)

Range High to Low Estimates: 16x

58
Q

What are Cocomo Adjustment factors and how do they relate to estimations?

A

What are Cocomo Adjustment factors and how do they relate to estimations?
Cocomo II is an estimation technique. While it is not perfect, the adjustment factors it uses shed a light on the influences on estimates.

59
Q

Which activities from the category “non-software-development activities” are usually omitted during estimation?

A
    • Vacations
    • Sick Days
    • Training
    • Setting up a new workstation
    • Troubleshooting hardware and software problems
  • -…
60
Q

Which activities from the category “software-development activities” are usually omitted during estimation?

A
    • Ramp-up of new team members
    • Coordination meetings
    • Requirements clarification
    • Creation of test data
    • Support of existing systems
    • Learning new development tools
    • Review of technical documentation
61
Q

Which activities from the category “Requirements” are usually omitted during estimation?

A
    • Setup/Installation
    • Portability
    • Reliability
    • Scalability
    • Security
    • Glue code (Code needed to make components fit together)
  • -…
62
Q

What is the influence of Storage Constraints on Estimates?

A

Working on a platform where the team is butting up against storage limitations has a moderate effect on the project effort.

Influence: 1.46

63
Q

What is the influence of Software Tools on Estimates?

A

Advanced Tool Sets can reduce effort significantly.

Influence: 1.5

64
Q

What is the influence of Time Constraints on Estimates?

A

Minimizing response time increases effort accross the board. This is one reason that system projects and real-time projects tend to consume more effort than other projects of similar sizes.

Influence: 1.63

65
Q

What is the influence of Team Cohesion on Estimates?

A

Teams with highly cooperative interactions develop software more efficiently than teams with more contentious interactions.

Influence: 1.29 (Impact depends on Project Size)

66
Q

What is the influence of Storage Constraints on Estimates?

A

Working on a platform where the team is butting up against storage limitations has a moderate effect on the project effort.

Influence: 1.46

67
Q

What is the influence of requirements flexibility on Estimates?

A

Projects that allow the dev team latitude in how they interpret requirements take less effort than projects that insit on rigid, literal interpretations of all requirements.

Influence: 1.26 (Impact depends on Project Size)

68
Q

What is the influence of the requirements analyst capability on Estimates?

A

The single largest personnel factor makes a factor of 2 difference.

Influence: 2.0

69
Q

What is the influence of the required reliability on Estimates?

A

More reliable systems take longer. Usually, the market defines how reliable

Influence: 1.54

70
Q

What is the influence of general Programmer Capability on Estimates?

A

The skill of programmers has an impact of a factor of almost 2 on overall project results.

Influence: 1.76

71
Q

What is the influence of Product Complexity on Estimates?

A

This is the single most significant adjustment factor.

Influence: 2.38

72
Q

What is the influence of Process Maturity on Estimates?

A

Projects that use more sophisticated development processes take less effort than projects that use unsophisticated processes.

Influence: 1.43 (Impact depends on Project Size)

73
Q

What is the influence of Precedentedness on Estimates?

A

Precedentedness = opposite of “unprecedented”

Familiar systems are easier to create than unfamiliar systems.

Influence: 1.33 (Effect depends on Project Size)

74
Q

What is the influence of Platform Volatility on Estimates?

A

If the platform is unstable, development can take moderately longer. Projects should weigh this factor in their decision about when to adopt a new technology.

Influence: 1.49

75
Q

What is the influence of Platform Experience on Estimates?

A

Experience with the underlying technology platform affects the overall project performance moderately.

Influence: 1.40

76
Q

What is the influence of Personnel Continuity on Estimates?

A

Project turnover is expensive - it’s in the top one-third of the influential factors.

Influence: 1.59

77
Q

What is the influence of Multi-Site Development on Estimates?

A

Projects conducted by a team spread across multiple sites around the globe will take 56% more effor than projects that are conducted by a team co-located at one facility.

Influence: 1.56

78
Q

What is the influence of Language and Tools Experience on Estimates?

A

Teams that have experience with the programming language and/or tool set work moderately more productively than teams that are climbing a learning curve.

Influence: 1.43

79
Q

What is the influence of the extent of required documentation on Estimates?

A

Too much documentation can negatively affect the whole project. Impact is moderately high.

Influence: 1.52

80
Q

What is the influence of components being developed for reuse on Estimates?

A

Software that is developed with the goal of later reuse can increase costs as much as 31%. This doesn’t say whether the initiative actually succeeds. Industry eperience has been that forward-looking reuse programs often fail.

Influence: 1.31

81
Q

How are Cocomo Influence Factors used?

A

The factors are for the respective “worst case”, where a factor of 1.0 would be an ideal case.

Multiply all influence factors together and multiply the effort with it.

82
Q

How can unstable requirements be accounted for?

A
    • To deal with unstable requirements, consider project control strategies instead of or in addition to estimation strategies.
    • Additionally, the original estimates can be buffered to account for late requirement additions (for example: add 50% buffer on the sum of overall estimates)