彼女のコードは人類を月に到達させ、ソフトウェアそのものを発明した

Margaret Hamilton は、ソフトウェアという現代の概念を発明し、人類を月に到達させるはずではなかったのです。 1960年のことであり、女性が高度な技術的仕事を求めることが奨励されていた時代ではありません。 24歳で数学の学士号を取得したハミルトンは、MITでプログラマーとして就職し、ハーバード大学法学部に3年間在籍する夫をサポートする予定であった。 その後、彼女は大学院で数学の学位を取得する予定でした。

しかし、アポロ宇宙計画がやってきました。 ハミルトンは研究室に残り、人間的、デジタル的に可能なことの未来を変えるような、壮大なエンジニアリングの偉業を率いました。 ハミルトンは、週末や夜になると娘のローレンを連れて研究所に通っていた。 4歳のローレンがチャールズリバーを見下ろすオフィスの床で眠っている間、母親はプログラミングを続け、最終的にアポロの司令船コンピュータに追加されるルーチンを作成したのです」

「人々はよく私に、『よく娘を置いていけるわね』と言ったものです。 よくもまあ、こんなことができるものだ」と言われたものです。 ハミルトンはそう述懐しています。 しかし、彼女はこの仕事の難解さと新しさが好きだった。 仕事終わりにMITのファカルティ・クラブで飲んだり、廊下で「左遷される」と言ったり、ギークなジョークを飛ばしたりする仲間意識が好きだった。 部外者にはさっぱりわからない。 しかし研究室では、「私は男の一人だった」と彼女は言います。

当時も今も、技術や工学は「男たち」が支配しています。 多様性が求められる今日の技術産業における女性コーダーのように、ハミルトンは異端児だったのです。 今日のソフトウェアメーカーにとって、男子クラブの創設者のひとりが実は母親であったことは驚きかもしれませんし、「マッドメン」時代の男女不平等が今日まで続いている理由を考える際に、一考の余地があるでしょう。 まるでワイルド・ウエストのようでした」。 – マーガレット・ハミルトン

ハミルトンがキャリアをスタートさせた頃、1961年にジョン・F・ケネディが打ち上げたアポロ計画により、ソフトウェアの世界は大きな飛躍を迎えようとしていた。 ハミルトンが働いていたMITの計測研究所では、世界初のポータブルコンピュータのコードを書きながら、同僚とともにコンピュータプログラミングの核となるアイデアを発明していた。 彼女は、システムプログラミングのエキスパートとなり、重要な技術論争を勝ち抜いた。 「私がこの世界に入った時、誰も私たちが何をしているのか知りませんでした。 西部開拓時代のようなものです。 西部開拓時代のようでした。 マイクロソフト社の10年前のことで、マーク・アンドリーセンが「ソフトウェアが世界を食っている」と指摘する50年近く前のことです。 初期のアポロ時代には、世界はソフトウェアについてまったく考えていませんでした。 MITの航空学教授であるDavid Mindell氏は、著書『Digital Apollo』の中で、アポロミッションのエンジニアリング要件を示すオリジナルの文書には、ソフトウェアという言葉すら出てこなかったと書いています。 “ソフトウェアはスケジュールにも予算にも含まれていなかった “と。

mhh-apollo
Margaret Hamilton がアポロ司令船のモックアップの中にいるところ。

MIT

Margaret-Hamilton
Hamilton stands next to listings of Apollo Guidance Computer (AGC) source code.

NASA

mhh-and-an-fsq-7.ppt

1962 年4 月19 日にハミルトンと彼女の昔の同僚の1 人が一緒にいるところ。 ハミルトンはリンカーン研究所で最初のAN/FSQ-7コンピュータのソフトウェアを開発していた。 ハミルトンのソフトウェア・プログラムは、潜在的な敵機を検出するために使用されるレーダー登録監視プログラムだった。 Courtesy Margaret Hamilton

mhh-lauren-2
ハミルトンと彼女の娘ローレンさん。

Courtesy Margaret Hamilton

Presentation1
左端は、アポロ8号のミッションをサポートしながら、MITのスカマ室でスタッフの数人と座っているハミルトン氏。

Courtesy Margaret Hamilton

