It is now nearly 30 years since the NATO Conference that took place in Garmisch Partenkirchen established the term 'software engineering' as an essential part of the professional software developer's vocabulary. The background to that conference and the debate that took place illustrated issues that will be both still familiar and those that will appear simply as interesting pieces of history.
Discussions on the gap that exists between product ambitions and any well founded view of the ability to deliver are as familiar today as they were thirty years ago. Similarly the debates over the ability to work in practical terms with software components, the importance of structure and observations on the gap between the best and worst performers all continue to engage attention.
What might surprise even those early visionaries would be the degree to which software has penetrated the industrial fabric of all developed sectors of the economy, the extent to which it now determines the quality of delivered services and the impact it has on the life of the individual citizen. As a result, more and more enterprises are coming to understand that the ability to develop software in an efficient and effective manner is an essential part of their core competence.
Although the challenge to deliver software fit for its intended purpose is as pressing today as it was at that time, much has changed. Systems some orders of magnitude greater than those then current are now routine. Moreover, distribution of function and data reflecting the shift that has taken place from monolithic to more distributed structures are common-place features, as are high levels of interactivity and the integration of many different technological components, from communication systems to advanced user interfaces.
The last 30 years has also seen a shift from the belief that better technology alone can solve the engineering problem, to one that recognises that software development is a complex business process in its own right. In consequence much attention is now paid to process issues and there is a general acceptance that it is only in the context of well founded processes that technology itself can play a fully productive role. Good management practices as well as good technology continue to be essential components of a sound engineering approach.
The ever more increasing dependence by both industry and society on software, its direct and already massive economic importance together with an apparently insatiable ambition to stretch development capabilities to the limit (sometimes beyond) all add up to a continuing need to improve the predictability of the development process and the fitness of the product for its intended purpose in short to a continuing need to improve the engineering of software in all its different facets.
ERCIM and its members have already contributed to addressing many of these issues. Many challenges remain, ranging from hard theoretical problems to the invention of new processes and products that can take advantage of the new global infrastructures, such as the Internet. Continuing R&D is needed if Europe is to maintain its ability to build the world class software driven systems essential for its future prosperity.