1. A computing device comprising: a processor; and persistent storage memory in communication with said processor storing processor readable instructions for directing said device to schedule a plurality of work orders, each work order of said plurality being defined by a plurality of operations to be scheduled at a plurality of work centers, each work center having a group of machines, each work center for performing an operation, the scheduling comprising, upon receiving a shop model indication comprising a job shop model and receiving an indication of a scheduling methodology comprising one of a forward scheduling methodology and a backward scheduling methodology: (a) classifying each of said work orders as a candidate for scheduling at one of said work centers, said classifying resulting in one or more candidate work orders; (b) assigning a priority to each of said candidate work orders based on a set of job prioritization rules; (c) selecting a highest priority candidate work order having a priority that is at least as high as any priority assigned to any other candidate work order; and (d) attempting to schedule an operation of said highest priority candidate work order at a machine of a work center at which said highest priority work order is a candidate based on a set of machine selection rules, said attempting occurring after a successful previous scheduling of another operation of said highest priority candidate work order followed by a successful scheduling of an operation of different one of said work orders; and (e) upon a failure of said attempting to schedule said operation, canceling the previously scheduled operation of said highest priority candidate work order and refraining from further attempting to schedule any other operation of said highest priority candidate work order.