Good constraints provide the freedom to fully explore a problem or solution space.
Follow along as we expore the nature and importance of constraints when creating and evaluating systems.
- Liberating Constraints
- Life Under Poor Constraints
Let the Kids Play
Teachers were to take their children to a local playground in which there was no fence during their normal recess hour. The kids were to play as normal. The same group was to be taken to a comparable playground in which there was a defined border designated by a fence.
The researchers in this study found that
with a boundary, in this case the fence, the children felt at ease to explore the space.
Individals often see constraints as frustrating obstacles. This study demonstrates that a certain class of constraints provides liberation.
Good system design requires adherence to liberating constraints. Such constraints can fall into various categories such as:
- Service Level Agreements (SLAs)
- Service Level Objectives (SLOs)
- Resource Availability
- Resource Cost
- Risk Tolerance
Simply defining constraints along such lines does not in and of itself ensure that the constraints will prove helpful. Poorly worded and unclear standards lead to inconsistent interpretations and implementations. Highly restrictive standards prevent innovation and hamper flexibility. Ambiguous SLAs provide little value at best and a mess of confusion at worst. Overly ambitious SLAs can lead to overengineering and large, unnecessary cost overruns. Basically both ends of the spectrum share a common problem: high cost with little benefit.
In contrast, liberating constraints act like the fence in the study referenced above. A liberating constraint lets the kids feel free to roam about the entire playground. In a similar fashion, good constraints provide the freedom to fully explore a problem or solution space.
Life Under Poor Constraints
Up next in this series we’ll explore the symptoms of Life Under Poor Constraints and begin asking important questions about how to define, evaluate and apply liberating constraints.
Be sure to Subscribe via RSS to keep up to date with the latest content!
Looking for more?