Software engineering : theory, experiment, practice or performance

Forty years ago, the very first programmers were wondering how to make the best use of stored program computers. By twenty years ago, that handful of programmers had grown into a software industry so large that it faced a major crisis. Today, another twenty years on, we are beginning to see how that crisis helped to move the industry from an organised craft into a profession. We still have a software crisis, though it is no longer the old one and no longer even considered a crisis. It seems likely that we will always have a crisis, a situation where our propensity for producing programs outstrips our understanding of new programming concepts. What the last twenty years have accomplished in a quiet way is the subject of this talk and I would like to show you how, and how far, theory, experiment and practice have worked together, often unintentionally, to achieve performance in software engineering.