raytheon-lab
磁気リングを通して銅線を編むレイセオン社の従業員(Jack Poundstone/Raytheon

raytheon-lab1
「小さな老婦人」レイセオン社。

Jack Poundstone/Raytheon

raytheon-copper
レイセオン銅線のクローズアップ写真。 1965年、ハミルトンはアポロコンピュータのオンボードフライトソフトウェアの責任者となった。 当時は刺激的な時代で、アメリカは彼女の仕事ぶり次第だった。 しかし、時にはそのプレッシャーから、ハミルトンは夜も眠れなくなることがあった。 ある時、夜遅くまで続いたパーティーの後、彼女は急いでコンピューター室に戻り、突然欠陥に気づいたコードを修正した。 「私はいつも新聞の見出しを想像していたのですが、それがどのように起こったのか、そしてそれは私に戻ってくるのです」

1968年半ばまでに、400人以上の人々がアポロのソフトウェアに携わっていました。 というのも、アメリカはソフトウェアで月への競争に勝つつもりだったからです。 ハミルトン氏と彼女の同僚たちは、アポロ宇宙船のプログラミングを行う一方で、後に4000億ドル規模の産業となるものを生み出していたのです。 「飛ぶ前にすべてをシミュレーションしなければならなかった」とハミルトン氏は当時を振り返る。 アポロ計画では「リトル・オールド・レディー」と呼ばれた裁縫の達人である女性たちが、銅線を磁気リングに通す作業を行っていたのだ(コアを通る線は「1」、コアを回る線は「0」である)。 アポロでは、メモリは文字通りハードワイヤーで接続され、ほとんど破壊不可能でした。

アポロの飛行には、ほぼ同一のマシンが 2 つ搭載されました。 この70ポンドのアポロコンピュータは、他に類を見ないポータブルコンピュータであった。 ハル・ラニングやハミルトンの上司であるディック・バットンらMITの技術者が考案し、トランジスタではなく、集積回路を使った最初の重要なコンピュータの1つであった。 ミンデル氏が語るように、このシステムは人間が操作するように設計された最初のコンピュータ搭載ナビゲーションシステムであり、現在ジェット旅客機の標準となっているコンピュータ化されたナビゲーションシステムの先駆けである「フライバイワイヤー」自動操縦技術も備えていた。 MITのILで月着陸船のコードを担当したドン・アイルズ氏は、「重要なコンピューターが宇宙船に搭載され、ミッションに大きな責任を負ったのは初めてのことだった」と言う。 「私たちはそれが可能であることを示したのです。 今日、信じられないほど少ないメモリと非常に遅い計算速度でそれを実現したのです」。 それがなかったら、ニール・アームストロングは月に行けなかったでしょう。 ハミルトン、アイルズ、および MIT のエンジニア チームによって書かれたソフトウェアがなければ、コンピューターは不発に終わっていたでしょう」

これが明らかになったのは、1969 年 7 月 20 日、アポロ 11 号が静かの海に着陸する数分前のことです。 アポロのソフトウェア エンジニアであるドン・アイルズ氏が「文書エラー」と呼ぶもののために、アポロのコンピューターは、ミッションのこの重要な局面で心配なエラー メッセージを吐き出し始めたのです。 しかし、ここでハミルトン氏らの技術的な議論が勝利し、窮地を脱した。 エラーメッセージが出るのは、モジュールを月面に着陸させるために最も必要なときに、不必要な計算を何度もさせられ、コンピュータが負担しているからである。 ヒューストンのエンジニアたちは、アポロ特有の非同期処理により、コンピュータはイーグルを静かの海に着陸させるという目の前のタスクに集中することが分かっていた。 ハミルトン氏によると、ソフトウェアは、本来行うべきすべての機能を実行するための十分なスペースがないことに気づくと、エラー検出プロセスを経て、最も優先順位の高い仕事に集中したそうです。 彼女がキーボードをいじっていると、エラーメッセージが飛び込んできました。 ローレンは、シミュレーターが飛行中に、どういうわけかP01という打ち上げ前のプログラムを起動して、シミュレーターをクラッシュさせてしまったのだ。 宇宙飛行士がそんなことをするわけがないのだが、それでもハミルトンは、このクラッシュを防ぐためのコードを追加しようと考えた。 その考えは、NASAに却下された。 「宇宙飛行士はミスをしないと何度も言われていたのです。 “彼らは完璧であるように訓練されています。” そこでハミルトン氏は代わりに、NASAのエンジニアと宇宙飛行士が利用できるように、プログラムの文書に「飛行中はP01を選択しないでください」と追加するプログラムノートを作成した。 ハミルトン氏は、アポロのシステムにエラーチェックのコードを追加し、これがシステムを混乱させるのを防ごうと考えた。 しかし、それは彼女の上層部には過剰に思えた。 誰もが「そんなことは起こらないだろう」と言った。 1968年のクリスマス頃、アポロ8号が飛行を開始してから5日後、宇宙飛行士ジム・ラベルは飛行中に誤ってP01を選択してしまったのです。 ヒューストンから連絡が入った時、ハミルトンは計測研究所の2階の会議室にいた。 P01プログラムを立ち上げると、それまでラヴェルが集めていたナビゲーションデータが全部消えてしまうというのだ。 それは問題だった。 そのデータがなければ、アポロのコンピュータは宇宙飛行士をどうやって帰還させればいいのか分からない。 ハミルトンとMITのコーダーたちは、完璧な修正方法を考え出さなければならなかった。 9時間かけて、テーブルの上に置かれた8インチの厚さのプログラム・リストに目を通した後、彼らはある計画を立てた。 ヒューストンが新しい航法データをアップロードするのだ。 すべてうまくいくはずだった。 ハミルトンとローレンのおかげで、アポロの宇宙飛行士たちは帰還することができたのである。 ソフトウェア工学はハミルトンが開拓した概念であり、月面着陸からほぼすべての人類の努力に道を開くことになった。 1970年代になると、ハミルトンはNASAとアポロ計画から離れました。 1970年代には、ハミルトンはNASAとアポロ計画から離れ、複数のソフトウェア会社を設立し、率いるようになった。 現在、彼女の会社であるハミルトン・テクノロジーは、彼女のキャリアが始まったMITのすぐ近くにあり、星を見据えるコード革命の中心地となっています。

コメントする