1. A method of developing an executable software program for controlling an object, the method comprising: providing a library of segments of software code with metadata, wherein the metadata of each segment identifies the segment and includes a status of the segment that includes whether the segment has been executed; selecting a plurality of the segments from the library; connecting the selected segments; executing a first selected segment; updating the metadata for the first selected segment to convey that the first selected segment has been executed; and displaying graphical representations of the selected segments, wherein the graphical representations convey the statuses of the selected segments, with the representation for the first selected segment conveying that the first selected segment has been executed.