Instability metric
Also known as Instability metric, Instability metric in software engineering
Definition
A software architecture measure based on a component’s outgoing dependencies compared with its incoming dependencies.
What it means
The instability metric is commonly expressed as outgoing coupling divided by total incoming and outgoing coupling. Values near one indicate more outward than inward dependency, while values near zero indicate that many other components depend on the component. The number is a directional signal about a component’s position, not a direct grade of design quality.
Example
A stable domain policy module has many consumers and few outward dependencies. A request adapter depends on several infrastructure services and has few consumers. Reviewing both together helps architects decide where abstractions or boundaries belong.
Limitations
The result changes with graph scope and counting rules. A component can be intentionally unstable at an application edge, and a stable component can still be poorly designed. Combine the metric with abstractness, change history, and runtime behavior.
How to use the signal
Weave can help examine whether highly changing unstable components are also producing review or rework friction. Calculate the value from a defined dependency graph and use Weave’s engineering context to avoid overinterpreting one number.
How this relates to Weave
Weave can help examine whether highly changing unstable components are also producing review or rework friction. Calculate the value from a defined dependency graph and use Weave’s engineering context to avoid overinterpreting one number.
Explore Engineering intelligence