Law of Unintended Consequences
The Law of Unintended Consequences states that outcomes are not entirely predictable. Systems have complex interdependencies and human factors that can cause surprises.
Adding a new feature might unexpectedly degrade performance due to its interaction with an unrelated module. Simplifying a UI could lead to heavier backend load because users use the feature more often than expected.
It reminds engineers that systems are complex and our mental models are incomplete. When implementing changes, anticipate that “unknown unknowns” will crop up.
- No matter how well you plan, any significant change in a complex system can produce results you cannot anticipate.
- Consequences can be unexpected benefits (happy surprises), unexpected drawbacks (side effects that hinder), or perverse results (the action makes the original problem worse).
- In software engineering, this often manifests as a fix or new feature introducing bugs or performance issues elsewhere.
评论
?
参与讨论