Today's puzzle: maybe the reason why our social, economic, political, medical problems seem so intractable is that all the low-hanging fruit has been picked by social, scientific and technological progress, at least in the most developed countries. Less developed countries still have headroom, and they can avoid some of our mistakes too, but the problems of the most developed countries are hitting against our genetically-given cognitive limitations as well as the limitations of our history-dependent social wiring. The problems that we face are complex and require complex, difficult to explain solutions, while non-solutions sound attractive in their simplicity unrestricted by reality.
Does successful software development have something to teach our other processes? We denigrate software development (how could those *** not see that buffer overflow vulnerability?), but it regularly creates complex working systems that interact successfully with 100s of millions of users day after day. Unit testing, code reviews, iterative development, extensive monitoring. Related processes often work in other areas of engineering, and in medicine (read the Checklist Manifesto). Yet, any of these fail all too often, for reasons that are not so different from the reasons that kill rational discourse in policy. It's just too easy to kill a proposed solution (too many pages!) with simplistic pseudo-solutions.