Advanced predecessors
Last update: February 11, 2025
- Topics:
- Work Management
CREATED FOR:
- Intermediate
- User
- Learn to sequence tasks
- Or you’re already comfortable using predecessors in your projects
In this video, you will learn about:
- Task dependencies
- Lag types
- Enforced predecessors
- Dependency loop errors
- Short cuts and best practices
Transcript
You should already know the basics of using predecessors. If not, please watch the Learn to Sequence Tasks video first. There is a link in the prerequisites section of this tutorial. In this video we’re going to talk about predecessor dependency types, lag types, and enforcing predecessors. These are not mentioned in the Learn to Sequence Tasks video, because they each have defaults which are sufficient most of the time. But we’re going to look at all of the options so you’ll know how to use them if you want to. And then we’ll look at some shortcuts and best practices. Your project timeline will be calculated for you when you use predecessors and have a task constraint that pays attention to predecessors. Like as soon as possible, as late as possible, earliest available time, latest available time, start no later than, start no earlier than, finish no later than, or finish no earlier than. Task constraints of fixed dates, must start on, or must finish on, override any predecessors of the task and plant the date that the other predecessors and successors will work around. By the way, a predecessor task is a task that must do something, like start or finish, before a successor task, also known as a dependent task, can start or finish. Administrators are based on the planned start dates and the planned completion dates and take into account the project schedule. By project schedule, we’re talking about the schedule assigned to the project. In our examples, we’re using this schedule. It stands for Monday through Friday, 9 to 5, with no holidays. It was set up by the system administrator and looks like this in setup. This shows when tasks can be scheduled for work. The next minute after Tuesday at 5 p.m. is Wednesday at 9 a.m. And the next minute after Friday at 5 p.m. is Monday at 9 a.m. In most schedules, holidays are blocked out, so no project work will be scheduled during those. But we left holidays out of this schedule to keep it simple. We’ll start with task dependencies. Using a predecessor means there is some dependency between your task and another task. The type of dependency is shown as a two-letter code in the Predecessor column along with the task number of the predecessor task. Finish start, or FS, is the most common dependency, and it’s the default. The code FS is often not shown, since it is the default. If you create a predecessor without specifying a dependency, you get Finish start. It means the predecessor task must finish before the dependent task can start. Notice the dates. Task 1 is planned to complete on Wednesday at 5 o’clock, so task 2 is planned to start on Thursday at 9 o’clock. Finish Finish, or FF, means the predecessor task must finish before the dependent task can finish, no matter when it starts. Notice that the task 3 planned completion date is the same as the task 2 planned completion date. Also notice the two-letter code of FF that I put in here. If you know the code, you can just type it in. But you can also add a predecessor by editing the task, which is easier to start with. We’ll edit task 4 to show the start start example. So we’ll edit task 4, click on Predecessors, and click on Add Predecessor. The parent project is the project we’re in by default. But if you wanted to create a cross-project predecessor, you would choose the other project here. The predecessor task in this case is task 3. The dependency is start start. The default is no lag time and no enforcement. We’ll take those defaults for now, and we’ll talk about these a little later. You can see the details about the predecessor here. Start start, zero days lag, not enforced. Start start means the predecessor task must start before the dependent task can start. But it can finish either before or after the dependent task. Notice that the planned start dates are the same, even though we want the predecessor to start first. How do we make sure that happens? We’ll discuss that question when we get to enforcement. Next we have start finish. We’ll type in 1SF. The predecessor task must start before the dependent task can finish. Notice that the finish date of task 5 is after the start date of task 1. You can start the dependent task before the predecessor starts, but you cannot finish it unless the predecessor has started. You might have noticed schedule start as another dependent type. This involves enforcement, so we’ll cover it a little later in the video. Now we’ll get into lag types. A lag is the amount of time that must pass after the planned completion date of the predecessor until the dependent task can start. So maybe your project is to build a house. You might want framing to start after the slab is poured, but you include a lag of a few days for the cement to dry first. When you add a lag, you need to specify the lag type and the number of days for the lag. Let’s make task 6 have a predecessor of 1 with a 5.5 day lag. We’ll enter it as 1 plus 5.5D for a day lag. The dependent task can start 5.5 days after the predecessor’s planned completion date, according to the schedule. This is workdays only. Weekends and holidays on the schedule are skipped. You can put in fractions of a day if you want. We can also do a negative lag. 1 minus 2 days. Notice the dates here as well. Now I’ll use C. C stands for calendar days. This includes weekends and holidays. P stands for percentage. This is the percent of the duration of the predecessor task in workdays. Task 1’s duration is 9 days or 72 hours, which means this lag will be 25% of that, or 18 hours. That’s why it’s planned to start at 11 o’clock on Monday morning. W is the day of week lag type. With it, you can state that you want a task to begin on a certain day of the week. Sunday is day 1, so our example here says we want this task to start on the Tuesday in the week task 1 is planned to finish. So what if task 1 was planned to finish on a Wednesday? Then the dependent task is planned to start on Tuesday the following week. In task 11, we’re saying we want it to start on a Tuesday in the week 3 days before the planned completion date of task 1. That would put the starting date one day before task 1 finishes. K is the lag type for day of week non-zero. This is the same as day of week, except in situations where the predecessor’s finish day is the same day of the week that you want the dependent task to start. Let’s go back to task 10 and change the day of the week to Wednesday, the same day as the finish day of task 1. Four for Wednesday. See how it still lets task 10 start in the same week, even though task 1 isn’t planned to finish until the end of the day. Now let’s do the same thing using day of week non-zero. When this lag type encounters a start date on the same day of the week as the predecessor’s finish day, it will offset to the next week when the plus sign is used, or the previous week when a minus sign is used. Now we’ll talk about enforcing predecessors. We’re going to delete this predecessor here, and then go back and add it manually. Mark it enforced. And you can see it’s showing enforced here. And you see this little E here. So now, if we tried to complete task 2 without having completed task 1 first, you’ll get this error message preventing you from changing the status before task 1 is completed. Of course, predecessors can’t literally be enforced, since workers can ignore them and do tasks out of order if they want to. But predecessors represent the desire of the project manager. Sometimes the predecessor sequence may not be critical, but in other cases it might be very important. Like if task 1 was to pour a slab for a house you were building, and task 2 was to begin framing. You’d probably have a lag between the completion date of task 1 and the start date of task 2, and it certainly would be important to honor that lag. In cases like this, the project manager may choose to enforce a predecessor as a means of reminding the worker that the predecessor relationship is really important this time. If workers are following the good practice of changing the status of a task from new to in progress when they start it, the system will give them a warning if they are about to start a task that has an enforced predecessor that has not yet been met. Now that you understand how enforcement works, we can start to talk about the scheduled start or SD dependency. This schedules a task as a finished start, but the actual enforcement type is a finished finish. To illustrate this, let’s see what happens with an enforced finished start. If I try to mark task 14 as started, or in progress, I get an error, because task 1 hasn’t been completed yet. Now if I change this to scheduled start, it still set the date as though it was a finished start. But when I go to say it’s in progress, it does allow me to do it. But just like a finished finish, it can’t finish before task 1 finishes. So if I try to complete it, I’ll get the error. Now let’s talk about dependency loop errors. A dependency loop is when you have two or more tasks that depend on each other to be completed. One common way to run into this is when you’re creating a subtask after you have your predecessors all set up. Like here, task 2 is a predecessor to task 3. If I try to make task 3 a subtask, I’ll get this error message. A parent task is automatically completed when all the subtasks are completed. So a subtask with a dependency on the parent task would create a dependency loop error. Now for some shortcuts and best practices. What if you want to delete a predecessor? It’s easy enough to do. Click on the little X and it deletes. What if you want to delete all your predecessors at once? You can’t do this with a bulk edit. But you do have an option to remove predecessors when you copy a project. So we’ll make a copy here of this project. And when we make a copy, we can uncheck predecessors. So we want everything to come over except the predecessors. And there you go. Here’s a handy way to chain tasks. Select multiple tasks and add the same predecessor type to all of them at once. Right click. Notice that scheduled start and enforcements are not available here. You can even chain tasks out of sequence. Do a shift click to select several tasks. Now we’ll chain them all and finish start. There is also an unchained option. This will work on any adjacent tasks that are chained. Whether they were chained manually or using this shortcut. Unchain. Notice that task 10 was not adjacent to its chain. Setting up a project with predecessors just the way you want them is a bit of work. It’s a good idea to create a template from your project in case you want to use it again. Or if you want to go back later on and see what they were originally. You can do this by selecting save as template. As another best practice, ask your system administrator to turn on email notifications for task completion to task dependence. So you’ll get notified when a predecessor of a task you’re assigned to is marked complete. You may not be able to start your task any earlier than originally planned, but at least you’ll be aware in case starting it earlier makes sense.
For more information about using predecessors see Use task predecessors.
For more information about task constraints see Understand and manage duration types and task constraints.
For more information about cross-project predecessors see Understand cross-project predecessors.
NOTE
This video is part of a playlist Project management advanced topics!
Previous pageUnderstand cross-project predecessors
Next pageUnderstand reporting elements
Workfront
- Workfront Tutorials
- Administration and Setup
- Organizational setup
- Manage deleted items
- Configure system defaults
- Layout templates
- What are layout templates?
- Find layout templates
- Customize terminology with layout templates
- Customize the Main Menu with layout templates
- Add and manage pins through a layout template
- Customize Home with layout templates
- Assign and manage access to layout templates
- Customize object areas with a layout template
- Customize project details with layout templates
- Customize project headers with layout templates
- Customize reporting lists with layout templates
- Email and In App Notifications
- Create and manage users
- Approval processes and milestone paths
- System performance and maintenance
- Project finances
- Custom Data
- Custom Forms
- Calculated expressions
- Get started with calculated fields and expressions
- Learn the data expression structure
- Understand Date & Time and Mathematical expressions
- Create ADDDAYS, ADDWEEKDAY, ADDMONTHS, ADDYEARS expressions
- Use the Calculation Editor
- Create DATEDIFF and WEEKDAYDIFF expressions
- Create a SUB, SUM, DIV, or PROD data expression
- Use the CONCAT expression in a calculated field
- Create LEFT/RIGHT expressions
- Use the ISBLANK and CONTAINS expressions
- Create an IF text expression
- Things to know about calculated field expressions
- Manage work
- Projects
- Understand basic project creation
- Navigate the project page
- Learn four ways to create a project
- Fill in the project details
- Get started planning a project
- Take a project live
- Get started managing a project
- Find projects
- Share a project
- Understand the project team
- Understand project communication
- View project information
- Track overall project progress
- Track work progress with project metrics
- Understand the Gantt view
- Understand the Board view
- Tasks
- Issues/requests
- Request queues
- Portfolios
- Approval processes and milestone paths
- Create and manage project templates
- Project timelines
- Close a project
- Project finances for users
- Intermediate projects
- Projects
- Reporting
- Basic reporting
- Understand reporting elements
- Understand reporting components
- Create a basic grouping
- Create a basic view
- Add basic conditional formatting to a view
- Create a basic filter
- Understand the new filter experience
- Create basic filter activities
- Create a simple report
- Create a task report
- Copy a report
- Create reports with charts
- Create a matrix report
- Create dashboards
- Send and share reports
- Understand report settings
- Intermediate reporting
- Create filters with user-based wildcards
- Create filters with date-based wildcards
- Create OR statements in filters
- Understand built-in project filters
- Understand built-in task filters
- Understand built-in issue filters
- Understand basic text mode for filters
- Understand basic text mode for views
- Understand basic text mode for groupings
- Create custom prompts
- Advanced reporting
- Calendar reports
- Basic reporting
- Manage resources
- Workfront Goals
- Workfront Planning
- Integrations
- Adobe Creative Cloud
- Adobe Experience Manager Assets Essentials
- G Suite
- Jira
- Microsoft Outlook
- Microsoft Teams
- Adobe Workfront for Microsoft Teams Overview
- Install Adobe Workfront for Microsoft Teams
- Access Adobe Workfront from Microsoft Teams
- Search for and share Adobe Workfront items in Microsoft Teams
- Create Adobe Workfront tasks from Microsoft Teams
- Submit Adobe Workfront requests from Microsoft Teams
- Manage Adobe Workfront notifications in Microsoft Teams
- Slack
- Fusion
- Welcome to Workfront Fusion
- Understand the basics
- Initial scenario design walkthrough
- Initial scenario design exercise
- Mapping panel and formula editor
- Mapping panel important notes
- Beyond basic mapping walkthrough
- Beyond basic mapping exercise
- Use filters
- Filters walkthrough
- Filters exercise
- Access previous versions walkthrough
- Access previous versions exercise
- Universal connectors and routing
- Universal connectors exercise overview
- Introduction to universal connectors walkthrough
- Introduction to universal connectors exercise
- Understand routers
- Routers walkthrough
- Routers exercise
- Common routing patterns
- Routing patterns walkthrough
- Routing patterns exercise
- Set-it and get-it
- Get/Set variables walkthrough
- Set/Get variables exercise
- Iteration and aggregation
- Execution history and scheduling
- Beyond basic modules
- Data structures and data stores
- Final functional bits and bobs
- Troubleshooting and error handling
- Workfront Fusion administration
- Design optimization and testing
- Workfront Proof
- Learn the benefits of proofing
- Understand the difference between a document and a proof
- Proofing viewers explained
- Administration and setup
- What is an automated workflow template
- Customize proof comment actions
- Customize proof decision options
- Understand email alerts and proof notifications
- Proof roles and email alerts
- Report on proofs
- Set default at risk proof settings
- Set up global proof settings
- Set default proof roles
- Set up proof account default settings
- Settings for proof users
- Upload proofs
- What is a proof version
- Who uploads the proof versions
- Convert a document to a proof
- View and compare proof versions
- Upload a proof version
- Manage proof versions
- Upload a proof of a video
- Upload a proof of a website
- Upload a proof with a basic workflow
- Upload a proof with an automated workflow
- Upload with a drag and drop
- Combine multiple files into a single proof
- Proof workflows
- Review and approve work
- Workfront DAM
- System setup
- Metadata and keywords
- Brand Connect customization
- Workfront DAM user: Contributor
- Understand Workfront DAM as a contributor
- Understand asset management as a contributor
- Understand finding assets as a contributor
- Understand lightboxes as a contributor
- Understand metadata and keyword best practices
- Work with assets as a contributor
- Send a file as a contributor
- Publish assets as a contributor
- Add a Workfront DAM link
- Brand Connect user
- Home
- Agile
- Best Practices
- Agile
- API Explorer
- Business case and portfolio optimizer
- Communication
- Custom forms
- Custom reports
- Dashboards
- Documents
- Filters, views, and groupings
- Job roles
- Layout templates
- Licenses and access levels
- Onboarding and adoption
- Organization units
- Portfolios and programs
- Preview sandbox
- Project, task, and issue preferences
- Project templates
- Proofing
- Request queue
- Resource Planner
- Resource pools
- Scenario Planner
- Schedules
- Statuses
- System performance and maintenance
- Text mode reporting
- Timeline planning and management
- Timesheets and logging time
- Utilization
- Workfront Goals
- Workload Balancer
- Workfront for executives
Get inspired by fellow certified Workfront users
Discover how two Workfront pros grew their skills and advanced their careers through Adobe certification—and how you can too.Read their stories