Fixed #47, mentioning Margaret Hamilton.

This commit is contained in:
Andy Ko 2019-03-26 13:39:39 -07:00
parent 997512d599
commit d2d8307455
2 changed files with 6 additions and 4 deletions

View file

@ -21,8 +21,8 @@
<body>
<p><a href="index.html">Back to table of contents</a></p>
<img src="images/punchcard.jpg" class="img-responsive" />
<small>Credit: unknown</small>
<img src="images/Hamilton.jpg" class="img-responsive" />
<small>Margaret Hamilton working on the Apollo flight software. <a href="By NASA - http://www.nasa.gov/50th/50th_magazine/scientists.html, Public Domain, https://commons.wikimedia.org/w/index.php?curid=37255847">Credit</a>.</small>
<h1>A brief history of software engineering</h1>
<div class="lead">Andrew J. Ko</div>
@ -31,11 +31,13 @@
<p>Because programming required such painstaking planning in machine code and computers were slow, most programs were not that complex. Their value was in calculating things faster than a person could do by hand, which meant thousands of calculations in a minute rather than one calculation in a minute. Computer programmers were not solving problems that had no solutions; they were translating existing solutions (for example, a quadratic formula) into the notation a computer understood. Their power wasn't in creating new realities or facilitating new tasks, it was accelerating old tasks.</p>
<p>The birth of software engineering, therefore, did not come until programmers started solving problems that <em>didn't</em> have existing solutions, or were new ideas entirely. Most of these were done in academic contexts to develop things like basic operating systems and methods of input and output. These were complex projects, but as research, they didn't need to scale; they just needed to work. It wasn't until the late 1960s when the first truly large software projects were attempted commercially, and software had to actually perform.</p>
<p>The birth of software engineering, therefore, did not come until programmers started solving problems that <em>didn't</em> have existing solutions, or were new ideas entirely. Most of these were done in academic contexts to develop things like basic operating systems and methods of input and output. These were complex projects, but as research, they didn't need to scale; they just needed to work. It wasn't until the late 1960s when the first truly large software projects were attempted commercially, and software had to actually perform.</p>
<p>The IBM 360 operating system was one of the first big projects of this kind. Suddenly, there were multiple people working on multiple components, all which interacted with one another. Each part of the program needed to coordinate with the others, which usually meant that each part's <em>authors</em> needed to coordinate, and the term <em>software engineering</em> was born. Programmers and academics from around the world, especially those who were working on big projects, created conferences so they could meet and discuss their challenges. In the <a href="http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF">first software engineering conference</a> in 1968, attendees speculated about why projects were shipping late, why they were over budget, and what they could do about it.</p>
<p>In these early days of software engineering, programmers, managers, and researchers discovered many problems that had no clear solutions:</p>
<p>At the time, one of the key people behind coining the phrase software engineering was <a href="https://en.wikipedia.org/wiki/Margaret_Hamilton_(scientist)">Margaret Hamilton</a>, a computer scientist who was Director of the Software Engineering Division of the MIT Instrumentation Laboratory. One of the lab's key projects in the late 1960's was developing the on-board flight software for the Apollo space program. Hamilton led the development of error detection and recovery, the information displays, the lunar lander, and many other critical components, while managing a team of other computer scientists who helped. It was as part of this project that many of the central problems in software engineering began to emerge, including verification of code, coordination of teams, and managing versions. This led to one of her passions, which was giving software legitimacy as a form of engineering&mdash; at the time, it was viewed as routine, uninteresting, and simple work. Her leadership in the field established the field as a core part of systems engineering.</p>
<p>The first conference, the IBM 360 project, and Hamilton's experiences on the Apollo mission identified many problems that had no clear solutions:</p>
<ul>
<li>When you're solving a problem that doesn't yet have a solution, what is a good process for building a solution?</li>

BIN
images/Hamilton.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB