You are on page 1of 53

COM419

Object-Oriented Modelling

Project Management

Anne Hinds
Key Definitions
• A project is a planned undertaking of a series of
related activities to reach an objective that has a
beginning and an end.
• Project management is the process of planning and
controlling the development of a system within a
specified timeframe at a minimum cost with the right
functionality.
• A project manager has the primary responsibility for
managing the hundreds of tasks and roles that need
to be carefully coordinated.
Project Management
• Planning, organizing, and managing resources
to bring about the successful completion of
specific project goals and objectives
– Cost
– Schedule
– Performance
• Identify the size of the project, identify tasks
to be performed, staff the project, co-ordinate
project activities
Trade-offs
• Size

• Cost

• Time

Project Management involves assigning


projected values for each
IDENTIFYING PROJECT SIZE
Estimating Timeframe Based on Industry
Standards
Planning Analysis Design
Implementation

Industry
Standard
For ‘Typical’
Business 15% 20% 35%
30%
Applications

Time
Required
in Person 4 5.33 9.33 8
Months
• =Use
26.66
time spent on planning to predict time required for the entire project
• Person Month = 1 month of effort by 1 person
Timeframe Example
• Using the industry standards outlined
previously, calculate the time for a project that
spends 3 months in the planning phase
Timeframe Example
Estimating Timeframe Using
Function Point Approach
Estimate System Size
(function
(function points
points and
and lines
lines of
of code)
code)

Estimate Effort Required


(person-months)
(person-months)

Estimate Time Required


(months)
(months)
Function Point Approach
• Function Point
– Measure of project size based on the number and
complexity of inputs, outputs, queries, files and
program interfaces

– Developed by Allen Albrecht of IBM 1979


Function Point Approach-- Step One

Complexity
Description Low Medium High Total

Inputs __x 3 __x 4 __x 6 ____

Outputs __x 4 __x 5 __x 7 ____

Queries __x 3 __x 4 __x 6 ____

Files __x 7 __x 10 __x 15 ____

Program __x 5 __x 7 __x 10 ____


Interfaces

TOTAL UNADJUSTED FUNCTION POINTS ____


Function Point Approach
Step One Example

Complexity
Description Low Medium High Total

Inputs 3x3 2x4 1x6 23

Outputs 4x4 10 x 5 5x7 101

Queries 7x3 0x4 3x6 39

Files 0x7 15 x 10 0 x 15 150

Program 1x5 0x7 2 x 10 25


Interfaces

TOTAL UNADJUSTED FUNCTION POINTS (TUFP) 338


Function Point Approach
--Step Two
Scale of 1 to 5
Data Communications _____
Heavy Use Configuration _____
Transaction Rate _____
End-User efficiency _____
Complex Processing _____
Installation Ease _____
Multiple sites _____
Performance _____
Distributed functions _____
On-line data entry _____
On-line update _____
Reusability _____
Operational Ease _____
Extensibility _____

Processing Complexity (PC) _____


Function Point Approach
--Step Two Example
Scale of 1 to 5
Data Communications __3__
Heavy Use Configuration __0__
Transaction Rate __0__
End-User efficiency __0__
Complex Processing __0__
Installation Ease __0__
Multiple sites __0__
Performance __0__
Distributed functions __0__
On-line data entry __2__
On-line update __2__
Reusability __0__
Operational Ease __0__
Extensibility __0__

Processing Complexity (PC) __7__


Function Point Approach-- Step 3
Processing Complexity (From Step 2)
(PC): ________

Adjusted Processing Complexity


(APC) = 0.65 + (0.01 * ____ )

Total Adjusted Function Points


(TUFP -- From Step 1)

(TAFP): _____ * ____ =


Function Point Approach
-- Step 3 example

Processing Complexity (From Step 2)


(PC): ___7____

Adjusted Processing Complexity


(APC) = 0.65 + (0.01 * _ 7_ )

Total Adjusted Function Points


(TUFP -- From Step 1)

(TAFP): _338_ * 0.72 = 243.36


243.36
243
243
Function Point Approach
-- Step 3 Shortcut
• Project Managers choose to assign an APC
value from a range

– 0.65 very simple system


– 1.00 for ‘normal’ system
– 1.35 very complex system
Convert Function Points to
Lines of Code
Language LOC/Per Function Point
C 130
COBOL 110
JAVA 55
C++ 50
Turbo Pascal 50
Visual Basic 30
PowerBuilder 15
HTML 15
Packages 10-40
(e.g., Access, Excel)

Source: Capers Jones, Software Productivity Research


Function Point Approach –
Step Four Example
• 243 Function Points

• COBOL 110 LOC per FP


– 243 * 110 = 26,730 lines of code to create system

• Java 55 LOC per FP


