-
Notifications
You must be signed in to change notification settings - Fork 320
Design Document: Backward Scheduling
This document provides a high-level specification of backward scheduling feature in GanttProject.
Currently GanttProject supports forward scheduling which assumes that project manager knows the project start date and builds a Gantt chart with the purpose to find out when the project will complete.
Backward scheduling is used when project manager has a deadline date by which the project must be completed and builds a Gantt chart with the purpose to find out the project start date. It is possible to emulate backward scheduling in GanttProject by using reversed Start-Finish dependencies instead of forward Finish-Start but it is pretty cumbersome process.
The goal of this project is to allow for backward scheduling without changing user habits in a flexible manner. We want to watch for deadlines being met and alert when they move offering to user a choice: whether to shift tasks backward or to change the deadline.
When user wants backward scheduling targeted at some deadline date, he creates a deadline task or milestone and draws a chain of tasks with regular Finish-Start dependencies which is ending with the deadline. The chain may and typically will move the deadline task beyond the deadline date. When GanttProject detects that deadline is not met, it shows firing alert indicator and opens alerts dialog on click. In the alert dialog user can take a decision about the unmet deadline. The decision is either move the deadline task and all predecessors backwards so that deadline was met or to set a new deadline date.
This feature appears in the following places in the user interface:
- New editable Deadline date field in the task properties, editable Deadline column in the task table.
- Visual indicator of firing alerts.
- Dialog showing the list of alerts and possible fixing actions.
Besides, deadline field should be exported to CSV/PDF/HTML and exported/imported to MS Project formats.