Why Programs Fail
Some personal observations are made about why large software intensive programs often fail, or at least are over budget, don’t meet schedule, and under produce in terms of quality. The observations apply not only to software systems but to software-intensive physical systems. The observations start with failures in organization and responsibility allocation, and work down to failures attributed to processes and design methods. Observations are made about how development progress can be realistically measured. Some conclusions emerge as to how to avoid pitfalls, and what could be done to fix systemic problems. The methods for measuring technical progress suggest methods for determining program success or failure prognosis. One wants to at least keep from get blindsided unnecessarily when a program goes in the ditch.
|Over 30 years of aerospace experience with the development and analysis of software-intensive systems. Lockheed Martin Senior Fellow (Emeritus). Developed one of the first effective auto-code systems (“LEAP”), to produce software for an operational satellite; technical lead for the DARPA Simulation Based Design Program; lead for Joint Strike Fighter distributed product information management system; published over 20 papers on a variety of system, software, and information management topics; currently focusing research and development to integrate formal methods of logic with Model-Based System Engineering methodology, including the establishment of a formal semantics for SysML using OWL.|