
A dependency is a relationship in which an object, action or capability requires another object, resource or condition to be available. A laptop may be capable of opening a cloud document, yet doing so also depends on power, a network connection, account permission and the remote service. If any one of these fails, the capability has not vanished, but its result cannot currently be realised.
Dependency is not the same as correlation. Two things may regularly appear together without either being required by the other. Nor is it identical to coupling: coupling asks how change travels between parts, while dependency first asks whether one part can work without another. Dependencies may also have direction. File synchronisation depends on the network, but the network does not thereby depend on that particular synchronisation.
The idea matters because a capability that appears to belong to one object is often supported by a chain of external conditions. Mapping that chain reveals where failure can spread and where a cache, alternative path or reduced mode may be needed. Eliminating every dependency is neither possible nor desirable. The practical task is to know what you depend on, and what remains possible when that dependency fails.
Discover more from Geoffrey Chen
Subscribe to get the latest posts sent to your email.