The central ideas of direct manipulation are visibility of objects and actions of interest; rapid, reversible, incemental actions; and replacement of command-language syntax by direct manipulation of the object of interest.
The key to direct manipulation is to come up with an appropriate representation or model of reality. It is essential to think visually. Try to conjure up a sequence of images rather than thinking in terms of a sequnce of instructions.
All is not wonderful however. There are space problems. Pseudo code is often better than flow charts. Sometimes the visual represnetation may be misleading in that the analogy may be imperfect (dragging a disk to the trashcan to eject it for example may suggest that something more final will in fact happen).
The Semantic-syntactic object-action explanation of the effectiveness of direct manipulation is that the object is displayed so that actions are directly in the high level task domain. Thus the user does not need to grapple with the syntax or semantics of using the computer and can concentrate on the task semantics.
Icons are appropriate where the task is visual since the user is cognitivell tuned to pictures. In an application that is text oriented icons may be less effective.
Robots can be programmed by direct manipulation. Perhaps your interface can too. To do this you must meet the five challenges of UI programming: