Watch TV Cartoons
The growth in computer use and computer hardware capabilities has placed demands of increasing magnitude and complexity on computer software. Software development processes, along with attendant methodologies, which may have worked well in the past, often break down when applied to the development of todayís software. For example, studies show that every five years the sizes of software projects, as measured by Source Lines Of Code (SLOC), increase by an order of magnitude, and that the scaling of the development effort, demanded by the order-of-magnitude increases now require fundamental changes in the development process. 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. Advances in computer hardware capabilities are more than adequate to match the demands of users; however, software as it is developed using prevailing processes and methodologies is not. The challenge is finding software development processes with attendant methodologies and technologies that meet user demands and that improve software quality and productivity.