- Forward


Project Scheduling
An Introduction


Prof. David Bernstein
James Madison University

Computer Science Department
bernstdh@jmu.edu

Print

Motivation
Back SMYC Forward
  • The Question:
    • How long will it take to complete a specific (design or implementation) project (or part of a project)?
  • A Naive Approach:
    • Add the effort estimates for each task
  • An Overview of the Shortcomings of the Naive Approach:
    • Units Matter
    • Task Details Matter
    • Task Dependencies Matter
    • Personnel Capabilities Matter
Units Matter
Back SMYC Forward
  • Effort (\(E\)):
    • Measured in person-days or person-months
  • Time (\(T\)):
    • Measured in days or months
  • The Implication:
    • Thinking only about units, \(T = E / N\), which means that \(N\) (i.e., the number of people working on the project) matters
Task Details Matter
Back SMYC Forward
  • A Property of Very Small Tasks:
    • They can only be worked on by one person at a time (hence, \(T = E / N\) only applies when \(N = 1\))
  • A Property of Many Tasks:
    • Large values of \(N\) can make things worse (the famous "Mythical Man-Month")
Task Dependencies Matter
Back SMYC Forward
  • Sequential Tasks:
    • Must be completed in order
  • Simultaneous/Parallel Tasks:
    • Can be completed at the same time
Personnel Capabilities Matter
Back SMYC Forward
  • An Observation:
    • Different members of the team have different knowledge, skills, and abilities
  • Implications:
    • Personnel may make it impossible to complete tasks in parallel
    • A "person" is not a homogeneous thing
An Example You Have Experience With
Back SMYC Forward
  • The Questions:
    • How long will it take me to complete a particular major?
  • The Givens:
    • The courses that must be completed
    • The time required to complete each course (e.g., a block, a semester, a year)
    • The number of times I will need to take each course
    • When the courses are offered
    • The prerequisites for each course
An Example You Have Experience With (cont.)
Back SMYC Forward
  • Another Question You Might Ask:
    • Which courses can't I afford to miss or fail?
  • Generalizing This Question:
    • Which tasks can/can't be delayed without delaying the completion of the project?
An Example
Back SMYC Forward
  • The Setting:
    • The design and implementation of a new computer game
  • Where we are in the Process:
    • The major tasks in the process have been identified at a low level of detail
    • The time required for each task has been estimated
    • The task dependencies have been identified
An Example (cont.)
Back SMYC Forward

The Time Required for Each Task

pert-example_times
An Example (cont.)
Back SMYC Forward

The Task Dependencies

pert-example_dependencies
Solving the Problem
Back SMYC Forward
  • Some Observations:
    • This problem is not unique to software projects
    • There are many ways to solve it (and variants of it)
  • Techniques:
    • Critical Path Methods
    • Gantt Charts
    • Program Evaluation and Review Technique
There's Always More to Learn
Back -