Evolutionary Process Models

So far, we have looked at system development analytically in order to highlight the problems associated with software construction and their proposed solutions. We now go on to translate the results of this critical analysis into constructive development strategies. Here, a number of ideas have been put forward by computer scientists, all of them designed to avoid the weaknesses of traditional life cycle plans (see [FloyReisSchm89, Boehm88, BjerEhnKyng87]). We attempt to integrate these ideas into our own process model of evolutionary system development which emphasizes the conscious process of changing a user organization. Like any other model, our process model is based not only on technical and task-related considerations, but also on the personal values and views of those involved as to what software development is all about: Software developers should base their design decisions on the wishes and conceptions of the future users of an application system. Since it is impossible to completely anticipate the requirements and implications of a software system, design must focus on the modifiability and integratability of a system as well as the reusability of the parts already developed.