You can look at software development as a system with inputs and outputs. As with any system, software development needs negative
feedback loops to keep it from oscillating. The negative feed-back loops traditionally used — separate testing groups, documentation,
lengthy release cycles, reviews — succeed at keeping certain aspects under control, but they tend to have only long term benefits.
What if we could find a set of negative feedback loops that kept software development under control, but that people wanted
to do, even under stress, and that contributed to productivity both short and long term?