The idea was introduced by the architect Christopher Alexander[1] and has been adapted for various other disciplines, particularly software engineering.
This language gives a common terminology for discussing the situations designers are faced with.
[3] Christopher Alexander describes common design problems as arising from "conflicting forces"—such as the conflict between wanting a room to be sunny and wanting it not to overheat on summer afternoons.
Alexander, for example, suggests that enough windows should be included to direct light all around the room.
He considers this a good solution because he believes it increases the enjoyment of the room by its occupants.