Information Technology Project
Management
Information Technology Project
Management
Estimating Techniques -
Software Engineering Approaches
Lines of Code (LOC)
Function Points
COCOMO
Heuristics
Software engineering techniques focus on estimating the size of the system to be developed
Copyright 2012 John Wiley & Sons, Inc.
6-2
Determinants of Estimating the Largest Deliverable of the Project – The Application System
Function Point Analysis
Allan Albrecht, IBM – 1979
Synthetic metric
Independent of the Technology
IFPUG standards (www.ifpug.org)
5 Primary Elements
Inputs
Outputs
Inquiries
Logical Files
Interfaces
Allan Albrecht, IBM – 1979
Synthetic metric
Independent of the Technology
IFPUG standards (www.ifpug.org)
5 Primary Elements
Inputs
Outputs
Inquiries
Logical Files
Interfaces
Copyright 2012 John Wiley & Sons, Inc.
6-4
The Application Boundary for Function
Point Analysis
Complexity
Low Average High Total
Internal Logical Files
(ILF)
_3 x 7 = 21 _2 x 10 = 20 _1 x 15 = 15 56
External Interface Files (EIF)
__ x 5 = __ _2 x 7 = 14 __ x 10 = __ 14
External
Input (EI)External _3 x 3 = 9 _5 x 4 = 20 _4 x 6 = 24 53 Input (EI) _3 x 3 = 9 _5 x 4 = 20 _4 x 6 = 24 53
External
Output (EO) _4 x 4 = 16 _2 x 5 = 10 _1 x 7 = 7 33
External
Inquiry (EQ) _2 x 3 = 6 _5 x 4 = 20 _3 x 6 = 18 44
Total Unadjusted Function Points (UAF) 200
Copyright 2012 John Wiley & Sons, Inc.
6-6
General System Characteristic Degree of Influence
Data Communications 3
Distributed Data Processing 2
Performance 4
Heavily Used Configuration 3
Transaction Rate 3
On-line Data Entry 4
End User Efficiency 4
Online Update 3
Complex Processing 3
Reusability 2
Installation Ease 3
Operational Ease 3
Multiple Sites 1
Facilitate Change 2
Total Degrees of Influence 40
Value Adjustment Factor VAF = (TDI * 0.01) + .65 VAF = (40 * .01) + .65 = 1.05
Language Average Source LOC per Function Pont
Average Source LOC for a 210 FP Application
Access 38 7,980
Basic 107 22,470
C 128 26,880
C++ 53 11,130
COBOL 107 22,470
Delphi 29 6,090
Java 53 11,130
Machine Language
640 134,440
Visual Basic 5 29 6,090
Source: http://www.spr.com/library/0langtbl.htm
Copyright 2012 John Wiley & Sons, Inc.
6-8
COCOMO
COnstructive COst MOdel
Developed by Barry Boehm,
Has been extended to COCOMO II
http://sunset.usc.edu/csse/research/COCOMOII/cocomo _main.html
COnstructive COst MOdel
Developed by Barry Boehm,
Has been extended to COCOMO II
http://sunset.usc.edu/csse/research/COCOMOII/cocomo _main.html
COCOMO Models (Effort)
Organic – Routine
Person Months = 2.4 * KDSI1.05
Embedded – Challenging
Person Months = 3.6 * KDSI1.20
Semi-Detached – Middle
Person Months = 3.0 * KDSI1.12
Organic – Routine
Person Months = 2.4 * KDSI1.05
Embedded – Challenging
Person Months = 3.6 * KDSI1.20
Semi-Detached – Middle
Person Months = 3.0 * KDSI1.12
Copyright 2012 John Wiley & Sons, Inc.
6-10
COCOMO – Effort Example
Semi-Detached
10,600 Java LOC = 200 FP * 53 Person Months = 3.0 * KDSI1.12
= 3.0 * (10.6) 1.12
= 42.21
Semi-Detached
10,600 Java LOC = 200 FP * 53 Person Months = 3.0 * KDSI1.12
= 3.0 * (10.6) 1.12
= 42.21
COCOMO Models (Duration)
Organic
Duration = 2.5 * Effort0.38
Semi-Detached
Duration = 2.5 * Effort0.35
Embedded
Duration = 2.5 * Effort0.32
Organic
Duration = 2.5 * Effort0.38
Semi-Detached
Duration = 2.5 * Effort0.35
Embedded
Duration = 2.5 * Effort0.32
Copyright 2012 John Wiley & Sons, Inc.
6-12
COCOMO Duration Example
Duration = 2.5 * Effort0.35
= 2.5 *(42.21)0.35
= 9.26 months
People Required = Effort / Duration
= 42.21 / 9.26
= 4.55 Duration = 2.5 * Effort0.35
= 2.5 *(42.21)0.35
= 9.26 months
People Required = Effort / Duration
= 42.21 / 9.26
= 4.55
Heuristics (Rules of Thumb)
When scheduling a software task:
1/3 – Planning 1/6 – Coding
1/4 – Component test and early system test 1/4 – System test, all components in hand When scheduling a software task:
1/3 – Planning 1/6 – Coding
1/4 – Component test and early system test 1/4 – System test, all components in hand
Copyright 2012 John Wiley & Sons, Inc.
6-14
The seeds of major software disasters are usually
sown in the first three months of commencing the software project. Hasty scheduling, irrational commitments, unprofessional estimating techniques,
and carelessness of the project management function are the factors that tend to introduce terminal problems. Once a project blindly lurches forward toward an impossible
delivery date, the rest of the disaster will occur almost inevitably.
The seeds of major software disasters are usually
sown in the first three months of commencing the software project. Hasty scheduling, irrational commitments, unprofessional estimating techniques,
and carelessness of the project management function are the factors that tend to introduce terminal problems. Once a project blindly lurches forward toward an impossible
delivery date, the rest of the disaster will occur almost inevitably.
T. Capers Jones, 1988 Page 120
Brooks’ Law
Adding manpower to a late software project makes it later.
Adding manpower to a late software project makes it later.
Copyright 2012 John Wiley & Sons, Inc.
6-16
The Man Month
People People
Time versus number of workers
perfectly partitionable task – i.e., When a task that cannot be partitioned because of sequential constraints, the
Adding People
Increases the total effort necessary
The work & disruption of repartitioning
Training new people
Added intercommunication
Increases the total effort necessary
The work & disruption of repartitioning
Training new people
Added intercommunication
Copyright 2012 John Wiley & Sons, Inc.
6-18
What can cause inaccurate estimates?
Scope changes
Overlooked tasks
Poor developer-user communication
Poor understanding of project goals
Insufficient analysis
No (or poor) methodology
Changes in team
Red tape
Lack of project control
Not identifying or
understanding impact of risks
Scope changes
Overlooked tasks
Poor developer-user communication
Poor understanding of project goals
Insufficient analysis
No (or poor) methodology
Changes in team
Red tape
Lack of project control
Not identifying or
understanding impact of risks
Other Factors to Consider When Estimating
Rate at which requirements may change
Experience & capabilities of project team
Process or methods used in development
Specific activities to be performed
Programming languages or development tools to be used
Probable number of bugs or defects & removal methods
Environment or ergonomics of work space
Geographic separation of team across locations
Schedule pressure placed on the team
Rate at which requirements may change
Experience & capabilities of project team
Process or methods used in development
Specific activities to be performed
Programming languages or development tools to be used
Probable number of bugs or defects & removal methods
Environment or ergonomics of work space
Geographic separation of team across locations
Schedule pressure placed on the team
Copyright 2012 John Wiley & Sons, Inc.
6-20
How can estimates be improved?
Experience!
Lessons learned
Best Practices
Revision
Monitor
Focus on deliverables
Control
Experience!
Lessons learned
Best Practices
Revision
Monitor
Focus on deliverables
Control
Some Terminologies in Project Management
Organizational Process Assets
Plans, processes, policies procedures, and knowledge bases specific to and used by the performing organization
Throughout the project, the project team members may update and add to the organizational process assets as necessary
Organizational Process Assets
Plans, processes, policies procedures, and knowledge bases specific to and used by the performing organization
Throughout the project, the project team members may update and add to the organizational process assets as necessary
22
Corporate Knowledge Base
Organizational knowledge base for storing and retrieving information, includes:
Configuration management knowledge base containing the
versions and baselines of all performing organization standards, policies and procedures and any project documents
Historical information and lesson learned knowledge base
Financial information containing information such as labor hours, incurred costs, budgets, and any project cost overruns
Process measurement databases used to collect and make available measurement data on processes and products
Project files from previous projects
Organizational knowledge base for storing and retrieving information, includes:
Configuration management knowledge base containing the
versions and baselines of all performing organization standards, policies and procedures and any project documents
Historical information and lesson learned knowledge base
Financial information containing information such as labor hours, incurred costs, budgets, and any project cost overruns
Process measurement databases used to collect and make available measurement data on processes and products
Project files from previous projects
Enterprise Environmental Factors
Conditions, not under the control of project team, that influence, constrain, or direct the project
Organization culture, structure, and governance
Geographic distribution of facilities and resources
Government or industry standards
Infrastructure
Existing human resources
Personnel administration
Stakeholder risk tolerance
Political climate
Project management information system
Conditions, not under the control of project team, that influence, constrain, or direct the project
Organization culture, structure, and governance
Geographic distribution of facilities and resources
Government or industry standards
Infrastructure
Existing human resources
Personnel administration
Stakeholder risk tolerance
Political climate
Project management information system
24
Cost and Staffing Levels
Risk and Uncertainty and Cost of Changes
26
Predictive Life Cycle
Project scope, the time and cost to deliver that scope are determined as early in the project life cycle as practically possible
Example:
Iterative and Incremental Life Cycle
Project phases intentionally repeat one or more project activities as the project team’s understanding of the
product increases.
Iterations develop the product through a series of repeated cycles.
Increments successively add the functionality of the product
At the end of each of iteration, a deliverable of a set of deliverables will be completed.
Project phases intentionally repeat one or more project activities as the project team’s understanding of the
product increases.
Iterations develop the product through a series of repeated cycles.
Increments successively add the functionality of the product
At the end of each of iteration, a deliverable of a set of deliverables will be completed.
28
Adaptive Life Cycle (change driven or agile methods)
Intended to respond to high levels of change and ongoing stakeholder involvement.
Adaptive method are also iterative and incremental but differ in that iterations are very rapidly (with a duration of 2 or 4 weeks) and are fixed in time and cost.
Generally preferred when dealing with a rapidly changing environment, when requirement and scope are difficult to define in advance, and when it is possible to define small incremental improvements that will deliver value to
stakeholder.
Intended to respond to high levels of change and ongoing stakeholder involvement.
Adaptive method are also iterative and incremental but differ in that iterations are very rapidly (with a duration of 2 or 4 weeks) and are fixed in time and cost.
Generally preferred when dealing with a rapidly changing environment, when requirement and scope are difficult to define in advance, and when it is possible to define small incremental improvements that will deliver value to
stakeholder.
Project Integration Management
Processes and activities to identify, define, combine, unify, and coordinate the various processes and project
management activities.
Processes:
30
4.1 Develop Project Charter
32
4.2 Develop Project Management Plan
34
4.3 Direct and Manage Project Work
36
4.4 Monitor and Control Project Work
38
4.5 Perform Integrated Change Control
40
4.6 Close Project or Phase
42