Patent ID: 8572552

Claim:
A system consisting of a computer processor, computer memory, and computer storage capable of executing computer usable program code which when executed implements a method for providing expert advice regarding the effective usage of software development methods or approaches, the software development methods or approaches consisting of a plurality of software development practices, the system comprising: a plurality of control system engineering designs configured to structure the composition of software development practices into a socio-technical system of practices representing a software development approach; and a plurality of dynamic systems models configured to model expected software development results and the effects of software development practice choices on socio-technical system dynamics; wherein a software development practice is defined as a tactic or technique performing a function within a software development project or endeavor directed towards achieving an effective overall outcome, the tactic or technique representing a logical aspect of the software development project or endeavor which when combined are tangled into a software development method representative of the socio-technical system, the socio-technical system being comprised of both human and technology components; wherein a control system engineering design is defined as a set of components which includes: a reference signal or setpoint representative of requirements or intent capture software development practices of the software development project or endeavor; a plant being controlled, the plant in the case of software development being a team of individuals performing work using tools to create software; an inner negative feedback loop among various pairs or combinations of individuals representing collaborative software development practices and representing a cascade control design configuration; a feedback sensor in the form of software testing, review and demonstration software development practices; a comparator implementing an outer negative feedback loop which compares output results from the feedback sensor and a time varying reference signal or setpoint, the comparison being achieved by comparison and evaluation software development practices; and a controller influencing a dynamic response of the plant using a difference evaluated by the comparator, an influence being applied to the plant in the form of proportional type software development practices, derivative type software development practices based on the rate of change of the comparator difference, or integral type software development practices based on a summation of past comparator difference.