Cannabis Ruderalis

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 (Garmisch, Germany — see conference report) 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. OS/360 was one of the first large (1000 programmer) software projects. Fred Brooks claims in Mythical Man Month that he made a multi-mil

1985 to present: No silver bullet

For decades, solving the software crisis was paramount to researchers and companies producing software tools. 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:

  • 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.
  • Professionalism: This led to work on a code of ethics, licenses, and professionalism. Cheap Asian Labour then lead to the mass lay-offs of (close to pensionable) North American design staff in the early 21st century, as the shipment of jobs to foreign countries increased dramatically, not long before it became established that Asian based project support costs far exceeded project costs in North America.

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 10 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:

  • Role of women: In the 1940s, 1950s, and 1960s, software was often written by women. Men often filled the higher 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 redundant management; and fewer do hard-core 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 50 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.

Leave a Reply