All of the stable, “large scale”, natural, complex systems are created from small building blocks acting locally (e.g. the human body made of cells, an economy of people, or a star undergoing fusion).
There’s a temptation by (often well intentioned) designers, engineers, policy makers, etc to consider a desired outcome and take actions at a macro level to create that outcome. This rarely results in a sustainable, stable system.
If we instead start at the local level and build out from there we can create a more robust and organic system but we run into uncertainty at the macro level due to the principle of computational irreducibility [1].
Computational irreducibility is an example of Gödel’s incompleteness theorems in action which says that in any consistent formal system powerful enough to express arithmetic, there are true statements that can’t be proven within the system.
So it seems we either embrace uncertainty or we succumb to short term solutions.
1. 

Computational Irreducibility -- from Wolfram MathWorld
While many computations admit shortcuts that allow them to be performed more rapidly, others cannot be sped up. Computations that cannot be sped up...