A rational theory of system-making systems. - Schaefer, Robert (Software engineering notes.)
All current models of software development abstract away key interactions of the hosting organization, the results of which can be seen in practice with the common reoccurrence of large software intensive system project failures. Poor model matches with reality can be detected by anomaly, by paradox, and by poor results when approved process is properly applied. The current paradigm is that the software development process (and the more inclusive systems development process) must be abstracted away from the host organization, and that this abstraction must be treated as the whole of the model. This model began its life as a useful fiction to permit a cutting out of what for small projects were (at the time) second-order factors to enable a more concentrated analysis on the principal factors. For the smaller software project, this model has, and continues to work quite well. But over the decades, as systems and systems makers have grown in size and complexity, this working fiction has outgrown its ability to model reality, and at the same time due to past success, has assumed the trappings of a truth; a law not to be questioned. Arguments to date on software process have been only about what variant methodology to apply and how strict one should be in applying methods, but never about the validity of the boundaries of the model. All efforts for improvement have been no more than continual tweaking of a bad model to see what happens. The paradigm for a better model begins with the realization that the larger the system maker and the larger the system, the greater the influence of the internally directed goals, the politics and the structures of the organization have on the design and implementation of the product. This paper attempts to reintroduce these externalities through a new model; the system-making system model. This model can be used to explain observations; predict outcomes; identify where current theory should no longer be treated as law and where current practice should no longer treated as optimal. The advantage of this model happens also to be its only drawback (sigh), that politics must be discussed.