Pressman CH 24 Software Project Scheduling
Pressman CH 24 Software Project Scheduling
Pressman CH 24 Software Project Scheduling
- Introduction - Project scheduling - Task network - Timeline chart - Earned value analysis
Introduction
An unrealistic deadline established by someone outside the software engineering group and forced on managers and practitioners within the group Changing customer requirements that are not reflected in schedule changes An honest underestimate of the amount of effort and /or the number of resources that will be required to do the job Predictable and/or unpredictable risks that were not considered when the project commenced Technical difficulties that could not have been foreseen in advance Human difficulties that could not have been foreseen in advance Miscommunication among project staff that results in delays A failure by project management to recognize that the project is falling behind schedule and a lack of action to correct the problem
3
1)
Offer the incremental development strategy as an alternative and offer some options
Increase the budget and bring on additional resources to try to finish sooner Remove many of the software functions and capabilities that were requested Dispense with reality and wish the project complete using the prescribed schedule; then point out that project history and your estimates show that this is unrealistic and will result in a disaster
Project Scheduling
General Practices
On large projects, hundreds of small tasks must occur to accomplish a larger goal
Some of these tasks lie outside the mainstream and may be completed without worry of impacting on the project completion date Other tasks lie on the critical path; if these tasks fall behind schedule, the completion date of the entire project is put into jeopardy
In the second view, assume that rough chronological bounds have been discussed but that the end-date is set by the software engineering organization
Effort is distributed to make best use of resources and an end-date is defined after careful analysis of the software
The first view is encountered far more often that the second
Interdependency
The interdependency of each compartmentalized activity, action, or task must be determined Some tasks must occur in sequence while others can occur in parallel Some actions or activities cannot commence until the work product produced by another is available
Time allocation
Each task to be scheduled must be allocated some number of work units In addition, each task must be assigned a start date and a completion date that are a function of the interdependencies Start and stop dates are also established based on whether work will be conducted on a full-time or part-time basis
(More on next slide) 9
Defined responsibilities
Every task that is scheduled should be assigned to a specific team member
Defined outcomes
Every task that is scheduled should have a defined outcome for software projects such as a work product or part of a work product Work products are often combined in deliverables
Defined milestones
Every task or group of tasks should be associated with a project milestone A milestone is accomplished when one or more work products has been reviewed for quality and has been approved
10
11
Also, delaying project delivery can reduce costs significantly as shown in the equation E = L3/(P3t4) and in the curve below
E = development effort in person-months L = source lines of code delivered P = productivity parameter (ranging from 2000 to 12000) t = project duration in calendar months
Software design normally needs 20 25% Coding should need only 15 - 20% based on the effort applied to software design Testing and subsequent debugging can account for 30 - 40%
Safety or security-related software requires more time for testing
13
Analysis
Design
Coding
Testing
40
20
40
14
Task Network
The task set should provide enough discipline to achieve high software quality
But it must not burden the project team with unnecessary work
16
Application enhancement
Occur when existing software undergoes major modifications to function, performance, or interfaces that are observable by the end user
Application maintenance
Correct, adapt, or extend existing software in ways that may not be immediately obvious to the end user
Reengineering projects
Undertaken with the intent of rebuilding an existing (legacy) system in whole or in part
17
18
19
Task B 3
Task F 2
Task G 3
Task H 5
Task K 3
Task L 10
Task B 3
Task K 3
Task L 10
Timeline Chart
23
Timeline chart:
Task # A B C D E F Task Name Establish increments Analyze Inc One Design Inc One Code Inc One Test Inc One Install Inc One 3 3 8 7 10 5
CLASS EXERCISE
4/1 4/8 4/15 4/22 4/29 5/6 5/13 5/20 5/27 6/3
Duration
Start 4/1
Finish
Pred. None A B C D E
G H I
J K L
7 5 4
6 2 2
A, B G H
E, I J F, K
24
Timeline chart:
Task # A B C D E F G H I J K L Task Name Establish increments Analyze Inc One Design Inc One Code Inc One Test Inc One Install Inc One Analyze Inc Two Design Inc Two Code Inc Two Test Inc Two Install Inc Two Close out project Duration 3 3 8 7 10 5 7 5 4 6 2 2
SOLUTION
4/1 4/8 4/15 4/22 4/29 5/6 5/13 5/20 5/27 6/3
Start 4/1 4/4 4/7 4/15 4/22 5/2 4/7 4/14 4/19 5/2 5/8 5/10
Finish 4/3 4/6 4/14 4/21 5/1 5/6 4/13 4/18 4/22 5/7 5/9 5/11
Pred. None A B C D E A, B G H E, I J F, K
25
Unload truck
Load truck
Where is the critical path and what tasks are on it? Given a firm start date, on what date will the project be completed? Given a firm stop date, when is the latest date that the project must start by?
Where is the critical path and what tasks are on it? Given a firm start date, on what date will the project be completed? Given a firm stop date, when is the latest date that the project must start by?
28
29
Quantitative approach
Use earned value analysis to assess progress quantitatively
The basic rule of software status reporting can be summarized in a single phrase: No surprises. Capers Jones
30
Because the object-oriented process is an iterative process, each of these milestones may be revisited as different increments are delivered to the customer
32
34
Sum up the BCWS values for all work tasks to derive the budget at completion (BAC) Compute the value for the budgeted cost of work performed (BCWP)
BCWP is the sum of the BCWS values for all work tasks that have actually been completed by a point of time on the project schedule
35
SV = BCWP BCWS
Schedule variance (SV) is an absolute indication of variance from the planned schedule
PSFC = BCWS/BAC
Percent scheduled for completion (PSFC) provides an indication of the percentage of work that should have been completed by time t
PC = BCWP/BAC
Percent complete (PC) provides a quantitative indication of the percent of work that has been completed at a given point in time t
CPI = BCWP/ACWP
A cost performance index (CPI) close to 1.0 provides a strong indication that the project is within its defined budget
CV = BCWP ACWP
The cost variance is an absolute indication of cost savings (against planned costs) or shortfall at a particular stage of a project
36