The history of software engineering begins around the 1960s. Writing software has evolved into a profession concerned with how best to maximize the quality of software and of how to create it. Quality can refer to how maintainable software is, to its stability, speed, usability, testability, readability, size, cost, security, and number of flaws or "bugs", as well as to less measurable qualities like elegance, conciseness, and customer satisfaction, among many other attributes. How best to create high quality software is a separate and controversial problem covering software design principles, so-called "best practices" for writing code, as well as broader management issues such as optimal team size, process, how best to deliver software on time and as quickly as possible, work-place "culture", hiring practices, and so forth. All this falls under the broad rubric of software engineering.
Overview The evolution of software engineering is notable in a number of areas:
Emergence as a profession: By the early 1980s software engineering had already emerged as a bona fide profession, to stand beside computer science and traditional engineering. Role of women: Before 1970 men filling the more prestigious and better paying hardware engineering roles often delegated the writing of software to women, and legends such as Grace Hopper or Margaret Hamilton filled many computer programming jobs. Today, fewer women work in software engineering than in other professions, a situation whose cause is not clearly identified. Many academic and professional organizations consider this situation unbalanced and are trying hard to solve it. Processes: Processes have become a big part of software engineering. They are hailed for their potential to improve software but sharply criticized for their potential to constrict programmers. 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, the few organizations buying them also had the resources to fund large, expensive custom software engineering projects. Computers are now much more numerous and much more powerful, which has several effects on software. The larger market can support large projects to create commercial off the shelf software, as done by companies such as Microsoft. The cheap machines allow each programmer to have a terminal capable of fairly rapid compilation. The programs in question can use techniques such as garbage collection, which make them easier and faster for the programmer to write. On the other hand, many fewer organizations are interested in employing programmers for large custom software projects, instead using commercial off the shelf software as much as possible.
1945 to 1965: The origins Early usages for the term software engineering include a 1965 letter from ACM president Anthony Oettinger, lectures by Douglas T. Ross at MIT in the 1950s. Margaret H. Hamilton is the person who came up with the idea of naming the discipline, software engineering, as a way of giving it legitimacy during the development of the Apollo Guidance Computer.
I fought to bring the software legitimacy so that it—and those building it—would be given its due respect and thus I began to use the term 'software engineering' to distinguish it from hardware and other kinds of engineering, yet treat each type of engineering as part of the overall systems engineering process. When I first started using this phrase, it was considered to be quite amusing. It was an ongoing joke for a long time. They liked to kid me about my radical ideas. Software eventually and necessarily gained the same respect as any other discipline The NATO Science Committee sponsored two conferences on software engineering in 1968 (Garmisch, Germany) and 1969, which gave the field its initial boost. Many believe these conferences marked the official start of the profession of software engineering.
1965 to 1985: The software crisis and operating systems 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 projects ran over budget and schedule. Some projects caused property damage. Through negligence in publishing software with critical bugs, some lost their lives due to software failures. One of the most striking examples of harm through software bugs was the Therac-25 race condition bug. The bug caused a radiation therapy machine to administer overdoses of radiation in cases where low doses should have been used. The software crisis was originally defined in terms of productivity, but evolved to emphasize quality. Some used the term software crisis to refer to their inability to hire enough qualified programmers. During this time, Silicon Valley cemented itself as the best location for software engineers to work.
… excerpt ends here. Continue reading the full article.


