Software Project Management
1
Chapter Four
Software Project Scheduling
2
Project Management Processes
(Initiation)
Project Management Plan
Initiation Scope WBS
(definition)
Project Charter
ject Scope
Pro
ent
Statem
Cost Time Human Resources
(estimates, …) (activity diagrams, …) (RACI matrix, …)
• Also to consider: Quality, Risk, Communication, Procurement,
Integration (PMBOK® knowledge areas)
3
Introduction
A “Project” is a set of activities which ends with specific
accomplishment and which has
» Non-routine tasks,
» Distinct start/finish dates, and
» Resource constraints (time/money/people/equipment).
A project is composed of a number of related activities that
are directed to the accomplishment of a desired objective.
A project starts when at least one of its activities is ready to
start.
A project is completed when all of its activities have been
completed.
4
Cont’d
An activity
» Must have a clear start and a clear stop
» Must have a duration that can be forecasted
» May require the completion of other activities before it
begins
» Should have some ‘deliverables’ for ease of monitoring
Scheduling: How long will it take to finish them
(activities)?
5
Cont’d
Root Causes for Late Software
» Unrealistic deadline established outside the team
» Changing customer requirements not reflected in schedule changes
» Underestimating the resources required to complete the project
» Risks that were not considered when project began
» Technical difficulties that have not been predicted in advance
» Human difficulties that have not been predicted in advance
» Miscommunication among project staff resulting in delays
» Failure by project management to recognize project falling behind
schedule and failure to take corrective action to correct problems
6
Cont’d
How to Deal With Unrealistic Schedule Demands
» Perform a detailed project estimate for project effort and
duration using historical data.
» Use an incremental process model that will deliver critical
functionality imposed by deadline, but delay other requested
functionality.
» Meet with the customer and explain why the deadline is
unrealistic using your estimates based on prior team
performance.
» Offer an incremental development and delivery strategy as
an alternative to increasing resources or allowing the
schedule to slip beyond the deadline.
7
Cont’d
Software Project Scheduling Principles
» Compartmentalization - the product and process must be
decomposed into a manageable number of activities and tasks.
» Interdependency - tasks that can be completed in parallel
must be separated from those that must completed serially.
» Time allocation - every task has start and completion dates
that take the task interdependencies into account.
» Effort validation - project manager must ensure that on any
given day there are enough staff members assigned to
complete the tasks within the time estimated in the project
plan.
8
Cont’d
» Defined Responsibilities - every scheduled task needs
to be assigned to a specific team member
» Defined outcomes - every task in the schedule needs to
have a defined outcome (usually a work product or
deliverable).
» Defined milestones - a milestone is accomplished when
one or more work products from an engineering task have
passed quality review.
9
Project Scheduling Process
Split project into tasks and estimate time and resources
required to complete each.
» Identify the tasks that needs to be done
– Work breakdown structure (WBS)
» Identify dependencies between tasks
– Dependency Graph
» Estimate the duration for each task to be done
– Schedule
Tasks should not be too small or too large – they should last
on the order of weeks for projects lasting months.
10
Cont’d
Organize tasks as concurrent activities to make optimal use
of workforce.
Minimize task dependencies to avoid potential delays.
Dependent on project managers’ intuition and experience.
Review Progress
Identify Identify activity Estimate resources Allocate people Create project
activities dependencies for activities to activities charts
Software Activity charts
requirements and bar charts
11
Work Breakdown Structure (WBS)
A deliverables-oriented grouping of project elements
that organizes and defines the total work scope of
the project.
Each descending level represents an increasingly
detailed definition of the project work.
12
The Work Breakdown Structure
GOAL
Activity Activity Activity Level 1
Activity Activity Activity Level 2
Activity
Task #1 Task #2 Task #3 Task #4 … Task #n
13
Cont’d…Example
14
Cont’d
WBS contains a list of activities for a project derived from
» Previous experience
» Expert brainstorming
WBS helps to
» Identify the main activities
» Break each main activity down into sub-activities which can further be
broken down into lower level sub-activities
» An instrument for tracking costs and work performance.
» Provides a coordinating framework for the various parts of a project.
» Defines authority and responsibilities for the details of the project.
» Provides the capacity to sum or “roll up” the cost of each project
phase.
» Identifies “work packages”.
15
Work Package
Lowest level of WBS.
Should contain activities that are short in duration (1 or 2
weeks; 80 hour rule; and no longer than a reporting period).
Work package activities can be completed by an individual or
a small team.
All work packages should be similar in size or effort needed.
Provides input to scheduling and budget development.
16
Identifying Work Packages
Identify major project work deliverables/systems.
» Then the sub-deliverables necessary to accomplish the larger
deliverables are defined.
The process is repeated until the sub-deliverable detail is
small enough to be manageable and where one person is
responsible.
» This lowest deliverable usually consists of several work packages.
Work packages within a deliverable are grouped by type of
work: foundation, framing, finish; hardware, programming,
testing, etc.
Also referred to as cost accounts, work packages facilitate a
system for monitoring project progress by work completed,
cost and responsibility.
17
WBS Techniques
Decomposition participation includes:
» Project team
» Customers
» Subject matter experts
Major project deliverables identified
Codes assigned to each WBS component
» Level 0 - project itself
» Level 1 - major deliverables
» Level 2 - individual components of each deliverable
» Etc.
» Final level – work package
18
Cont’d
19
Approaches to Develop WBS
Phase based approach
Product based approach
Hybrid approach
20
Phase based approach
Advantage
» Activity list likely complete and non-overlapping
» WBS gives a structure that can be
– refined as the project proceeds
– used for determining dependencies among activities
Disadvantage
» May miss some activities related to final product
21
Cont’d…Example
22
Product based approach
Product Breakdown Structure (PBS)
» Shows how a system can be broken down into different products for
development
23
Hybrid Approach
A mix of the phase-based and product based
approaches (most commonly used)
The WBS consists of
» a list of the products of the project; and
» a list of phases for each product
24
Cont’d… Example
25
How do you develop a good WBS?
Top down approach:
» Start at the highest, top level activities and systematically develop
increasing levels of detail for all activities
Bottom up approach (“Brainstorming”):
» Generate all activities you can think of that will have to be done and
then group them into categories
Which one you use depends on
» how familiar you and your team are with the project,
» whether similar projects have successfully been performed in the past,
and
» how many new methods and technologies will be used.
26
Top Down WBS Development
Specify all activities for the entire project to be finished.
Determine all tasks to complete each activity.
If necessary, specify sub-activities required to complete each
task.
Continue in this way until you have adequately detailed your
project.
Approach is good if
» You (or your team) are familiar with the problem.
» You have successfully managed a similar project in the past.
» You are not introducing new methodologies or tools.
27
Brainstorming WBS Development
Brainstorming means you
» Don’t worry about overlap or level of detail
» Don’t discuss activity wordings or other details
» Don’t make any judgements
» Write everything down
On a single list, write any activities you think will have to be
performed.
Then study the list and group activities into a few major
categories with common characteristics.
Try to group activities into higher level activities
Consider each category you have created
» Use top-down WBS development to determine any additional activities
you may have overlooked.
28
Displaying WBS
Three different formats are usually used
Organization-chart format
» Effectively portrays an overview of your project
» Hierarchical relationships of participants, different activities and tasks
Outline format
» Sub-activities and tasks are indented
Bubble format
» The bubble in the center represents the project
» Lines from the center bubble lead to activities
» Lines from activities lead to tasks.
29
Cont’d
30
Cont’d
What is the best display format for WBS?
» Organization-chart format:
– Often good for a “bird view” (executive summaries,...)
– Less effective for displaying large numbers of activities
» Outline format:
– Easier to understand, if WBS contains many activities
» Bubble format:
– Effective for supporting brainstorming
– Not so good for displaying work breakdown structures to
audiences who are not familiar with the project.
» Mixed approach
– In large projects
31
Tips for Breaking Down the Project
Breakdown the work until you can do an estimate that is accurate
enough for your purposes.
» If you are pricing a project to submit a competitive bid then you
are likely to go down to the work package level.
Tasks should be limited as best as possible to one day or more to
complete.
Activities should have clearly defined start and end
» Avoid open-ended tasks like “research” or “market analysis.”
Accountability and control are important! Break the work down so
that one individual is clearly responsible for each unit.
32
Activity Networks and Bar Charts
Graphical notations are often used to illustrate project
schedules.
Activity charts (a.k.a. PERT - Program Evaluation and
Review Technique charts) show task dependencies, durations,
and the critical path.
Bar charts (a.k.a. GANTT charts) generally show resource
(e.g., people) assignments and calendar time.
33
Activity Network
The table below shows the tasks involved in a project, with
their durations and immediate predecessors:
Tasks Duration (hours) Immediate Predecessors
A 3 -
B 4 -
C 6 -
D 5 A
E 1 B
F 6 B
G 7 C, D, E
Draw an activity network for the project.
34
Cont’d
First draw a start node labelled 1.
Activities A, B and C do not depend on any other activity, so
they all begin at node 1.
35
Cont’d
Activity D depends on A, so add event node 2 at the end of A.
Then add activity D.
36
Cont’d
Activities E and F both depend on B, so add event node 3 at
the end of B.
Then add activities E and F.
37
Cont’d
Activity G depends on C, D and E, so all these three events
need to end at the same node.
This is easiest if you redraw the network so that C is between
A and B.
38
Cont’d
Now add node 4, with C, D and E leading into it.
Then add activity G.
39
Cont’d
A finish node is now needed.
Any activities not leading into a node must end at the finish
node.
40
Cont’d
The network is now complete.
41
Exercise
Draw an activity network for the following table:
Task Duration (days) Dependencies
T1 8
T2 15
T3 15 T1 (M1)
T4 10
T5 10 T2, T4 (M2)
T6 5 T1, T2 (M3)
T7 20 T1 (M1)
T8 25 T4 (M5)
T9 15 T3, T6 (M4)
T10 15 T5, T7 (M7)
T11 7 T9 (M6)
T12 10 T11 (M8) 42
PERT – Program Evaluation and
Review Technique
Developed by the US Navy for the planning and control of the
Polaris missile program
Developed for R&D projects where activity times are
generally uncertain
Primary objectives:
» Shortest possible time
» Coping with uncertain activity completion times, e.g.:
– For a particular activity
– The most likely completion time is 4 weeks but
– It could be anywhere between 3 weeks and 8 weeks
43
CPM – Critical Path Method
Primary objectives:
» Plan for the fastest completion of the project
» Identify activities whose delays is likely to affect the completion date for
the whole project
» Very useful for repetitive activities with well known completion time
Developed by Du Pont Chemical Company and published in
1958
» Can we decrease the completion time by spending more money
44
CPM Calculation
The forward pass
» calculate the earliest start dates of the activities
– to calculate the project completion date
The backward pass
» calculate the latest start dates for activities
– to identify the critical path from the graph
45
Critical Path and Events
Critical event: an event that has zero slack
Critical path: a path joining those critical events
Benefit of Critical Path Analysis:
» During planning stage
– Shortening the critical path will reduce the overall project
duration
» During management stage
– Pay more attention to those activities which fall in the critical
path
Float (slack) - amount of time that a task can be delayed without
causing a delay to:
» subsequent tasks (free float)
» project completion date (total float)
46
Activity Float
Time allowed for an activity to delay
Three different types:
» Total float (without affecting project completion)
= latest start date – earliest start date
» Free float (without affecting the next activity)
= earliest start date of next activity – latest end date
of previous activity
» Interfering float (= total float - free float)
47
Example - Network for House
Building Project
48
Critical Path
49
Mode of Configuration (Activity Identity Box)
50
Forward Pass
Start at the beginning of CPM/PERT network to determine
the earliest activity times
Earliest Start Time (ES)
» earliest time an activity can start
» ES = maximum EF of immediate predecessors
Earliest finish time (EF)
» earliest time an activity can finish
» earliest start time plus activity time
» EF= ES + t
51
Earliest Activity Start and Finish Times
52
Backward Pass
Determines latest activity times by starting at the end of
CPM/PERT network and working forward
Latest Start Time (LS)
» Latest time an activity can start without delaying critical path time
» LS= LF - t
Latest finish time (LF)
» latest time an activity can be completed without delaying critical path
time
» LS = minimum LS of immediate predecessors
53
Latest Activity Start and Finish Times
54
Activity Slack
Slack: amount of time an activity can be delayed without delaying the
project
activity slack = LS - ES = LF – EF
Critical activities: have zero slack and lie on a critical path. 55
GANTT Charts
Named after Henry Gantt (1861 - 1919) an American mathematical
engineer.
Graph or bar chart with a bar for each project activity that shows
passage of time
A Gantt chart is a type of bar chart that illustrates a project
schedule.
Gantt charts illustrate the start and finish dates of the work
elements (tasks) of a project.
Elements of a GANTT chart:
» Task names
» Start and finish dates of each tasks (graphically)
» Dependency relationships
» Task duration in an additional column
» Lag relationships (start-to-start, finish-to-start etc.)
» Name of the project worker responsible for the task or
» Rsource specifications
56
WBS and Gantt Chart Example
57
GANTT chart example
ID Activities Who is Time intervals
respo 1. 2. 3. 4. 5. 6. 7. 8.
nsible
?
1.
2.
3.
4.
5.
6.
7.
10.
11.
58
Benefits of the GANTT chart
Easy to read and comprehend
Easy to create
Identify the project network coupled with its schedule
baseline
Allow for updating and project control
Useful for resource planning
59
Limitations
Can become quite unwieldy for projects with too many
activities.
Projects are often too complex for a Gantt chart.
Gantt charts represent only a part of the project constraints.
The technique of creating a GANTT depends on the features
of the project.
60
GANTT chart example
Gantt charts can be used to show current schedule status using percent-
complete shadings, or colour lines and a vertical "TODAY" line.
Activities time
1.
2.
3.
4.
5.
6.
today 61
Exercises
Considering the WBS:
» How detailed should a project get?
» Should we include sub-activities?
– For example, should the coding task have sub-
tasks of
Write code
Review code
Test code
Release code to the CM system
– Should we have a test for each code module?
We don't even know what the software looks
like!
62
How do we schedule?
Identify “what” needs to be done
» Work Breakdown Structure (WBS)
Identify “how much” (the size)
» Size estimation techniques
Identify duration
» Effort estimation techniques
Identify the dependency between tasks
» Dependency graph, network diagram
» Gantt chart and PERT
Estimate total duration of the work to be done
» The actual schedule
» PERT and CPM 63