I. Introduction
Large software project failures have been a continual problem. Over the years, advances have been made to try to solve the problems of project failure. The advances in software engineering during the first 50 years of the IEEE Computer Society were described in an excellent article by software engineering pioneers C. V. Ramamoorthy and Wei-tek Tsai [1]. Even though advances have occurred, another software engineering pioneer Frederick Brooks pointed out that building software will always be hard [2]. He said that one of the inherent properties of modern software systems is their invisibility. From his experience he said that software in not only invisible, but it is unvisualizable. There is evidence in many cases that large software projects are hard to visualize. In 1996, Norm Brown, executive director of the Department of Defense Software Acquisition Best Practices Initiative, stated, “In many cases, the true nature and pervasive extent of underlying project problems remains invisible to the project management until it is too late.” [3]. Capers Jones recently pointed out large software systems are expensive and have one of the highest failure rates of any manufactured object in human history [4].