Why did the President of ACM coin the term software engineering?

The History of Software Engineering

Software engineering has evolved steadily from its founding days in the 1940s until today in the 2000s. Applications have evolved continuously. The ongoing goal to improve technologies and practices, seeks to improve the productivity of practitioners and the quality of applications to users.

1945 to 1965: The Origins

The term software engineering first was used in the late 1950s and early 1960s. Programmers have always known about civil, electrical and computer engineering and debated what engineering might mean for software.

The NATO Science Committee sponsored two conferences on software engineering in 1968 and 1969, which gave the field its initial boost. Many believe these conferences marked the official start of the profession.

1965 to 1985: The Software Crisis

Software engineering was spurred by the so-called software crisis of the 1960s, 1970s and 1980s, which identified many of the problems of software development. Many software projects ran over budget and schedule. Some projects caused property damage. A few projects caused loss of life. Some used the term software crisis to refer to their inability to hire qualified programmers. The software crisis was originally defined in terms of productivity, but evolved to emphasize quality.

Cost and Budget Overruns: The OS/360 operating system was a classic example. This decade-long project from the 1960s and 1970s eventually produced one of the most complex software systems ever created. The OS/360 was one of the first large, 1000 programmer, software projects. Fred Brooks claims in 'Mythical Man Month' that he made a multi-million dollar mistake by not developing a coherent architecture before starting development. Property Damage: Software defects can cause property damage. Poor software security allows hackers to steal identities, costing time, money, and reputations. An expensive European Ariane rocket exploded because of software.

Life and Death: Software defects can kill. Some embedded systems used in radiotherapy machines failed so catastrophically that they administered lethal doses of radiation to patients. Peter G. Neumann keeps a contemporary list of software problems and disasters at Computer Risks.

The software crisis has been slowly fizzling out, because it is unrealistic to remain in crisis mode for more than twenty years. SEs are accepting that the problems of SE are truly difficult and only hard work over many decades can solve them.

1985 to Present: No Silver Bullet

For decades, solving the software crisis was paramount to researchers. Seemingly, they trumpeted every new technology and practice from the 1970s to the 1990s as a silver bullet to solve the software crisis.

Tools, discipline, formal methods, process, and professionalism were touted as silver bullets. Tools: Especially emphasized were tools. Structured programming, object-oriented programming, CASE tools, Ada, documentation, standards, and UML were touted as silver bullets. Discipline: Some pundits argued that the software crisis was due to the lack of discipline of programmers. Formal methods: Some believed that if formal engineering methodologies would be applied to software development, then production of software would become as predictable an industry as other branches of engineering. They advocated proving all programs correct. Process: Many advocated processes and methodologies like CMM. Professionalism: This led to work on a code of ethics, licenses and professionalism.

In 1987, Fred Brooks published the 'No Silver Bullet' article, arguing that no individual technology or practice would ever make a 10-fold improvement in productivity within ten years. Debate about silver bullets raged over the following decade. Advocates for Ada, components, and processes continued arguing for years that their favorite technology would be a silver bullet. Skeptics disagreed. Eventually, almost everyone accepted that no silver bullet would ever be found. Yet, claims about silver bullets pop up now and again, even today.

Some interpret 'no silver bullet' to mean that SE failed. The search for a single key to success never worked. All known technologies and practices have only made incremental improvements to productivity and quality. Yet, there are no silver bullets for any other profession, either. Others interpret no silver bullet as proof that SE has finally matured and recognized that projects succeed due to hard work.

Major Developments

There are a numbers of areas where the evolution of software engineering is notable. Emergence as a profession: From the mid-1990s to the mid-2000s, software engineering emerged as a bona fide profession, to stand beside computer science and traditional engineering.

Role of women: In the 1940s, 1950s, and 1960s, software was often written by women. Men often filled the highest prestige hardware engineering roles. Grace Hopper and many other unsung women filled many programming jobs during the first several decades of software engineering. Today, fewer women work in software engineering than in other professions. Saying that this is sexual discrimination is too simple because it related directly to individual identity. In one sense, software engineering is the masculinization of programming. The roles women fill in SE continue evolving. Today, more women in software engineering fill the social roles of analysis, training, documentation and management; and fewer do hardcore technical development.

Processes and Methodology: Processes and methodologies have become big parts of software engineering. Many practitioners resist process, which often treats them impersonally like machines, rather than like people.

Cost of hardware: The relative cost of software versus hardware has changed substantially over the last fifty years. When mainframes were expensive and required large support staffs, software projects could be expensive. Because powerful PCs are cheap, software projects must become cheaper in comparison.

Why did Margaret Hamilton coin the term software engineering?

She coined the term software engineer because she felt that the work she and her team were doing was just as important and just as much engineering as the other work on the Apollo spacecraft. Hamilton herself specifically concentrated on software to detect system errors and to recover information in a computer crash.

Who invented the term software engineer?

Indeed, Margaret Hamilton, renowned mathematician and computer science pioneer, is credited with having coined the term software engineering while developing the guidance and navigation system for the Apollo spacecraft as head of the Software Engineering Division of the MIT Instrumentation Laboratory.

Why was software engineering introduced?

Definition: Software engineering is a detailed study of engineering to the design, development and maintenance of software. Software engineering was introduced to address the issues of low-quality software projects. Problems arise when a software generally exceeds timelines, budgets, and reduced levels of quality.

Why is software engineering called engineering?

It is called "engineering" because early practitioners wanted to call it "software physics," but that term was already in use. They wanted to call it software physics because they believed that the process of producing software could be formalized with such rigor that it would be on all fours with physics.