Page 65 -
P. 65

There are many reasons why one task may be dependent on another. The most common
                          is the causal relationship: the dependent task relies on a work product generated by the
                          predecessor. For example, the reviewers of a document cannot review it until it is com-
                          pleted, so a review task is dependent on the task that generates the document that will be
                          reviewed. One task may also depend on another because they share the same resource: if
                          there is only one programmer who has the knowledge to perform two different program-
                          ming tasks, he cannot do them both at the same time; one must be dependent on the
                          other. If there is no specific reason that one of those two programming tasks must be done
                          before the other, then the project manager and programmer have discretion to perform
                          them in either order.

                          The easiest way to maintain the resource allocations and dependencies is to use a project
                          management software package. Most project management software allows the user to
                          maintain a list of tasks and to associate resource information and predecessor information
                          with each task. (It is possible to do this by hand, but very few project managers create
                          schedules this way. Project management software is almost always used for this purpose.)

                          Create the Schedule
                          Once the resources and dependencies are assigned, the software will arrange the tasks to
                          reflect the dependencies. The software also allows the project manager to enter effort and
                          duration information for each task; with this information, it can calculate a final date and
                          build the schedule.
                          The most common form for the schedule to take is a Gantt chart. This is a type of bar chart
                          developed by Henry Laurence Gantt, an American engineer who was prominent during the
                          first two decades of the 20 th  century. Over the past century, Gantt charts have been used on
                          major civil engineering projects (including the Hoover Dam and the U.S. interstate highway
                          system), and it is now the standard way to document software project schedules.
                          Figure 4-2 shows an example of a Gantt chart. Each task is represented by a bar, and the
                          dependencies between tasks are represented by arrows. Each arrow either points to the start
                          or the end of the task, depending on the type of predecessor (see Figure 4-1). The black dia-
                          mond between tasks D and E is a milestone, or a task with no duration. Milestones are used to

                          show important events in the schedule. The black bar above tasks D and E is a summary task,
                          which shows that these tasks are two subtasks of the same parent task. Summary tasks can
                          contain other summary tasks as subtasks. For example, if the team used an extra Wideband
                          Delphi session to decompose a task in the original WBS into subtasks, the original task should
                          be shown as a summary task with the results of the second estimation session as its subtasks.

                          The Gantt chart in Figure 4-2 demonstrates the following predecessor types:
                          • Task A is a Finish-to-Start (FS) predecessor of Task B. Task B does not start until Task A
                            is complete. For example, code cannot be reviewed until it is written, so the program-
                            ming task would be a Finish-to-Start predecessor to the code review task.





                                                                                        PROJECT SCHEDULES  57
   60   61   62   63   64   65   66   67   68   69   70