We see people, machines and software systems as agents that communicate via a complex network of communication links. Problems, observations, or opportunities define challenges that stimulate these agents to act.Challenges that cannot be fully resolved by a single agent are propagated to other agents, along the links in the network. These agents contribute their own expertise to resolving the challenge. If necessary, they propagate the challenge further, until it is fully resolved. Thus, the skills of the different agents are pooled into a collective intelligence much greater than the intelligence of its individual members.The propagation of challenges across the global network is a complex process of self-organization. It is similar to the "spreading activation" that characterizes thinking in the human brain. This process will typically change the network by reinforcing useful links, while weakening less useful ones. Thus, the network learns and adapts to new challenges, becoming ever more intelligent.