In project management, a dependency is a link amongst a project's terminal elements.

There are four kinds of dependencies with respect to ordering terminal elements (in order of decreasing frequency of use):

  1. Finish to start (FS)
    • A FS B = B doesn't start before A is finished
    • (Foundations dug) FS (Concrete poured)
  2. Finish to finish (FF)
    • A FF B = B doesn't finish before A is finished
    • (Entire book written) FF (Last chapter written)
  3. Start to finish (SF)
    • A SF B = B doesn't finish before A starts
    • (New shift started) SF (Previous shift finished)
  4. Start to start (SS).
    • A SS B = B doesn't start before A starts
    • (Project work started) SS (Project management activites started)

There are three kinds of depencies with respect to the reason for the existence of dependency:
  1. Causal (logical)
    • It is impossible to edit a text before it is wrtitten
    • It is illogical to pour concrete before you dig the foundations
  2. Resource constraints
    • It is logically possible to paint four walls in a room simultaneously but there is only one painter
  3. Discretionary
    • I want to paint the living room before paininting the dining room, although I could do it the other way round, too

Traditional critical path-derived schedules are based only on causal (logical) dependencies. The critical chain method necessitates taking into account resource constaint-derived dependencies as well.

See also:

In computer science, dependency is a state that one object uses a functionality of another object. This may cause changes on implementation of one object can affect that of another object. Information hiding is a way to eliminate dependency to limit influence of changes and improve moduality.

It also is common in talking about software package management. One software package, in order to work or to be fully functional, may depend on other software packages and thus must be installed also, and their specific versions must be known if backwards compatibility is broken between versions. The Apt package format, as well as some versions of the RPM package format.

See also Dependent area