# Margaret Hamilton ## 概要 ソフトウェアエンジニアであり、MIT Instrumentation Laboratory のソフトウェアエンジニアリング部門のディレクターを務めた。Apollo 計画のオンボードフライトソフトウェアの開発を率い、「ソフトウェアエンジニアリング(software engineering)」という用語を造語した人物として知られる。 ## Apollo 計画における貢献 Hamilton は Apollo 8 および Apollo 11 のオンボードフライトソフトウェアの設計・開発を指揮した。彼女のチームが構築したソフトウェアは、防御的プログラミング(defensive programming)の原則に基づき、予期しない状況でもシステムが安全に動作し続けることを保証した。 ### Apollo 11 の優先度ベースのタスクスケジューリング Apollo 11 の月面着陸時に発生した 1202 アラーム(エグゼクティブオーバーフロー)では、Hamilton のチームが設計した優先度ベースのタスクスケジューリングが機能し、重要でないタスクを自動的に破棄して着陸に必要な計算を継続した。この設計判断がなければ、着陸は中止されていた可能性がある。 ## 「ソフトウェアエンジニアリング」の造語 Hamilton は、ソフトウェア開発を工学的ディシプリンとして確立することを目指し、「ソフトウェアエンジニアリング」という用語を導入した。当時、ソフトウェア開発は正式な工学分野としては認められておらず、この用語は当初懐疑的に受け止められた。今日では計算機科学の基幹分野の名称として定着している。 ## SRE との関連 [[SRE Book]] の序文(preface)において、Hamilton は SRE の原則の先駆的な体現者として言及される。防御的プログラミング、障害を前提とした設計、優先度に基づくグレースフルデグラデーションといった彼女のアプローチは、SRE が掲げる「障害を予期せよ」という思想と直接つながる。Apollo のフライトソフトウェアは、50 年後の SRE が追求する耐障害設計の原型である。 ## 関連 - [[SRE Book]]: 序文で先駆者として言及 - [[ソフトウェア耐障害性]]: 防御的プログラミングの原則 - [[@2016__OReilly__SRE Book - Chapter 7 Automation at Google]]: 自動化と耐障害設計の交差点 ## 出典 - Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Murphy (eds.), *Site Reliability Engineering*, O'Reilly, 2016 (Preface)