Forty years ago today, at the height of the Cold War, around 50 computing experts gathered in the southern German market town of Garmisch to change history.
With the Soviet Union and Warsaw Pact glowering at the west, the participants - drawn both from academia and industry - met under the auspices of the North Atlantic Treaty Organization (NATO) and spent four days discussing the problems of producing reliable software for the rapidly-growing population of digital computers.
The event was called the NATO Software Engineering Conference because the phrase "software engineering" was, according to the official proceedings, "provocative, in implying the need for software manufacture to be based on the types of theoretical foundations and practical disciplines, that are traditional in the established branches of engineering".
It was the birth of a phrase that has today become pervasive.
Exactly who thought up the phrase is lost in the mists of time, but it is generally attributed to Friedrich "Fritz" Bauer, professor emeritus at Munich University of Technology and the chairman of the Garmisch conference.
The argument over whether software production can legitimately claim to be an engineering discipline continues to this day and, even after 40 years, the formal qualification "software engineer" still does not exist despite hundreds of thousands of programmers claiming the title.
Against the background of the continuing Cold War and acutely aware of the strategic significance of computer technology, the NATO Science Committee had tossed around the idea of holding an event to look into software production for a couple of years.
From bullets to bytes
In 1968, the year the Soviets put down the Prague uprising, programming was still a very young discipline. Knowledge of good practice was beginning to emerge, but it was still far from clear how the fast-growing demand for software would be met.
It was, after all, only 20 years since Tom Kilburn at Manchester University had written what is usually thought of as the first program and only ten years since the word "software" had first appeared in print - in an article by the statistician John Tukey. So, at the time, programming was still seen as an arcane pursuit more akin to alchemy or magic than engineering. The Garmisch conference changed this forever and paved the way for software engineering to become the pervasive discipline it is today.
It was an unusual gathering because it brought researchers and teachers together with industrialists and commercial programmers. So Turing Award winners such as Edsger Dijkstra, Peter Naur and Alan Perlis sat next to programmers from IBM and Bell Labs and software entrepreneurs.
The discussions were divided into three main streams - design, production, and service - with an additional stream on "special topics" that covered education and software pricing.
With one key exception, most of the issues raised at Garmisch are as relevant today as they were in 1968. The exception was the hot issue of pricing software separately from hardware - so-called unbundling. The following year IBM preempted a potential anti-trust suit by doing just this - pricing its hardware and software separately. It was a move widely seen as the beginnings of an independent software industry.