Task Dependencies

In project management, the completion of a task often requires the prior completion of other tasks. In order words, a task depends on other tasks.

A task's dependencies can be:

  • Sub-tasks: The task is broken down into smaller steps. When those smaller steps (sub-tasks) are completed, the task is completed. For example, preparing a meal may involve preparing several courses, and each of these courses may have multiple elements that need to be cooked or prepared. Once all sub-tasks are complete, the main task is complete too. 
  • Pre-requisites: A task requires some other task(s) to be completed before it can start. For example, we can't start baking a pie until it has been assembled. Once all pre-requisites are complete, the task can start.

Example dependency chart

An example task dependency chart. Red lines depict sub-tasks, blue lines depict pre-requisites.

Trello doesn't have task dependency management built in, but you can use Trello elements, such as checklists and link attachments, to represent and manage task dependencies.

What we want is a system in which:

  • Each task has a list of all its dependencies.
  • The tasks are linked so it's easy to jump to a dependency and back.
  • When the dependencies for a task are completed, it can be automatically moved to a new state.
Not every project requires managing pre-requisites.
You can start with sub-tasks only for a simpler workflow. Simply ignore the parts relating to pre-requisites below.


A System to Represent Task Dependencies In Trello

We recommend the following system:

  • Store each task in a Trello card.
  • Store a task's dependencies as items in a checklist on the card.
  • If your task has both pre-requisites and sub-tasks, separate them into two checklists.
  • Each item in a dependencies checklist is a link to a card on which the task depends.
  • If a card depends on this one, add a link back to the former in the attachments.
  • That is, if we have two cards, a dependent and a dependency, we add in a checklist on the dependent card a link to the dependency card, and we add a link in the attachments of the dependency card back to the dependent card. 

This is less complex than it reads. Let's see it in action on a Trello board:


Automating Dependency Links

Creating these links manually is tedious, but it can be done automatically with two Butler rules:

when an item is added to checklist "Sub-tasks" by anyone,
convert the item into a linked card
when an item is added to checklist "Pre-requisites" by anyone,
find a card titled "{checklistitemname}" in list "Project Tasks",
and link the card with the item


Starting the Project

We can create a button to help us move all sub-tasks of the current task to the "In Progress" list:

for each card linked from an incomplete item in checklist "Sub-tasks",
move the card to list "In Progress"
Note: the video show a slightly different version of the command from a prior version of the article.

Automating State Changes

We also want that when a task is completed, it updates the state of the card(s) that depend on it.

A first step is to check the corresponding checklist item(s):

when a card is moved to list "Completed" by anyone,
for each card linked in the attachments,
check item "{triggercardlink}",
and post comment "Dependency {triggercardlink} was completed on {date} by {username}."

You will notice that we also add a comment with some tracking information, but this is optional.

Then, we want that when all dependencies are fulfilled (i.e. the dependency checklist is complete), the state of the task changes automatically.

Sub-task completion means the task is completed:

when checklist "Sub-tasks" is completed,
move the card to list "Completed"
and post comment "All sub-tasks completed on {date}."

Pre-requisite completion means the task is ready to be worked on:

when checklist "Pre-requisites" is completed,
add the yellow "Ready" label to the card
and post comment "All pre-requisites completed on {date}."

Let's see it all together:


Updating Dates

Finally, a common need is to update the date of all sub-tasks when the date for a task moves. This can be either the due date, or a date in a custom field. For example, if the start date of a task is delayed by a week, we'd like to move the dates of all the sub-tasks by the same amount.

when the due date is moved in a card,
for each card linked from an item in checklist "Sub-tasks",
move the due date by the same amount of time


Variations

This example shows a basic system for managing task dependencies.

Trello and Butler's flexibility means you can create a custom system that evolves to adapt to the way you work and your organization's needs.

For example:

  • You can have a separate list for cards that are waiting for pre-requisites.
  • You may automatically assign tasks to users at certain stages.
  • You can have alerts or email notifications for when due dates are not being met.
  • You can store task durations in a custom field and set the due date automatically based on this duration from the moment the pre-requisites are completed (use Custom Field Variables to specify the amount by which to move the due date).
  • Etc...

Still need help? Contact Us Contact Us