Role and Impact of Feedback and System Dynamics in Software Evolution Processes and their Improvement
Meir M. Lehman Goel Kahen Juan F. Ramil Imperial College, London, UK
Fig. MML.0: IBM OS/360-370 Growth Trend
The ripple superimposed on an initial underlying linear growth trend was then interpreted as being the result of a self-stabilising process, the consequence of counter-acting positive and negative feedback forces. On the one hand, factors such as the need to overcome limitations encountered when running the system, ambition to achieve greater market share and so on, lead to pressures to increase the functional power of the system and, hence, to system growth. On the other hand, constraints emerge that tend to limit the achievement of further growth. These include, for example, those imposed by increasing system complexity, neglect of complexity control (i.e., anti regressive [leh74] work) and resource availability. The former exemplify positive loops that reinforce a particular behaviour and so lead, in general, to growth or amplification. The latter exemplify negative feedback loops that contribute towards behavioural balance or stabilisation. This analysis led directly to the feedback interpretation referred to above. It was supported by the realisation that the instability observed after RSN 20 was related to excessive positive feedback as suggested by the well above average incremental growth between releases 19 and 20. Recalling this early observation, he now (1993) proposed the FEAST (Feedback, Evolution and Software Technology) hypothesis [leh94]. In one of its formulations, this states that, "… with the possible exception of the less mature, software processes are multi-level, multi-loop, multi-agent feedback systems and must be treated as such to achieve sustained process improvement". The theme was discussed in three international workshops at Imperial College, London [fea94,95]. Subsequently, the UK EPSRC funded FEAST/1 (1996-1998) and FEAST/2 (1999-2001) projects have been investigating the hypothesis and its implications. More recently, a fourth international workshop, FEAST 2000, discussed related issues [fea00b]. The projects were set up to achieve a better understanding of the what and the why of evolution and to determine whether the results obtained during the 70s and 80s were applicable to the processes and technologies of the 90s. The questions being addressed included the following: How may one identify positive and negative feedback loops in software evolution processes and determine the influence of resulting system dynamics? What is the impact of feedback on such processes and on their products? How may feedback be controlled and exploited to achieve the continuing improvement of such processes and increased likelihood of meeting the challenges of evolution? In searching for plausible answers the FEAST projects have developed a set of models of industrial software processes. This work has been made possible by the provision of empirical data by industrial collaborators and their support in its interpretations. The models represent a means whereby sources of process system dynamics and their strength may be investigated. Inter alia, they can also be used to help identify potential process improvements. This summarises some of the findings and conclusions reached to date with the emphasis on quantitative modelling in the context of process improvement. A list of references covering these and other aspects of the investigation in more details and access to them is provided via links at http://www-dse.doc.ic.ac.uk/~mml/feast. In connection with what follows it should be noted that the scientific paradigm, as exemplified in figure MML.1, has been followed in FEAST and earlier [leh85] investigations of software evolution. A phenomenon is recognised. Metric data to describe it are obtained. Patterns are identified. Models of that data are built, analysed and validated. The observed phenomenology is interpreted in terms of the models and vice versa and expressed in a formal statement or descriptive text. Understanding of the observed behaviour, the models, and the formal statement or descriptive text are improved in an iterative process of successive refinement.
Fig. MML.1: The Investigative Paradigm
Fig. MML.2 : A Major Process Feedback Loop
The diagram in figure MML.2 is, however, unrealistic in several respects. Evolution processes are, in general, neither strictly sequential nor restricted to technical tasks. An improved representation is provided by MML.3. This seeks to depict the evolution process as a global multi-level, multi-loop, multi-agent process [leh94].
Fig. MML.3 : The Global Software Process
The global process illustrated is the totality, the non-linear sum, of all activities required to transform concepts, ideas, definitions, needs specifications, algorithms and models into code and other deliverables through the application of resources. It encompasses the activities of application experts, architects, designers, developers, sales and support personnel, managers, users, etc. Their process related activities are an integral part of the process. All are stakeholders who, in the light of their interests and responsibilities, feed back their perception of needs, expectations, experiences, etc to relevant process agents. Their interactions play a part in driving, directing and constraining the process. All have an impact in and on both process and product. The fact that the operational system is the product of such global processes imposes numerous challenges when seeking to manage and/or improve either. For example, process changes will have local impact but the global impact may be counterintuitive. Now, with only a few exceptions, e.g., inspections and change management, the emphasis in software process research and practice has focused on the technical process and, in particular, on its forward paths. Feedback mechanisms have, in general, not received much attention despite the fact that they appear to be one of the sources of evolutionary behaviour. What is known about the evolutionary behaviour of key global process attributes? Investigations over the years have led to the identification of a set of behavioural patterns, termed Laws of Software Evolution, as listed, in their most recent formulation, in Table MML.1 below.
Table. MML.1 : The Laws of Software Evolution (as currently stated)
The laws were numbered in the order of their formulation and have been refined over the years as understanding of the phenomena encapsulated in them has advanced [leh74,85,fea00b]. They were termed laws because they reflect human social, organisational and managerial forces and because they were believed to encapsulate behaviour and phenomena that are, in general, outside the purview of those concerned with day to day development, the direct application of methods, tools and techniques to evolve the software. In general, FEAST results have increased confidence in six of the eight laws. Law VII was not investigated due to lack of appropriate data, though it is supported by theoretical reasoning [leh89,fea00a]. Law IV reflects present understanding and requires further investigation [leh98,raj00]. Based on the laws and on the behaviour they imply, a number of recommendations for long term evolution process planning and management have recently been compiled [leh00]. Readers interested in this and further details regarding the laws are referred to the project web site [fea00a]. The eighth law provides an explicit statement of the feedback system nature of software evolution processes. Its formulation as a law was based on many years of observations of the programming process. As discussed above, the long term growth patterns observed in several systems can be interpreted in terms of compensating positive and negative feedback loops. Positive feedback influences such as pressures to increase functional power to improve sales or augment the customer base, on the other hand, tend to be constrained by the global software process capacity to implement and assimilate change. Given that, in general, managers do not directly or explicitly control system growth rate as such, one may say that observed growth trends are, at least in part, the result of controls imposed by counteracting positive and negative feedback forces. Additional support for the law has been provided by simulation modelling of software processes. New insight, in particular, has been provided by a number of system dynamics [for61] models built by the FEAST group. These include feedback influences that are believed to be dominant [wer98,cha99,kah00]. Feedback influences tend also to be reflected in simulation-based models of industrial processes presented in the literature, such as those in the ProSim workshops [pro00].
Fig. MML.4 : Black-Box Models in FEAST
White box models reflect process structure, its major constituents, sub-processes and relevant details of their interactions. The goal is to convey insight into the internals of the process modelled. Figure MML.5 is analogous to Figure MML.4 but represents white-box modelling activity. The dashed line rectangle, here, encompasses the part of the process being modelled. The right hand side of Fig. MML.5, is intended to suggest that, in principle, any attribute not only inputs and outputs, may be of interest when developing and executing white-box models.
Fig. MML.5 : White-Box Models in FEAST
In the wider software community, the two modelling approaches are generally pursued separately. Examples of black-box modelling as defined here are to be found in the software metrics literature. Activity leading to models analogous to our white-box models has been primarily pursued in the software process simulation modelling community [e.g., pro00]. The FEAST modelling approach and studies, to date have differed in several ways. They have, for example:
Fig. MML.6 : Example of Black-Box Modelling in FEAST
Figure MML.7a presents a system dynamics [for61] model that reflects part of the most recent FEAST/2 work. A detailed discussion of this model and the underlying concepts is given in [kah00]. Further guidelines are given in [ram00]. An example of the output of this model is shown in fig. MML.7b. This figure shows the simulated growth of the system to month 180 compared with actual growth under alternative management policies. These policies relate to
Fig. MML.7a : Example of White-Box Modelling in FEAST
the portion of resources applied to anti regressive [leh74] work such as complexity control. AR = 0.3 indicates that 30 percent of resources are devoted to this activity, AR = 0.0 indicates that no resources are made available to it.
Fig. MML.7b : An Example of the Output of the Model in Fig. MML.7a.
Fig. MML.8 : Iterative Modelling
Software processes display and share characteristics with industrial production that transform physical entities. The system dynamics of these have been studied by, for example, Forrester and co-workers since the sixties [for61]. In many respects they also resemble invention, design and R&D processes whose dynamics are not so simple to grasp or to model. Additionally, when compared to other artificial artefacts (in Simon's sense [sim69]), software evolution occurs at a faster rate. Software changes are motivated by organisational and technological changes and frequently triggered and accelerated by the introduction of new releases of the software in the operational domain [leh85]. In this sense, software evolution can be considered the Drosophila Melanogaster, the fruit fly of artificial processes.
[bel72]* Belady LA, Lehman MM, An Introduction to Program Growth Dynamics, in Stat. Comp. Perf. Ev., W. Freiburger (ed.), Ac. Press, NY, 1972, pp. 503-511
[cha99] Chatters BW, Lehman MM, Ramil JF, Wernick P, Modelling a Software Evolution Process, ProSim'99, Softw. Process Modelling and Simulation Workshop, Silver Falls, Oregon, 28-30 Jun. 1999, also as Modelling a Long Term Software Evolution Process in J. of Softw. Proc.: Improvement and Practice, 2000, v. 5, iss. 2/3, Jul. 2000, pps. 95-102
[cox66] Cox DR, Lewis PAW, The Statistical Analysis of Series of Events, Methuen, London, 1966
[fea94,95] Preprints of Three FEAST Workshops, Lehman MM (ed.), Dept. of Comp., Imp. Col., 1994/5
[fea00a] FEAST, Feedback, Evolution and Software Technology, web site: http://www-dse.doc.ic.ac.uk/~mml/feast
[fea00b] Preprints of FEAST 2000 International Workshop on Feedback and Evolution in Software and Business Process, Ramil JF (ed.), Dept. of Comp., Imp. Col., London, 10 - 12, Jul. 2000, 124 pp. http://www-dse.doc.ic.ac.uk/~mml/f2000
[for61] Forrester, J., Industrial Dynamics, The MIT Press, 1961.
[kah00] Kahen G, Lehman MM, Ramil JF, Wernick PD, Dynamic Modelling in the Investigation of Policies for E-type Software Evolution, ProSim 2000, 12 - 14 Jul. 2000, London, UK
[leh69]* Lehman MM, The Programming Process, IBM Research Report RC 2722, IBM Research Centre, Yorktown Heights, NY, Sept. 1969
[leh74]* Lehman MM, Programs, Cities, Students, Limits to Growth?, Inaugural Lecture, in Imperial College of Science and Technology Inaugural Lecture Series, Vol. 9, 1970, 1974, pp. 211-229. Also in Programming Methodology, (D. Gries. ed.), Springer Verlag, 1978, pp. 42-62
[leh85] Lehman MM, Belady LA, Program Evolution—Processes of Software Change, Academic Press, London, 1985.
[leh89] Lehman MM, Uncertainty in Computer Application, Comm. of the ACM, Vol. 33, No. 5, May 1990, pp. 584-586
[leh90] Lehman MM, Uncertainty in Computer Application, Technical Letter, Comm. of the ACM, vol. 33, no. 5, pp. 584, May 1990
[leh94] Lehman MM, Feedback in the Software Evolution Process, Keynote Address, CSR Eleventh Annual Workshop on Software Evolution: Models and Metrics. Dublin, 7-9 Sept. 1994, Workshop Proc., Information and Software Technology, sp. is. on Software Maintenance, v. 38, n. 11, 1996, Elsevier, 1996, pp. 681 - 686
[leh98] Lehman MM, Perry DE and Ramil JF, On Evidence Supporting the FEAST Hypothesis and the Laws of Software Evolution, Proc. Metrics'98, Bethesda, MD, 20-21 Nov. 1998, pp. 84-88
[leh00] Lehman MM, Rules and Tools for Software Evolution Planning and Management, FEAST 2000 Workshop, 10 - 12 July 2000, Imp. Col.
[pro00] Prosim 98, 99 and 2000, Software Process Simulation and Modeling Workshops, http://www.prosim.org
[ram00] Ramil JF, Lehman MM, Kahen G, The FEAST Approach to Quantitative Process Modelling of Software Evolution Processes, Proc. PROFES'2000 2nd International Conf. on Product Focused Software Process Improvement, Oulu, Finland, 20-22 Jun. 2000, in Frank Bomarius and Markku Oivo (eds.) LNCS 1840, Springer, Berlin, 2000, pp. 311-325
[raj00] Rajlich VT and Bennet KH, A Staged Model for the Software Life Cycle, Computer, July 2000, pp. 66 - 71
[sim96] Simon HA, The Sciences of the Artificial, 3rd. ed. The MIT Press, Cambridge, MA, 1996, 231 pp, first pub. in 1969
[tur96] Turski WM, A Reference Model for the Smooth Growth of Software Systems, IEEE Trans. Softw. Eng., v. 22, n. 8, Aug. 1996, pp. 599 - 600
[wer98] Wernick P and Lehman MM, Software Process White Box Modelling for FEAST/1, ProSim '98 Workshop, Silver Falls, OR, 23 Jun. 1998. As a revised version in J. of Sys. and Softw., v. 46, n. 2/3, 15 Apr. 1999
[wid89] Widman LE and Loparo KA, Artificial Intelligence, Simulation, and Modeling - A Critical Survey, in Widman LE, Loparo KA and Nielsen NR (eds.), Artificial Intelligence, Simulation and Modeling, Wiley, NY, 1989
[zur67] Zurcher FW and Randell B, Iterative Multi-Level Modelling - A Methodology for Computer System Design, IBM Res. Rep. RC 1938, Nov. 1967, IBM Res. Centre, Yorktown Heights, NY 10594. Also in Information Processing 67, Proc. IFIP Congr. 1968, Edinburgh, Aug. 1968, pp. D138 - 142