Margaret Hamilton, lead software engineer, Project Apollo

12 years ago (threefingeredfox.net)

Yes, she was one of the early formal-methods people. I met her and Saydeen Zeldin back when I was doing proof of correctness work. They had a company called Higher Order Software, which promoted an extreme form of waterfall design using formal methods. This is appropriate for avionics but didn't catch on. Proof of correctness was just too slow back then.

Incidentally, when you post articles like this, please don't use a title that makes it sound like an obituary.

  • It's still too slow today for all but the most security critical applications.

    Fortunately there is a lot of work in progress to improve the situation.

I worked with Margaret and Saydeen at Higher Order Software for my first job out of college, but I didn't get to work on anything as glamorous as Apollo. We did mostly government contracts; I was there for two years before I decided it was time for grad school.

  • Is HOS what it seems? I read about it years ago in "System Design from Provably Correct Constructs". It seems like it should revolutionize software development (and incidentally put most programmers out of business) but that it somehow just never gets "traction" beyond certain markets/customers?

    • The first time -- and still one of the few times -- I ever walked out of a meeting because the BS level seemed too high was when I visited Higher Order Software in the 1980s.

      3 replies →

  • OT: I just said to myself, that cannot be "the Peter Norvig" here on Hackernews and I checked the profile. And Lo and behold ...

I find it a bit... sad? disturbing? that the only reason women were so involved in computing and programming in the early years was because programming and software were seen as less important jobs than the "software planner" jobs, where the "coder" was just a flunkie, something of a software custodian. They were considered clerical jobs, like data entry or a secretary.

This old article (2009) has a lot more details on this old sociological phenemonon:

http://homes.soic.indiana.edu/nensmeng/files/ensmenger-gende...

The author has a whole blog about this topic:

http://thecomputerboys.com/?p=239

  • I started programming before I was a teenager, in part because my mother was a programmer. At that time, 30+ years ago, women were not programmers because it was "less important". You didn't see men taking programming jobs as a "Consolidation" for some better career.

    My first two programming teachers- in college and in high school- were both women who were also professional programmers at previous jobs.

    It was a prestigeous job, as the computer was seen to clearly be the herald of a new age. The personal computer revolution was really significant. It was a job for smart, mathematically inclined people.

    I think programming is seen as a lower status job now than it was then. Now programmers are subservient to ignorant business people (When the reality is, its much easier for use to learn business than them to program.)

    I think in the past women were more likely to be programmers because the profession didn't have a gender stigma. Because men were more likely to have picked out a profession, and women who entered college without a specific degree plan were more likely to pick this one up.

    And frankly, I've never seen a problem with women programmers. I've worked with women programmers at every job where there were more than 10 programmers, and they haven't been seen as deserving, or treated with less respect... this goes back to the 1980s.

    I would like you to back up your assertion that the "only reason" they were involved was low status. That paper you linked to is fallacious beyond belief. You may disagree with my anecdotes below, but he's merely giving us his spin on an article. (So he's not only anecdotal, but derivative.)

    • > 30+ years ago

      That's barely in the 1980's or late 1970's, well after the events being described in the articles I mentioned.

      Can you contest that Von Neumann considered programming a clerical job?

      > That paper you linked to is fallacious beyond belief.

      Well, I suppose I would have to read his citations too, to check if they were all lies as well.

      1 reply →

  • Definitely sad, but I'd say the disturbing part is how fast they got disappeared once software development became "a real job".

  • >because programming and software were seen as less important jobs than the "software planner" jobs,

    It's not like STEM software today like the codebase of ATLAS for example, is give much praise in the public eye. It's simply overshadowed by the larger more ambitious project that it was part of. This was the case back then as well.

Definitely a role model.

Her site has a pretty neat article called "Inside development before the fact":

> Today's traditional system engineering and software development environments support their users in "fixing wrong things up" rather than in "doing them right in the first place". Things happen too late, if at all. Systems are of diminished quality and an unthinkable amount of dollars is wasted. This becomes apparent when analyzing the major problems of system engineering and software development.

Also a cool paper she wrote:

> The key to software reliability is to design, develop, and manage software with a formalized methodology which can be used by computer scientists and applications engineers to describe and communicate interfaces between systems. These interfaces include: software to software; software to other systems; software to management; as well as discipline to discipline within the complete software development process. The formal methodology of Higher Order Software (HOS), specifically aimed toward large-scale multiprogrammed/multiprocessor systems, is dedicated to systems reliability. With six axioms as the basis, a given system and all of its interfaces is defined as if it were one complete and consistent computable system. Some of the derived theorems provide for: reconfiguration of real-time multiprogrammed processes, communication between functions, and prevention of data and timing conflicts.

http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=170233...

And some NASA work related to HIOS: http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/1975001...

Besides the great photo and backstory, I liked this snippet:

> She was all of 31 when the Apollo 11 lunar module landed on the moon, running her code. (Apollo 11 was able to land at all only because she designed the software robustly enough to handle buffer overflows and cycle-stealing.)

You could read that paragraph in several ways. Back then, accomplishing something like that at 31 seems precocious. Today, in the hype about 18-year-olds becoming millionare-startup founders, she sounds like a late bloomer of a programmer.

  • Considering she didn't learn how to program a computer until her 20s, and there were no shoulders of giants (sorry, frameworks and operating systems) to stand upon, I'd say it's a more impressive feat.

  • More detail on the cycle-stealing bit, which caused an alarm during the Apollo 11 lunar descent, which the AGC's priority scheduling allowed it to recover from: http://en.wikipedia.org/wiki/Apollo_Guidance_Computer#PGNCS_...

    • Some years ago, there was a video about the moon landing in Washington DC airport (it was at a Smithsonian exhibit or store or some such). It included video of the control room when the alarm went off during descent. There was silence and blank faces - nobody knew what to do.

      But by the time the alarm went off the second time on descent, it was completely different. Someone - whoever was in overall charge - called a role (something like "descent control officer") and that person responded "go", all within one second.

      But, yes, it wasn't a problem because the priority scheduling recovered from this problem, and that recovery was a really big deal.

      2 replies →

    • Wasn't that the same alarm that was randomly thrown at the astronaughts in training and they made the wrong choice then and learned to make the right choice on the moon?

      I will look up the story in Kranz's autobiography when I get home tonight.

      1 reply →

  • Here's another great photo (http://i.imgur.com/2jJZwBZ.jpg) which was posted on the TIL thread a few days ago (http://www.reddit.com/r/todayilearned/comments/2oskna/til_th...).

    • See, I see this and the other photo of her as conveying the message, "You don't have to look like the stereotypical 'NASA nerd,' the white guy with the white button-down shirt and the pocket protector full of pens, in order to make a contribution. Some of the biggest contributions were made by people who didn't fall into that stereotype."

More details about her work on Apollo Guidance Computer:

Apollo Guidance Computer History Project, Margaret Hamilton's introduction:

http://authors.library.caltech.edu/5456/1/hrst.mit.edu/hrs/a...

"Many of the things I was intrigued by had to do with how to make the mission software safe and reliable. And one of the things I remember trying very hard to do was to get permission to be able to put more error detection and recovery into the software. So that if the astronaut made a mistake, the software would come back and say "You can't do that." But we were forbidden to put that software in because it was more software to debug, to work with. So one of the things that we were really worried about is what if the astronaut made a mistake -- We were also told that the astronauts would never make any mistakes, because they were trained never to make mistakes. (Laughter)

So we were very worried that what if the astronaut, during mid-course, would select pre-launch, for example? Never would happen, they said. Never would happen. (Laughter) It happened."

She also mentions her companies:

"So since that time, the theory has evolved and now I actually lost the first company to venture capital people, and started a second company called Hamilton Technologies."

The link to the second:

http://www.htius.com/

The wikipedia article on her notes she's credited (by NASA) with coining the term "software engineering".

http://en.wikipedia.org/wiki/Margaret_Hamilton_%28scientist%...

  • Interesting, and something I didn't know. The cited source unfortunately doesn't elaborate on the context. The chronology does seem about right. The first in-print use of the term I can find is from 1969, when it was used as the title for the proceedings of an October 1968 NATO scientific conference: http://dl.acm.org/citation.cfm?id=1102020. Given the NASA/NATO personnel overlap at the time, it's certainly plausible that they got it via NASA.

She was briefly mentioned in Steven Levy's "Hackers", as an MIT computer user who's program crashed after the "Midnight Wiring Society" changed how the computer worked.

Also, she was interviewed in "Moon Machines" episode three, about the nav computer.

http://en.wikipedia.org/wiki/Moon_Machines

Awesome. She's a role model for girls, which our field badly needs. The client list on her company's website is pretty long and substantial.

What a truly inspiring human being. I can only dream of aspiring to her levels of contribution.

Check out some of the Apollo 11 code for the Lunar Module's (LM) Apollo Guidance Computer (AGC). It's just awesome browsing through it, reading the comments, and thinking about the zeitgeist of being on a team that was working on something of that world-altering magnitude.

Code Library:

https://code.google.com/p/virtualagc/source/browse/trunk/Lum...

KALMAN_FILTER.agc

https://code.google.com/p/virtualagc/source/browse/trunk/Lum...

LAMBERT_AIMPOINT_GUIDANCE.agc

https://code.google.com/p/virtualagc/source/browse/trunk/Lum...

LANDING_ANALOG_DISPLAYS.agc

https://code.google.com/p/virtualagc/source/browse/trunk/Lum...

LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc

https://code.google.com/p/virtualagc/source/browse/trunk/Lum...

LUNAR_LANDING_GUIDANCE_EQUATIONS.agc

https://code.google.com/p/virtualagc/source/browse/trunk/Lum...

- - -

Incredible quote:

