In a project network, a dependency is a link amongst a project's terminal elements.
The A Guide to the Project Management Body of Knowledge (PMBOK Guide) does not define the term dependency, but refers for this term to a logical relationship, which in turn is defined as dependency between two activities, or between an activity and a milestone.
There are four standard types of dependencies:
Finish-to-start is considered a "natural dependency". The Practice Standard for Scheduling recommends, that "Typically , each predecessor activity would finish prior to the start of its successor activity (or activities)(known as finish-to-start (FS) relationship). Sometimes it is necessarily to overlap activities; an option may be selected to use start-to-start (SS), finish-to-finish (FF) or start-to-finish (SF) relationships....Whenever possible, the FS logical relationship should be used. If other types of relationships are used, they shall be used sparingly and with full understanding of how the relationships have been implemented in the scheduling software being used. Ideally, the sequence of all activities will be defined in such a way that the start of every activity has a logical relationship from a predecessor and the finish of every activity has a logical relationship to a successor".
SF is rarely used, and should generally be avoided. Microsoft recommends to use SF dependency for just-in-time scheduling. It can be easily shown however, that this would only work if resource levelling is not used, because resource levelling can delay a successor activity (an activity, which shall be finished just-in-time) in such a way, that it will finish later than the start of its logical predecessor activity, thus not fulfilling the just-in-time requirement.
There are three kinds of dependencies with respect to the reason for the existence of dependency:
Early critical path-derived schedules often reflected only on causal (logical) or discretionary (preferential) dependencies because the assumption was that resources would be available or could be made available. Since at least the mid-1980s, competent project managers and schedulers have recognized that schedules must be based on resource availability. The critical chain method necessitates taking into account resource constraint-derived dependencies as well.