Title: Software Project Management SPM
1Software Project Management (SPM)
- Lecture 4
- - Software Effort Estimate
- - Risk Assessments
- - Cost Benefit Analysis
- Dr. Daniel Keret
2Reading Assignment
- Software Project Management, Bob Hughes and Mike
Cotterell, McGraw-Hill, 3rd Edition. - Chapters 2.8,3,5
- A Guide to the Project Management Body of
Knowledge, PMI Publications, 3rd Edition, 2004 - Chapter 11.1
3Software Effort Estimate
- Software Effort Estimation Techniques
- Function Points, Objects Points
- COnstructive COst MOdel (COCOMO)
- Expert Judgment
- On-Going Adjustments
- Strategic Planning, Feasibility Study, System
Specification - Project Planning, Programming Phases, Change
Control - Risk Assessments.
4Accurate Estimation is a Management Goal
- Difficulties in adjusting previous projects
actual effort. - Major Projects are unique in nature
- Changing Technology
- Lack of homogenous previous projects data
- Subjective nature of estimates ( overestimate
difficulties of small tasks, underestimate of
large tasks as the complexity is not linear to
project size) - The need for accurate estimation
- Parkinsons Law Work expands to fill the time
allocated. - Brooks Law The work effort will grow
disproportionately with the unneeded manpower
assigned to the project. - Weinbergs law of zero reliability If a system
does not have to be reliable it can meet any
other objective. - Basic data for software estimating
- Historic Data
- Measure of Work (SLOC Source line s of code,
Object, Function Points) - Complexity
5Estimation Techniques
- Bottom Up Adding the effort of each sub
activity. (Work Breakdown Structure is needed.
Good for later stages of the project) - Top Down Needs Parametric Models (effort
system size X productivity rate SLOC X lines of
code per day per programmer) - Expert Judgment Good for a Change in existing
system. - ( knowledge in the application area and the
development environment)
6Estimation Techniques (Cont.)
- Function Points FP (Evaluation of SLOC) Good
for Information Systems. - Counts
- external input types,
- external output types,
- logical internal record types,
- external interface types,
- external query types.
- Takes into account the complexity of each
parameter. (Defined by the FP users group) - Adjustment to programming language C 128
lines of code for 1 FP. - NEEDS adjustments to the development environment.
(subjective, difficult to define)
7Estimation Techniques (Cont.)
- Object Points Good for systems developed using
High Level Application Building Tools (based on
OBJECTS definition) - Screens Reports object points based on number
of tables accesses to generate the object - 3GL component always weights as difficult
- Adjustment according to relative complexity of
screens, reports and logic code (3GL). Reused
objects. Productivity based on the developers
experience and capabilities.
8Estimation Techniques (Cont.)
- COCOMO II A Parametric Model
- Person MonthA X Size(SLOC) exp (SF) X EM
- A constant based on project type (organic,
embedded, semi detached) - SF 0.91 0.01 X SUM( EDR) (Exponent Driver
Rating) - EDR is based on existing/lack of
- similar cases in the past, development
flexibility, architecture/risk resolution, team
disperse, process maturity) - EM EMa X EMb X . X EMk
- EMi Effort Multiplier(i) depends on the stage
of the project when the evaluation is executed
(Project Definition, Early Design, Post
Architecture) - Early stage samples schedule pressure,
personnel experience - Post architecture samples use of software tools,
product complexity
9Estimation Techniques (Cont.)
- Additional effort (time, cost) should allocate to
requirements and specifications - Additional effort should be added to cover
management activities, overheads, suppliers,
travels etc.) - Additional effort should be added to
implementation, training, cleanup activities. - Conversion of data is an integral part of the
project effort .
10 Risk Breakdown Structure (RBS) - Example
11Risk Assessments
- Identification and Ranking (importance,
likelihood) - Risk and NPV ( add risk factor to the discount
rate) - Risk Profile Analysis (change a risk factor by
/- 5 and recalculate the costs. Evaluate the
sensitivity to the change. Focus on highly
sensitive factors as possible risks)
12Identification and Ranking (importance,
likelihood)
- Basic Risk Matrix Rank High, Medium, Low and
Unlikely to the Importance and Likelihood of each
risk. - Deal (in the planning and decision stages) with
risks that are ranked high on both importance and
likelihood.
13Reused Code
- Can reduce cost, time and increase quality.
- But. It has its own risks. (poor documentation,
bad design, no testing procedures, etc.) - Codes types New, Modifies, Reused, Legacy
- Simple adjustments to lines of code effort
- New 100
- Modifies 60
- Reused 30
14Reused Code Example
15Cost Benefit Analysis
- Business Plan
- ROI Return On Investment
- Risk Analysis
- Alternative Approaches
- Decision Trees Evaluate alternatives by
multiply the probability of occurrence by
expected cost to evaluate expected value. - Build/Buy/Customize/Outsource/Enhance
- Cost Streams Definitions/Requirements, Solution
Selection, Licenses, Hardware, Real Estate,
Travel, Legal, Communication, Training,
Development, Testing, Users Participation,
Integration, Changes to Current
Systems/Workflows, Maintenance, Ongoing-Support,
Enhancements, Retirement.
16Decision Tree(Market Expansion Market Growth
Beyond the Capability of the Enhanced System to
handle the growth)
decision
enhance
Npv10000
Npv40000
enhance
buy
Probability 0.2
0.8
0.2
0.8
market expansion
no expansion
market expansion
no expansion
-50000
Npv -100000
75000
250000