business decision mapping chess collaborative software computational complexity theory computational sociology computer scientist computer simulation creative problem solving critical thinking decision making design douglas engelbart heuristic horst rittel mathematics millennium project morphological analysis natural environment natural resource planning problem solving process puzzle scenario planning soft systems methodology software design software development structured systems analysis and design method system dynamics systems analysis systems theory systems thinking technology terrorism tim van gelder twelve leverage points visual analytics