To make sure that tasks are completed in a particular order, you can add a dependency relationship between them.

When you create or edit a task, just go to the dependency section:

From there, click the 'Select Tasks' button and you can choose the task or tasks that need to be done first. Just click the checkbox next to the task(s) that should be done first:

You can use the menu in the top left of this screen to choose tasks from a different project, too. 

When you've chosen the predecessor tasks, click 'Select These Tasks' and you'll see them listed in the task area:

You can click the link to change the dependency type from finish-start to finish-finish, click the 'x' on the right to remove any of the dependencies, or click the 'Select Tasks' button to add more.

When you save the task with the new dependencies, you'll see the an icon to show that the task is waiting on other tasks, with links to those tasks:

When you complete the predecessors, the task will be unblocked so you can complete it:


Re-scheduling tasks when a due date is edited:

Tasks can be automatically re-scheduled when a task Finish-started relationship is used or when a parent task's (contains sub-tasks) due edited.

When a due date on a predecessor task is edited  (i.e. a task which must finish before the successor can start)  or on a parent task, its possible to re-schedule all tasks in the series. Hovering onto the date range on the dependant task / parent task will display the option to "adjust the date of this task's...."

Dependencies in the Gantt chart:

It is also possible to create and edit dependencies in the Gantt chart view.