1. A method of developing an executable software program 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; selecting a plurality of the segments from the library; connecting the selected segments; and displaying graphical representations of the selected segments, wherein the graphical representations convey the statuses of the selected segments.