As the sizes of software projects have increased, software development processes based on individual programmers have given way to processes based on small teams and, in turn, small teams have given way to larger teams and so on. Higher scaling of software development processes by merely increasing team sizes reaches limits on effective project management and resource availability. Today's users of software demand software applications of greater size and complexity than before. The challenge is finding software development processes with attendant methodologies and technologies that meet user demands and that improve software quality and productivity. The military, like the business world today, sees software providing the versatility and leverage to achieve performance goals.
Software is an increasingly important element in military systems of all kinds.
The capabilities of current and future military systems are dependent on the performance of the systems' software. As a system is upgraded or improved, much of the additional capability is achieved through new software. In fact, many of the functions essential to mission or organizational success are partly or completely accomplished through the use of software. Experience has revealed that many software development efforts falter because the management of these projects fall into several common traps. Lack of attention to user needs and constraints.