[Algorithms and heuristics] are very important in cybernetics, for in dealing with unthinkable systems it is normally impossible to give a full specification of a goal, and therefore impossible to prescribe an algorithm. But it is not usually too difficult to prescribe a class of goals, so that moving in some general description will leave you better off (by some definite criterion) than you were before. To think in terms of heuristics rather than algorithms is at once a way of coping with proliferating variety. Instead of trying to organize it in full detail, you organize it only somewhat; you then ride on the dynamics of the system in the direction you want to go.
These two techniques for organizing control in a system of proliferating variety are really rather dissimilar. The strange thing is that we tend to live our lives by heuristics, and to try and control them by algorithms. Our general endeavor is to survive, yet we specify in detail (‘catch the 8:45 train’, ‘ask for a raise’) how to get to this unspecified and unspecifiable goal. We certainly need these algorithms, in order to live coherently; but we also need heuristics — and we are rarely conscious of them. This is because our education is planned around detailed analysis: we do not (we learn) really understand things unless we can specify their infrastructure. The point came up before in the discussion of transfer functions, and now it comes up again in connection with goals. […] Birds evolved from reptiles, it seems. Did a representative body of lizards pass a resolution to learn to fly? If so, by what means could the lizards have organized their genetic variety to grow wings? One has only to say such things to recognize them as ridiculous — but the birds are flying this evening outside my window. This is because heuristics work while we are still sucking the pencil which would like to prescribe an algorithm.