1. A method of automating a process, the method comprising the following steps: providing a user interface which graphically presents a plurality of icons to a user, wherein each icon represents an operation step having at least one input and at least one output; enabling the user to select one or more of said icons; enabling the user to form connections between the selected icons to represent data flow between the operation steps represented by the icons; and generating computer instructions for executing the operation steps corresponding to the selected icons, and in accordance with said connections, in such a way that each operation step can only be executed when data is present at all of its inputs, and cannot be executed when data is absent from any one of its inputs.