KEMBAR78
BIT 413_ITPM_Lecture_estimation and cost mgt_wk8.pdf
1
MIT811: IT Project
Management
Estimation and cost management
(Week 8)
2
Discussion Topics
⚫ Introduction to estimation
⚫ Uses of estimates
⚫ Estimation methods
⚫ Estimation process
⚫ Estimating size with LOC
⚫ Estimation size, time and cost with Function-
points
3
Introduction to estimation
⚫ Estimation is the
⚫ Process of knowing how much effort, cost, resources and
time the project will require to complete
⚫ Following types of estimation are most common:
⚫ Size estimation
⚫ Effort estimation
⚫ Cost estimation
⚫ Resource estimation
⚫ Project duration estimation
4
Uses of estimates
⚫ Decision-making
⚫ To evaluate project portfolios (collection of various project
reports)
⚫ To select proposed projects for implementation
⚫ To quote charges to clients for projects
⚫ To prioritize schedules
⚫ Project Administration
⚫ To prepare project timelines
⚫ To manage project team better
⚫ To control and evaluate project progress
⚫ To review project success
⚫ To evaluate project developers
5
Estimation methods
⚫ Price-to-Win
⚫ Analogy
⚫ Expert Judgment
⚫ Top-Down
⚫ Bottom-Up
⚫ Algorithmic Models
6
Price-to-Win
⚫ Determine your estimate based on what you
think is required to win the work contract
⚫ More common in situations where several
groups are asked to estimate the work
⚫ One group is then chosen and contracted as
the winner to perform the work
⚫ Although it makes business sense to use, -
this method should be supported by other
forms of estimation to avoid errors
7
Analogy
⚫ Compare with other previous projects which
have certain similarities
⚫ Requires use of historical database of original
plans and actual results of completed
projects
⚫ Analogy estimating is only as good as your
ability to find a matching set of circumstances
⚫ Useful when it provides support to other
estimates
8
Expert judgment
⚫ A number of people participate to make
informed estimates about schedule and effort
⚫ Exercise iterated until the estimates converge
to a result
⚫ Very common in software development
⚫ Often used as a substitute for other
estimating methods
⚫ Only as good as the people involved
9
Top-Down
⚫ Focus on overall system and
identifies major activities
⚫ Resource based
⚫ Estimate the size of the team
⚫ Identify resource types or skills needed
for each activity
⚫ Add it all up to determine cost
⚫ Create a schedule to fit
⚫ Estimate one component like
Requirements and use COCOMO to
extrapolate
⚫ Used to get rough early estimate
1. Define the work
2. Select the team
3. Estimate the work
60
15
25
30
30
100
40
10
Bottom-Up
⚫ Task-based, uses the WBS-
⚫ Estimate size, effort, cost, and schedule for
each activity
⚫ Integrate activities into bigger subsystems
and determine their revised estimates
⚫ Finally determine the estimates for the entire
system
⚫ Used to get detailed planning estimates
⚫ Requires tools support
11
Algorithmic Models
⚫ Mathematical formulas are used with variables that require
knowledge of:
⚫ Business requirements
⚫ Development environments / instances
⚫ People’s experience
⚫ Moves the estimator from a position of subjectivity to
objectivity
⚫ Examples:
⚫ Function Point
⚫ Feature Point
⚫ Attributes based
⚫ COCOMO (Constructive cost model)
12
Strengths and Weaknesses of Various Methods
Method Strengths Weaknesses
Price to Win Often gets the contract Generally produces long
overruns
Analogy Based on representative
experience
Representativeness of
experience
Expert
Judgment
Assessment based on experience No better than participants
biases, incomplete recall
Top-Down System level focus,
Efficient
Less detailed basis
Less stable
Bottom-Up More detailed basis
More stable
May overlook system level costs
Requires more effort
Algorithmic Repeatable, Analyzable formula
Efficient and objective
Subjective inputs
Calibrated to past, not future
13
Combining the methods to
increase efficiency
⚫ A top down estimate using the judgment of more than one expert,
using analogy estimation where a comparable previous project is
available
⚫ Bottom-up estimation using WBS and Expert Judgment
⚫ Compare bottom-up estimates with an Algorithmic method like
COCOMO
14
Estimation process
⚫ Estimation takes place in following manner
1. Estimate size
2. From the size estimate, determine the effort
needed.
3. From the effort estimate, determine project cost
and duration required
15
Fig: Estimation process
16
Size estimation
⚫ Size estimation is needed in order to estimate
all other estimates
⚫ This is because all other estimates are a
function of size
⚫ Size of software can be estimated using
⚫ Lines of code (LOC)
⚫ Function points etc.
17
Estimating size with LOC
⚫ Simplest and most widely used metric.
⚫ Simply count executable lines
⚫ Comments and blank lines should not be
counted
⚫ In the example below,
⚫ LOC = 14 – 2 blank lines - 2 comment lines = 10
18
Example: Java class
1 public class FactCalc
2 {
3
4 //main method
5 public static void main(String[] args)
6 {
7 int fact=1;
8
9 //compute factorial
10 for(int num=1;num<=8;num++)
11 fact = fact*num;
12 System.out.println("8! = "+fact);
13 }
14 }
19
Disadvantages of LOC
⚫ Size can vary with programmer coding style.
⚫ Focuses on coding activity alone.
⚫ Correlates poorly with quality and efficiency of
code.
⚫ Penalizes higher level programming languages
that employ code reuse, etc.
⚫ Measures lexical/textual complexity only - does
not address the issues of structural or logical
complexity.
⚫ Difficult to estimate LOC from problem description
20
Other measures for estimating
size
⚫ Number of functions or methods
⚫ Count the number of functions or methods in a system
⚫ Number of files
⚫ Count the number of separate physical files as stored in
secondary media
⚫ Number of classes (and/or number of packages)
⚫ Count the number of classes in system
⚫ Count the number of packages in system
⚫ May combine both classes and packages since classes
point to physical size while packages point to logical size
21
Other measures for estimating
size – cont’d
⚫ Number of objects
⚫ You can count the number of objects that will be created by
the system at run time
⚫ Difficult to estimate for event-based system which rely on
dynamic binding
⚫ Number of method calls
⚫ Count the number of incoming calls to a class (called fan-
in) and the number of outgoing calls from the class (called
fan-out)
⚫ Space occupied by files in storage media
⚫ Measure memory space e.g. in KB, MB, GB etc.
22
Function-points
⚫ It is designed to estimate time and the cost of
developing new software applications and
maintaining existing software applications.
⚫ It is also useful in comparing and highlighting
opportunities for productivity improvements in
software development.
⚫ It was developed by A.J. Albrecht of the IBM
Corporation in the early 1980s
⚫ Can be used to estimate size in place of LOC
⚫ Can also be used as a basis to make other types of
estimates.
23
Estimating size, time and cost
with Function-points
⚫ External inputs
⚫ Input files, forms, screens
⚫ External outputs
⚫ Output files, printouts, reports
⚫ External inquiries
⚫ Prompts, interrupts
⚫ External interfaces
⚫ IO routines, libraries
⚫ Internal files
⚫ Logically related data or control information
24
Fig: Function-points
25
Function-point steps
⚫ Determine the FPs
⚫ Estimate the complexity of each FP
⚫ LOW, MED, HIGH
⚫ Assign complexity weights, e.g. External Input: L=3, M=4, H=6
⚫ Multiply each FP by its weight to get “unadjusted function point”
⚫ Add them to determine the total UFP
⚫ Add “value adjustment factors” (0-5) for “total degree of
influence” (TDI)
⚫ e.g. Data communication and Distributed functions
⚫ Incorporate “Technical complexity factor” (TCF)
⚫ TCF = TDI * 0.01 + 0.65
⚫ FPs = UFPs * TCF
26
Function-point steps – cont’d
Function-points are counted and then multiplied
by their degree of complexity show below:
Simple Average Complex
Inputs 2 4 6
Outputs 3 5 7
Files 5 10 15
Inquires 2 4 6
Interfaces 4 7 10
27
Example
inputs
3 simple X 2 = 6
4 average X 4 = 16
1 complex X 6 = 6
outputs
6 average X 5 = 30
2 complex X 7 = 14
files
5 complex X 15 = 75
inquiries
8 average X 4 = 32
interfaces
3 average X 7 = 21
4 complex X 10 = 40
Unadjusted function points (UFP) = 240
28
⚫ In addition to these individually weighted function
points, there are factors that affect the project and/or
system as a whole.
⚫ Each of the factors is ranked from “0”- no influence to “5”-
essential.
⚫ The following are some examples of these factors:
⚫ Is high performance critical?
⚫ Is the internal processing complex?
⚫ Is the system to be used in multiple sites and/or by multiple
organizations?
⚫ Is the code designed to be reusable?
⚫ Is the processing to be distributed?
29
Continuing our example . . .
Complex internal processing = 3
Code to be reusable = 2
High performance = 4
Multiple sites = 3
Distributed processing = 5
Project adjustment factor = 17
Adjustment calculation:
Adjusted FP = Unadjusted FP X [0.65 + (adjustment factor X 0.01)]
= 240 X [0.65 + ( 17 X 0.01)]
= 240 X [0.82]
= 197 Adjusted function points
30
Applying FPs to make
estimates
But how long will the project take and how much will it
cost?
⚫ Based on historical data and experience,
programmers in this example on average take 18
function points per month. Thus . . .
197 FP divided by 18 = 11 man-months
⚫ If the average programmer is paid $5,200 per month
(including benefits), then the [labor] cost of the
project will be . . .
11 man-months X $5,200 = $57,200
31
Advantage of Function-points
⚫ Because function point analysis is language-
independent, it can be used to identify the
productivity benefits of -
⚫ One programming language over another
⚫ One development platform over another
⚫ One development methodology over another
⚫ One programming department over another
⚫ Before-and-after gains in investing in programmer
training
32
Disadvantages of Function-
points
⚫ Function point counts are affected by project size
⚫ Difficult to apply to massively distributed systems or
to systems with very complex internal processing
⚫ Difficult to define logical files from physical files
⚫ The validity of the weights that Albrecht established,
and the consistency of their application – has been
challenged by other researchers
⚫ Different companies will calculate function points
slightly different, making inter-company comparisons
questionable
33
Alternatives to Function-points
⚫ Feature points
⚫ Perform a Function-point analysis
⚫ Then count of the number of algorithms
⚫ Use-case points
⚫ Similar to FP but based on use-cases
⚫ Use-case is a user-initiated set of actions
⚫ Very useful at requirements stage i.e. before
system design is done
34
Readings
⚫ Kathy Schwalbe - Chapters 6
⚫ Ince et al. - Chapters 4, 7

