Pressman - Software Project Scheduling
Pressman - Software Project Scheduling
Pressman - Software Project Scheduling
- Introduction
- Project scheduling
- Task network
- Timeline chart
3
Handling Unrealistic Deadlines
• Perform a detailed estimate using historical data from past projects;
determine the estimated effort and duration for the project
• Using an incremental model, develop a software engineering strategy
that will deliver critical functionality by the imposed deadline, but delay
other functionality until later; document the plan
• Meet with the customer and (using the detailed estimate) explain why
the imposed deadline is unrealistic
– Be certain to note that all estimates are based on performance on past
projects
– Also be certain to indicate the percent improvement that would be required
to achieve the deadline as it currently exists
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 4
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
• Project manager's objectives
– Define all project tasks
– Build an activity network that depicts their interdependencies
– Identify the tasks that are critical within the activity network
– Build a timeline depicting the planned and actual progress of each task
– Track task progress to ensure that delay is recognized "one day at a time"
– To do this, the schedule should allow progress to be monitored and the project to
be controlled
6
(More on next slide)
General Practices (continued)
• Software project scheduling distributes estimated effort across the
planned project duration by allocating the effort to specific tasks
• During early stages of project planning, a macroscopic schedule is
developed identifying all major process framework activities and the
product functions to which they apply
• Later, each task is refined into a detailed schedule where specific
software tasks are identified and scheduled
• Scheduling for projects can be viewed from two different perspectives
– In the first view, an end-date for release of a computer-based system has
already been established and fixed
• The software organization is constrained to distribute effort within the
prescribed time frame
– 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
7
Basic Principles for Project
Scheduling
• Compartmentalization
– The project must be compartmentalized into a number of manageable
activities, actions, and tasks; both the product and the process are
decomposed
• 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
8
(More on next slide)
Basic Principles for Project
Scheduling (continued)
• Effort validation
– Every project has a defined number of people on the team
– As time allocation occurs, the project manager must ensure that no more
than the allocated number of people have been scheduled at any given
time
• 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
9
Relationship Between
People and Effort
• Common management myth: If we fall behind schedule, we can always
add more programmers and catch up later in the project
– This practice actually has a disruptive effect and causes the schedule to
slip even further
– The added people must learn the system
– The people who teach them are the same people who were earlier doing
the work
– During teaching, no work is being accomplished
– Lines of communication (and the inherent delays) increase for each new
person added
10
Effort Applied vs. Delivery Time
• There is a nonlinear relationship between effort applied and delivery
time (Ref: Putnam-Norden-Rayleigh Curve)
– Effort increases rapidly as the delivery time is reduced
• 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
Effort
cost
Impossible
region
E theoretical
E optimal
t minimum t theoretical t optimal 11
Development time
40-20-40 Distribution of Effort
40 20 40
13
Task Network
Defining a Task Set
• A task set is the work breakdown structure for the project
• No single task set is appropriate for all projects and process models
– It varies depending on the project type and the degree of rigor (based on
influential factors) with which the team plans to work
• The task set should provide enough discipline to achieve high software
quality
– But it must not burden the project team with unnecessary work
15
Types of Software Projects
17
Purpose of a Task Network
• Also called an activity network
• It is a graphic representation of the task flow for a project
• It depicts task length, sequence, concurrency, and dependency
• Points out inter-task dependencies to help the manager ensure
continuous progress toward project completion
• The critical path
– A single path leading from start to finish in a task network
– It contains the sequence of tasks that must be completed on schedule if the
project as a whole is to be completed on schedule
– It also determines the minimum duration of the project
18
Example Task Network
Task N
2
Task A
3 Task C Task E Task I Task J
7 8 4 5
Task M
0
Task D
5 Task K Task L
3 10
Task N
2
Task A
3 Task C Task E Task I Task J
7 8 4 5
Task M
0
Task D
5 Task K Task L
3 10
Jan Feb Mar Apr May Jun Jul Aug Sep Oct
22
Timeline chart: CLASS EXERCISE
4/1 4/8 4/15 4/22 4/29 5/6 5/13 5/20 5/27 6/3
23
Timeline chart: SOLUTION
4/1 4/8 4/15 4/22 4/29 5/6 5/13 5/20 5/27 6/3
3. Determine
date to move
out or move in
12. Plan travel 13. Find lodging 14. Make
4. Determine
route and with space lodging
destination
overnight stops to park truck reservations
location
5. Lease or buy
home at
destination
1. Make 18. Drive truck
6. Decide on 19. Unload
decision 11. Milestone from origin
type/size of truck
to move to destination
rental truck
7. Arrange for
workers to
load truck
15. Reserve
16. Pick up 17. Load 20. Return
8. Arrange for rental truck
rental truck truck truck and
person to and supplies
drive truck/car supplies
9. Arrange for
workers to • Where is the critical path and what tasks are on it?
unload truck
• Given a firm start date, on what date will
10. Pack the project be completed?
household • Given a firm stop date, when is the latest date
goods that the project must start by?
Timeline Chart for Long Distance Move
27
Example Timeline Chart
28
Methods for Tracking the
Schedule
• Qualitative approaches
– Conduct periodic project status meetings in which each team member
reports progress and problems
– Evaluate the results of all reviews conducted throughout the software
engineering process
– Determine whether formal project milestones (i.e., diamonds) have been
accomplished by the scheduled date
– Compare actual start date to planned start date for each project task listed
in the timeline chart
– Meet informally with the software engineering team to obtain their
subjective assessment of progress to date and problems on the horizon
• Quantitative approach
– Use earned value analysis to assess progress quantitatively