Please elaborate on the work leading up to your achieving the distinction of ACM Fellow:
A 1969 study at IBM Yorktown, of IBM's programming process led me to identification of the phenomenon of Program Evolution. I spent the early and mid-seventies jointly with Les Belady, subsequently on my own, investigating this phenomenon. The work led to many important results including the, by now, eight laws of software evolution, a Principle of Uncertainty and most recently a Research Project FEAST/1 (Feedback, Evolution, and Software Technology) which, in collaboration with industry is producing important results. In particular we are rapidly accumulating evidence from some nine past major and current systems to support (with minor modifications) the laws as previously stated. The software process is being seen to be a feedback system. The self dynamics it develops over its first few releases takes over the behavioural trends of the system development. "The process and system controls the managers rather than that the managers control the system."
What is the best reference to your work?
My Web pages include a long list that includes the book Lehman and Belady, "Program Evolution - Processes of Software Change," 1985, and several recent papers reporting on FEAST/1.
What are your current research interests?
Software evolution and evolution process, process improvement.
What was the greatest influence on you?
My 1968 study of the IBM programming Process.
What was your greatest influence?
I suppose my view of the process as a feedback system and the Laws etc. which are now widely quoted.
Who do you think has made the greatest impact on software engineering?
We'll know 20 years from now.
What's your favorite story about software engineering or development?
Lots of them. Almost certainly one of these that support my Uncertainty Principle, i.e. one of the many examples where an assumption has gone wrong. Examples include
Which computer-related areas are most in need of investment by government,
business or education?
Management of software evolution and the software process.
What advice do you have for computer science/software engineering students?
This applies to all those deciding on or specifying new (or changes to existing) computer applications or software: Record all your assumptions, however trivial or far-fetched it might appear that they might be violated.
What is the most often-overlooked risk in software engineering?
The changing operational domain, change accelerated by installation and use of the system. Most particularly, invalid assumptions (explicit or implicit) embedded in the system, that may have been initially valid but have become invalid because of domain and application changes.
What is the most-repeated mistake in software engineering?
Assuming the world or an application or the domain within which it operates, does not change.
What are the most exciting/promising software engineering ideas or techniques on the horizon?
Viewing, modelling and treating the software process as a feedback system, of course.
What are your plans for the future or the next five years?
To continue to work on the same theme, encourage others to work on it as well and to develop and expound a "theory of software evolution and software process."
Profiled by Arnulf Mester