"There was no second chance. We all knew that. We took our work very seriously, but we were young, many of us in our 20s. Coming up with new ideas was an adventure. Dedication and commitment were a given. Mutual respect was across the board. Because software was a mystery, a black box, upper management gave us total freedom and trust. We had to find a way and we did. Looking back, we were the luckiest people in the world; there was no choice but to be pioneers; no time to be beginners." - Margaret Hamilton

- - -

Edit: OK, this is interesting. Note the filename. The filename and comments suggest that it was for driving keyboard and information display...

PINBALL_GAME_BUTTONS_AND_LIGHTS.agc

https://code.google.com/p/virtualagc/source/browse/trunk/Lum...

When this story was posted yesterday [1], the comment about UDL sparked my interest. That led me to Hamilton'sDevelopment Before the Fact methodology [2]. I find DBTF an appealing approach to reliable systems, particularly buildings. Because AEC design software is largely focused on automating manual steps rather than the generation of systems.

[1] http://www.htius.com/Articles/Inside_DBTF.htm

> I suppose today’s kids are ho-hum about these recoveries of memory, but I think they’re pretty neat.

No, we think they're pretty neat too :-)

In early computer days a fair fraction of the programmers were women. They migrated from earlier computer jobs such as keypunch operators, switchboard wirers (some early computers had programable switchboards) and mechanical calculator clerks. Until mid 1940s "computer" meant the third category- a person who operated mechanical calculators.

I hope this serves as tangible evidence that women do have their place in tech. I feel it's a shame that we believe (rightfully or not) that we need extra coding schools for females.

My take on this: If more women would be into (information) technology, we would have cheap holidays on Mars!

Margaret's role is a role model.

Impressive. AND attractive. Truly a Renaissance woman.

  • This kind of comment has no place and is irrelevant, IMHO. Even though the statement may be well-meaning, it's completely gender biased.

    How many times in an article about a male entrepreneur, or computer scientist, or other interesting person, is his subjective physical attractiveness even a topic of conversation? Almost never - and that's the way it should be for everyone.

    • That's a funny joke.

      Here's a short list, some very legitimate sources that are linked on HN all of the time, that mention Elon being 'sexy', along with a Google search query link for 'Elon Musk handsome' to get a host of other examples.

      http://www.businessinsider.com/the-sexiest-ceos-alive-2014-9

      http://www.market-success.org/index.php/latest-news/407-sexy...

      http://www.futuristmm.com/future-news/6-reasons-elon-musk-is...

      https://au.pfinance.yahoo.com/photos/photo/-/19284841/the-wo...

      http://www.businessinsider.com/why-elon-musk-is-the-worlds-c... (url says coolest, article mentions 'sexiest')

      https://www.google.com/search?q=elon+musk+handsome&ie=utf-8&...

    • Didn't you know that success in computer science is 10% skill, 90% looks?

      I mean, LBVS, I'm only a Linux fan because of LINUS TORVOLDS <3 <3 <3.

      :facepalm:

    • Yeah, it was a completely unnecessary comment.

      I can see commenting about a stranger's physical appearance if they're dressed in a surprising way (if somebody shows up at a tech conference in a tux or evening gown, or dresses in a costume, it's reasonable to expect some degree of attention.) I can see commenting if they have known health problems they're recovering from (like late in Steve Jobs' life.) And I can see commenting if someone appears to be considerably younger or older than they actually are [0] (when I was a teen and my parents were in their late 40s or 50s, people occasionally asked if my dad was my brother or my mom was my sister or girlfriend.) Those kinds of comments can be gender-neutral and non-harassing, and furthermore genuinely interesting points of conversation. But we should definitely stay away from creating the impression that physical attractiveness is one of the most important qualities for women in tech, or almost any other professional context.

      [0] For example, bringing it back to Margaret Hamilton, I wouldn't have identified her as being anywhere close to age 71 in the picture at http://www.earlham.edu/alumni/homecoming-and-reunions/alumni... .

    • I agree with you, but just wanted to note that the popular press often does make commentary on "our" appearance when writing about tech founders.

    • >How many times in an article about a male entrepreneur, or computer scientist, or other interesting person, is his subjective physical attractiveness even a topic of conversation?

      All stories about Elon Musk in the mainstream media.

      3 replies →

    • > How many times in an article about a male entrepreneur, or computer scientist, or other interesting person, is his subjective physical attractiveness even a topic of conversation? Almost never - and that's the way it should be for everyone.

      I don't know, I would have liked advance warnings for some blokes who turned out disturbingly attractive, making their talks harder than necessary to follow.

    • I appreciate your point.

      If I were gay, and I saw an unusually attractive (male) entrepreneur or programmer or whatever, I'd probably mention it as well. It's not sexist when it's equally balanced to men and women.

      (However, given the demographics and percentages - male/female, straight/gay - you're going to get a lot more straight men commenting on women's looks in this sort of area.)

      1 reply →