See also: [CompatibleSuiteUpgrade]
A single software gets updated and breaks other related programs, third-party programs, and internal programs that properly use its exposed interface/contracts.
Some IncompatibleSuiteUpgrade issues are:
- Changing the documented interfaces to the upgraded software piece (ie: instead of func(x,y) it is now func(x,z,y).)
- Exposing undocumented interfaces. Such interfaces will be misunderstood.
- Changing the pre-conditions or post-conditions of the contract in such a way as to invalidate some or all of the original contract.
I welcome anyone who wants to make a formal Pattern or
AntiPattern/
DarkPattern out of this to do so. --
WyattMatthews
See also: [CompatibleSuiteUpgrade]