Gantto allows you to easily add and remove dependencies between tasks. Dependencies are a very powerful tool, one that we believe is key in managing projects of medium to high complexity. However, dependencies often tend to confuse many of the users of various project management tools out there. One of our goals when designing Gantto was to simplify dependencies as much as possible while maintaining 100% of the capabilities that we believe you’ll need in 99% of your projects. We did this by:
- supporting only one type of dependency, instead of the 4 that are theoretically possible. The reality is that you’ll hardly ever need anything past the main dependency used in practice by most PMs, i.e. finish to start dependencies (see below for more on FS dependencies).
- focusing on optimizing the user experience of creating and removing dependencies between tasks.
Dependencies are the relationships among tasks which determine the order in which activities need to be performed. By far the most common of such relationships is the Finish to Start dependencies (or FS dependencies). When create a FS dependency between task A and task B you are forcing task B to start when task A ends. What does this mean, practically?
- if you move task A in time, task B will move to maintain the finish to start relationship, i.e. task B will always start when task A ends. The same happens if you move task B in time.
- if you’re managing a project whose goal is to build a boat and then sail it across the ocean, it is safe to assume that task B “sail across the ocean” cannot start before task A “build the boat” is complete. If task A is running 6 months late, task B will also run six months late. A dependency between task A and task B will let you model this simple scenario
- In practice dependencies become really useful when you’re managing projects that are simpler than two tasks since they allow you to understand the effect of one task slipping on other tasks, and ultimately on the overall end date for the project.
In our own experience as project managers we have followed two main approaches when building schedules, which we will call forward in time and backward in time. Here is what we mean with these terms:
- building a schedule “forward in time” typically happens when you know a project start date (e.g. the project needs to start in two weeks) but don’t have any major constraints on the project’s end date. In such case it is best to create a list of tasks, estimate their duration, set the first task’s start date to the given start date, create dependencies between tasks starting from earlier tasks and moving forward in time (thus the name), and evaluate how long the project will take to complete. While this approach may lead to more accurate schedules, not taking into account business constraints on the project’s end date may be unrealistic. Still. it is often good to have an estimate of what a project will really take as opposed to solely making a project fit in a given time frame.
- building a schedule “backward in time” typically happens when you know a project end date (e.g. the product needs to be launched at a certain show on a certain date) but have some flexibility on the start date, or on the team size, or simply you have no choice (which sadly tends to be the most common scenario ). In such a case it is best to create a list of tasks, estimate their duration, set the last task’s end date to the given end date, and then create dependencies from the last task moving back in time, and evaluate whether the start date is feasible (i.e. it’s still in the future) or not. Often the answer will be “no” which leads to various hard discussions.
Gantto supports both mouse based and keyboard / textual dependency creation. Using your mouse you can
- create dependencies between two tasks
- remove dependencies between two tasks
- create a new dependent task that comes after a given task
- create a new dependent task that comes before a given task
- create dependencies between a list of selected tasks
- remove dependencies between a list of selected tasks
You can create a dependency between task A and task B (i.e. make task’s B start after task A ends) by clicking on the dependency anchor to the right of task A, and dragging the dependency to task B. Note that the color of dependency link changes as you drag it on top of various tasks. A green link means that the dependency you’re trying to create is allowed. A gray link means that the dependency you’re trying to create is not allowed (i.e. it leads to a circular dependency, i.e. a situation where two tasks depend on each other, which is clearly impossible).
Alternatively, you can create a dependency between task A and task B by clicking on the dependency anchor to the left of task B, and dragging the dependency to task A. While both operations create a FS dependency between task A and task B, the former process maintains task A in place and moves task B backward in time, while the latter process maintains task B in place and moves task A forward in time. Using the right anchor of the start task maintains the start task in place and thus is ideal to support creating schedules forward in time (see section above for more on this matter). Using the left anchor of the end task maintains the end task in place and thus is ideal to support creating schedules backward in time (again, see section above for more on this matter).You can also delete any dependencies between more than two selected tasks by clicking on the Top Ribbon Task -> Disconnect button. This command eliminates any dependencies and maintains all tasks in their current position. Moreover, if you are not sure about which tasks are feasible predecessors for the specific task that you’re editing, you can hold down the CTRL key (Windows) or CMD key (Macs) and Gantto will use the color green to color code all rows of feasible cells. Clicking on one of such rows adds it to the predecessor list for the task you’re editing and recomputes a new list of feasible predecessors which are, again, displayed in green. No green cells anywhere means no feasible predecessors for the current task.
No related posts.