– 243 * 55 = 13,365 lines of code to create system
Estimating Effort
• Function of size and production rate
• COCOMO model
– Boehm 1981
– Convert lines of code estimates into person-
months estimates
COCOMO Estimation Calculation
• Effort (in Person-Months)
– 1.4 * thousands-of-lines-of-code

• If LOC = 2000
– Effort = (1.4 * 2) = 2.8 Person Months
– 2.8 * 152 hours
– 425.6 hours of effort
COCOMO Estimation Calculation
-- Step Five Example
COBOL 110 LOC per FP
= 26,730 lines of code to create system

COCOMO /Effort
1.4 * 26.73
= 37.42 person-months
Estimating Schedule Time
• Rule of thumb for estimation

Schedule Time (months)

3.0 * person-months1/3
COCOMO Estimation Calculation
-- Step Six Example
37.42 person-months

3.0 * 37.42 1/3


= 10.02 months
COCOMO Estimation Calculation
-- Step Seven Example
Number of staff needed
= No of person-months / optimal schedule time

37.42 / 10.02
= 3.73 full time staff members
CREATING THE WORK PLAN
Developing Work Plans
• A work plan is a dynamic schedule that
records and keeps track of all tasks to be
accomplished over the course of the project
• Created after a project manager has a general
idea of the project’s size and rough schedule
• The work plan is usually the main item in a
project management software application
A Workplan Example
Task name: Perform economic feasibility
Start date: Jan 5, 2018
Completion date: Jan 19, 2018
Person assigned to the task: Mary Smith (project sponsor)
Deliverable(s): Cost-benefit analysis
Completion status: Complete
Priority: High
Resources needed: Spreadsheet software
Estimated time: 16 hours
Actual time: 14.5 hours
Identifying Tasks
• Methodology
– Using standard list of tasks

• Top-down approach
– Identify highest level tasks
– Break them into increasingly smaller units
Top Down Task
Identification

Phases with
Phases high level steps

Work Plan Deliverables Estimated Actual Assigned


hours hours To

*
*
*
*
Work Breakdown Structure
Gantt Chart
PERT Chart Example

T5, 2 F

C T4, 6

E D5, 0

T2, 3
T7, 1
G
T1, 4
A
B

T3, 2 T6, 2

D
PERT Chart Example

• Used to communicate task dependencies


• Allows easier visualization of tasks on a critical
path
Timeboxing
• Timeboxing: allocate a fixed time period,
called a time box, to each planned activity.
• Fixed deadline
• Reduced functionality, if necessary
• Fewer “finishing touches”

37
Timeboxing Steps
1. Set delivery date
– Deadline should not be impossible
– Should be set by development group
2. Prioritize features by importance
3. Build the system core
4. Postpone unfinished functionality
5. Deliver the system with core functionality
6. Repeat steps 3-5 to add refinements and enhancements
STAFFING THE PROJECT
Increasing Complexity with Larger Teams
Key Definitions
• The staffing plan describes the number and
kinds of people working on the project
• The project charter describes the project’s
objectives and rules
• A functional lead manages a group of analysts
• A technical lead oversees progress of
programmers and technical staff members
Project
Manager

Functional Technical
Lead Lead

Analyst Analyst Programmer Programmer


Staffing Attributes
• Staffing levels will change over a project’s
lifetime
• Adding staff may add more overhead than
additional labour
• Using teams of 8-10 reporting in a hierarchical
structure can reduce complexity
Motivation
• Use monetary rewards cautiously
• Use intrinsic rewards
– Recognition
– Achievement
– The work itself
– Responsibility
– Advancement
– Chance to learn new skills
Conflict Avoidance Strategies
• Clearly define roles and project plans
• Hold individuals accountable
• Project charter listing norms and groundrules
• Develop schedule commitments ahead of time
• Forecast other priorities and their possible
impact on the project
CONTROLLING AND DIRECTING THE PROJECT
CASE Tools

Initiation Analysis Design Implementation

Upper CASE Lower CASE

Integrated CASE (I-CASE)


CASE Components
Diagrams Screen
Designs

CASE Repository

Procedural Metadata
Logic
Standards
• Examples
– Formal rules for naming files
– Forms indicating goals reached
– Programming guidelines
Documentation
• Project binder
• Table of contents
• Continual updating
Managing Scope
• Scope creep -- a major cause of development
problems
– JAD and prototyping
– Formal change approval
– Charging for changes
Managing Risk
• Risk assessment
• Actions to reduce risk
• Revised assessment
Classic Mistakes
• Overly optimistic schedule
• Failing to monitor schedule
• Failing to update schedule
• Adding people to a late project
Summary
• Project management is critical to successful
development of new systems
• Project management involves planning,
controlling and reporting on time, labour, and
costs.
Expanding the Domain
• For more detail on project management, visit
the project management institute:
– www.pmi.org

You might also like