BIT 413_ITPM_Lecture_estimation and cost mgt_wk8.pdf

  • 1.
    1 MIT811: IT Project Management Estimationand cost management (Week 8)
  • 2.
    2 Discussion Topics ⚫ Introductionto estimation ⚫ Uses of estimates ⚫ Estimation methods ⚫ Estimation process ⚫ Estimating size with LOC ⚫ Estimation size, time and cost with Function- points
  • 3.
    3 Introduction to estimation ⚫Estimation is the ⚫ Process of knowing how much effort, cost, resources and time the project will require to complete ⚫ Following types of estimation are most common: ⚫ Size estimation ⚫ Effort estimation ⚫ Cost estimation ⚫ Resource estimation ⚫ Project duration estimation
  • 4.
    4 Uses of estimates ⚫Decision-making ⚫ To evaluate project portfolios (collection of various project reports) ⚫ To select proposed projects for implementation ⚫ To quote charges to clients for projects ⚫ To prioritize schedules ⚫ Project Administration ⚫ To prepare project timelines ⚫ To manage project team better ⚫ To control and evaluate project progress ⚫ To review project success ⚫ To evaluate project developers
  • 5.
    5 Estimation methods ⚫ Price-to-Win ⚫Analogy ⚫ Expert Judgment ⚫ Top-Down ⚫ Bottom-Up ⚫ Algorithmic Models
  • 6.
    6 Price-to-Win ⚫ Determine yourestimate based on what you think is required to win the work contract ⚫ More common in situations where several groups are asked to estimate the work ⚫ One group is then chosen and contracted as the winner to perform the work ⚫ Although it makes business sense to use, - this method should be supported by other forms of estimation to avoid errors
  • 7.
    7 Analogy ⚫ Compare withother previous projects which have certain similarities ⚫ Requires use of historical database of original plans and actual results of completed projects ⚫ Analogy estimating is only as good as your ability to find a matching set of circumstances ⚫ Useful when it provides support to other estimates
  • 8.
    8 Expert judgment ⚫ Anumber of people participate to make informed estimates about schedule and effort ⚫ Exercise iterated until the estimates converge to a result ⚫ Very common in software development ⚫ Often used as a substitute for other estimating methods ⚫ Only as good as the people involved
  • 9.
    9 Top-Down ⚫ Focus onoverall system and identifies major activities ⚫ Resource based ⚫ Estimate the size of the team ⚫ Identify resource types or skills needed for each activity ⚫ Add it all up to determine cost ⚫ Create a schedule to fit ⚫ Estimate one component like Requirements and use COCOMO to extrapolate ⚫ Used to get rough early estimate 1. Define the work 2. Select the team 3. Estimate the work 60 15 25 30 30 100 40
  • 10.
    10 Bottom-Up ⚫ Task-based, usesthe WBS- ⚫ Estimate size, effort, cost, and schedule for each activity ⚫ Integrate activities into bigger subsystems and determine their revised estimates ⚫ Finally determine the estimates for the entire system ⚫ Used to get detailed planning estimates ⚫ Requires tools support
  • 11.
    11 Algorithmic Models ⚫ Mathematicalformulas are used with variables that require knowledge of: ⚫ Business requirements ⚫ Development environments / instances ⚫ People’s experience ⚫ Moves the estimator from a position of subjectivity to objectivity ⚫ Examples: ⚫ Function Point ⚫ Feature Point ⚫ Attributes based ⚫ COCOMO (Constructive cost model)
  • 12.
    12 Strengths and Weaknessesof Various Methods Method Strengths Weaknesses Price to Win Often gets the contract Generally produces long overruns Analogy Based on representative experience Representativeness of experience Expert Judgment Assessment based on experience No better than participants biases, incomplete recall Top-Down System level focus, Efficient Less detailed basis Less stable Bottom-Up More detailed basis More stable May overlook system level costs Requires more effort Algorithmic Repeatable, Analyzable formula Efficient and objective Subjective inputs Calibrated to past, not future
  • 13.
    13 Combining the methodsto increase efficiency ⚫ A top down estimate using the judgment of more than one expert, using analogy estimation where a comparable previous project is available ⚫ Bottom-up estimation using WBS and Expert Judgment ⚫ Compare bottom-up estimates with an Algorithmic method like COCOMO
  • 14.
    14 Estimation process ⚫ Estimationtakes place in following manner 1. Estimate size 2. From the size estimate, determine the effort needed. 3. From the effort estimate, determine project cost and duration required
  • 15.
  • 16.
    16 Size estimation ⚫ Sizeestimation is needed in order to estimate all other estimates ⚫ This is because all other estimates are a function of size ⚫ Size of software can be estimated using ⚫ Lines of code (LOC) ⚫ Function points etc.
  • 17.
    17 Estimating size withLOC ⚫ Simplest and most widely used metric. ⚫ Simply count executable lines ⚫ Comments and blank lines should not be counted ⚫ In the example below, ⚫ LOC = 14 – 2 blank lines - 2 comment lines = 10
  • 18.
    18 Example: Java class 1public class FactCalc 2 { 3 4 //main method 5 public static void main(String[] args) 6 { 7 int fact=1; 8 9 //compute factorial 10 for(int num=1;num<=8;num++) 11 fact = fact*num; 12 System.out.println("8! = "+fact); 13 } 14 }
  • 19.
    19 Disadvantages of LOC ⚫Size can vary with programmer coding style. ⚫ Focuses on coding activity alone. ⚫ Correlates poorly with quality and efficiency of code. ⚫ Penalizes higher level programming languages that employ code reuse, etc. ⚫ Measures lexical/textual complexity only - does not address the issues of structural or logical complexity. ⚫ Difficult to estimate LOC from problem description
  • 20.
    20 Other measures forestimating size ⚫ Number of functions or methods ⚫ Count the number of functions or methods in a system ⚫ Number of files ⚫ Count the number of separate physical files as stored in secondary media ⚫ Number of classes (and/or number of packages) ⚫ Count the number of classes in system ⚫ Count the number of packages in system ⚫ May combine both classes and packages since classes point to physical size while packages point to logical size
  • 21.
    21 Other measures forestimating size – cont’d ⚫ Number of objects ⚫ You can count the number of objects that will be created by the system at run time ⚫ Difficult to estimate for event-based system which rely on dynamic binding ⚫ Number of method calls ⚫ Count the number of incoming calls to a class (called fan- in) and the number of outgoing calls from the class (called fan-out) ⚫ Space occupied by files in storage media ⚫ Measure memory space e.g. in KB, MB, GB etc.
  • 22.
    22 Function-points ⚫ It isdesigned to estimate time and the cost of developing new software applications and maintaining existing software applications. ⚫ It is also useful in comparing and highlighting opportunities for productivity improvements in software development. ⚫ It was developed by A.J. Albrecht of the IBM Corporation in the early 1980s ⚫ Can be used to estimate size in place of LOC ⚫ Can also be used as a basis to make other types of estimates.
  • 23.
    23 Estimating size, timeand cost with Function-points ⚫ External inputs ⚫ Input files, forms, screens ⚫ External outputs ⚫ Output files, printouts, reports ⚫ External inquiries ⚫ Prompts, interrupts ⚫ External interfaces ⚫ IO routines, libraries ⚫ Internal files ⚫ Logically related data or control information
  • 24.
  • 25.
    25 Function-point steps ⚫ Determinethe FPs ⚫ Estimate the complexity of each FP ⚫ LOW, MED, HIGH ⚫ Assign complexity weights, e.g. External Input: L=3, M=4, H=6 ⚫ Multiply each FP by its weight to get “unadjusted function point” ⚫ Add them to determine the total UFP ⚫ Add “value adjustment factors” (0-5) for “total degree of influence” (TDI) ⚫ e.g. Data communication and Distributed functions ⚫ Incorporate “Technical complexity factor” (TCF) ⚫ TCF = TDI * 0.01 + 0.65 ⚫ FPs = UFPs * TCF
  • 26.
    26 Function-point steps –cont’d Function-points are counted and then multiplied by their degree of complexity show below: Simple Average Complex Inputs 2 4 6 Outputs 3 5 7 Files 5 10 15 Inquires 2 4 6 Interfaces 4 7 10
  • 27.
    27 Example inputs 3 simple X2 = 6 4 average X 4 = 16 1 complex X 6 = 6 outputs 6 average X 5 = 30 2 complex X 7 = 14 files 5 complex X 15 = 75 inquiries 8 average X 4 = 32 interfaces 3 average X 7 = 21 4 complex X 10 = 40 Unadjusted function points (UFP) = 240
  • 28.
    28 ⚫ In additionto these individually weighted function points, there are factors that affect the project and/or system as a whole. ⚫ Each of the factors is ranked from “0”- no influence to “5”- essential. ⚫ The following are some examples of these factors: ⚫ Is high performance critical? ⚫ Is the internal processing complex? ⚫ Is the system to be used in multiple sites and/or by multiple organizations? ⚫ Is the code designed to be reusable? ⚫ Is the processing to be distributed?
  • 29.
    29 Continuing our example. . . Complex internal processing = 3 Code to be reusable = 2 High performance = 4 Multiple sites = 3 Distributed processing = 5 Project adjustment factor = 17 Adjustment calculation: Adjusted FP = Unadjusted FP X [0.65 + (adjustment factor X 0.01)] = 240 X [0.65 + ( 17 X 0.01)] = 240 X [0.82] = 197 Adjusted function points
  • 30.
    30 Applying FPs tomake estimates But how long will the project take and how much will it cost? ⚫ Based on historical data and experience, programmers in this example on average take 18 function points per month. Thus . . . 197 FP divided by 18 = 11 man-months ⚫ If the average programmer is paid $5,200 per month (including benefits), then the [labor] cost of the project will be . . . 11 man-months X $5,200 = $57,200
  • 31.
    31 Advantage of Function-points ⚫Because function point analysis is language- independent, it can be used to identify the productivity benefits of - ⚫ One programming language over another ⚫ One development platform over another ⚫ One development methodology over another ⚫ One programming department over another ⚫ Before-and-after gains in investing in programmer training
  • 32.
    32 Disadvantages of Function- points ⚫Function point counts are affected by project size ⚫ Difficult to apply to massively distributed systems or to systems with very complex internal processing ⚫ Difficult to define logical files from physical files ⚫ The validity of the weights that Albrecht established, and the consistency of their application – has been challenged by other researchers ⚫ Different companies will calculate function points slightly different, making inter-company comparisons questionable
  • 33.
    33 Alternatives to Function-points ⚫Feature points ⚫ Perform a Function-point analysis ⚫ Then count of the number of algorithms ⚫ Use-case points ⚫ Similar to FP but based on use-cases ⚫ Use-case is a user-initiated set of actions ⚫ Very useful at requirements stage i.e. before system design is done
  • 34.
    34 Readings ⚫ Kathy Schwalbe- Chapters 6 ⚫ Ince et al. - Chapters 4, 7