next up previous
Next: Techniques used by Real Up: Setting the stage Previous: Setting the stage


History

In the late 1960s, the NATO Science Committee organized a conference that is generally considered as the beginning of the field of software engineering. Quoting from the introduction of the proceedings (Naur & Randell, 1969) we read:

The phrase ``software engineering'' was deliberately chosen as being provocative, in implying the need for software manufacture to be based on the types of theoretical foundations and practical disciplines, that are traditional in the established branches of engineering.
In the same proceedings, McIlroy (1969) states that ``the software industry is not industrialized'' and gives his vision on mass produced software components. In the following decades, a large variety of approaches and techniques have been proposed to build software: the life-cycle and waterfall models in many flavors, formal specification, rapid prototyping, fourth generation languages, code generators, computer-aided software engineering, object-orientation, and much, much more.

Although all these approaches can claim success in certain areas, it is astonishing to see that they only have modest success in the day-to-day reality of, for instance, shrink-wrap software production (McConnell, 1993) where ``good enough'' software is the standard (Yourdon, 1996). For most software products time-to-market is the prevailing concern and manufacturers maintain defect levels that are both comparable to those of their competitors and that are acceptable for their customers. McIlroy's vision of a software industry producing high-quality components in many variations is still far from being a reality.

All these approaches are based on the assumption that the software production process can be controlled in a global, top-down, fashion. This is not only the theory taught to students and the fiction maintained by managers, but also the myth exposed by real programmers. This situation is not unique for software development: Kelly (1994) gives ample evidence that we are ``out of control'' in many areas of complex technological development and that evolutionary principles are becoming more important.


next up previous
Next: Techniques used by Real Up: Setting the stage Previous: Setting the stage
Paul Klint 2001-06-12