人类登月无名英雌 软件工程界祖师奶奶 阿波罗11号成功全靠她

撰文: 吴慕儿
出版:更新:

盖茨、乔布斯、朱克伯格、贝索斯、马云、马化腾,全球科技界猛人,一直数下去的话,继续都是男士。任凭是软件或系统工程,以至资讯科技,这堆名称概括出来的行业,多年来均由男性主导,至少大家理所当然是这样以为。可是假如没有她,以上的主角们可能连出场机会也没有,阿波罗11号亦不能成功登月。她,就是原本一心当数学家的元祖级软件工程师玛嘉烈咸美顿(Margaret Hamilton)。

全靠玛嘉烈设计的软件,阿波罗11号才能顺利登月。(美联社)

1957年10月4日,苏联成功发射历来首枚环绕地球轨道飞行的人造卫星史普尼克1号(Spunik I),时值二战后冷战时期,美国为首的西方国家为之震动,开展美苏太空竞赛年代。1960年4月12日,苏联的加加林(Yuri Gagarin)驾驶太空船环绕地球轨道一周,成为太空航行第一人。

一路陷于落后状态的美国,苦思突破良策,以落实启动载人登月计划阿波罗(Project Apollo)为竞选政纲的肯尼迪,上任后立即“找数”,在国会发表演说游说议员拨款,1962年再发表《我们选择去月球》公开演说,为耗资过百亿美元天文数字的庞大计划,赢得民心。他的目标,不是追平而是超越苏联,利用最先进的太空科技,进一步强化国民自信心和优越感。

MIT自由人

总统先生行政指令“话咁易”,真正做出来又是另一回事。从厄勒姆学院数学系毕业不久的玛嘉烈,1959年为麻州理工学院(MIT)一位教授工作,接下人生中首份有关软件的工作。计划是待丈夫在哈佛毕业后,便轮到她返回校园进修抽象数学(Abstract Mathematics),朝着当数学系教授的目标迈进。后来,MIT一个又一个计划找上她,且愈来愈具挑战性,让她在MIT多个学系和实验室中游走。“我靠自学,学习了几种软件语言,在罗伦士教授(Professor Edward N. Lorenz)教导下,学懂如何建立软件。”

首先是气象分析系统,然后是在林肯实验室,为早期的美军防空系统SAGE(Semi-Automatic Ground Environment)编写软件。正当她预备到布兰迪斯大学研究院进修,命中注定的机会出现了,“那时大约是1963或64年,我收到MIT获得美国太空总署(NASA)合约,负责开发载人上月球软件的消息,而且MIT正在物色人选参与这计划。这像是一生只有一次的机会,我立即致电MIT看看能否加入。”数小时内她已跟负责的计划经理会面,并在即日获聘,那年她只有24岁。

玛嘉烈今年获颁总统自由勋章。(Getty Images)

“上司根本不知我们做什么”

那年头,软件工程尚未独立成科,很多时候连管理层也不清楚他们在干什么,“工作环境跟我在MIT其他岗位相若,不拘小节,但认真。在那时,软件对管理层而言仍是一个谜、是个神秘黑色盒子,让我们得到完全的自由与信任。”

她的团队在正确时间、正确地点出现,她深感幸运,过程之艰辛却非笔墨可形容。“当时没有学校或学系可学习现在的‘软件工程’或‘系统工程’,当我们找不到答案,便要发明一个出来。我们要设计出首次造出来便能用上的东西,幸好团队内大都是20出头的大无畏年轻人,挑战愈大,乐趣愈多。那时根本没有时间当新人,大家都是边做边学。”

害怕成为报章头条

玛嘉烈大学以至职业生涯,无论在数学系就读,还是当上程式员,都是生活在男性主导的圈子,在男女尚未平等、女性不获担当“重要职位”的年代,当上全美以至全球最吃重的高科技计划核心小组主管,压力之大可想而知。有一晚,深夜派对后她匆匆赶回实验室,纠正一个忽然发觉是错误的编码,“我时常幻想,(失误)会在报章头条出现,然后他们会将矛头指向我。”

玛嘉烈团队设计的阿波罗登月计划程式,需在太空人出发前,模拟一切可能发生的情景,不过,别忘记,程式需要在巨型Honeywell电脑上运作,往往每小部分都需要通宵达旦才能完成。

一张经典照片,正是她身旁堆砌了一堆几乎跟她一样高的厚厚纸张,内容全是她为阿波罗11号撰写的程式编码。“我们不单要确保所有东西运作良好,而且软件还要配合硬件、人手和任务本身一起工作。”

那是史上首套由人手操控但具备线传操控(fly-by-wire)技术的机舱电脑导航系统,成为现今商业客机基本配备电脑导航系统的先驱。

我们是全世界最幸运的人,那时没有时间当新人,于是别无选择下成为先驱者。
玛嘉烈咸美顿
我们选择去月球!这样做不是因为那很容易,而是因为那很困难,这个目标会迫使我们组织和运用最优秀的精力与技巧。我们愿意接受这项挑战,不想作任何拖延,我们想要赢……
节录自美国总统甘迺廸1962年《我们选择去月球》演说
能加入MIT阿波罗计划团队,玛嘉烈视为“一生只有一次”的黄金机会。(news.mit.edu)

后知后觉的嘉许

阿波罗11号上的3位太空人杭思朗(Neil Armstrong)、艾德林(Edwin Aldrin)、柯林斯(Michael Collins),成为了人类英雄,登月同一年经已获总统尼克逊颁发象征美国平民最高荣誉的总统自由勋章。翌年,阿波罗13号上3位太空人和8位NASA工程师或后备太空人,同获得此荣誉,却没有幕后功臣玛嘉烈以及MIT工程师的份儿。

而于阿波罗11号任务完成之后,她转战了商界,创立了软件公司,继续发展防止错误和容错(fault tolerance)科技,并获空军和其他政府部门采用,同时又协助创立开放式架构系统、人机介面、端对端测试、软件稳定性测试等现今业界标准编码规范,就连“软件工程”这个名称,也是由她首先采用,令它与其他的工程学科看齐。玛嘉烈其后的事业、名声也许不如阿波罗11号响亮,她在业界祖师奶奶的地位却是无可取代。

玛嘉烈所设计的阿波罗导航软件,在所有阿波罗载人太空任务之中,均没有出现任何的程式错误(software bugs),功能难以置信地强大、可靠,经转化后广泛用在太空实验室和穿梭机中。

2003年,NASA后知后觉,向玛嘉烈颁发特别大奖,以表扬她在阿波罗软件开发的创意。今年美国总统奥巴马,亦向已届80高龄的她颁发总统自由勋章,赞扬她代表着“将人类送上太空的一代无名英雌”。这项荣誉,她早在47年前已该获得,好教那些高叫“女孩不懂编码”(Girls can’t code)的工程师闭嘴,诚然,迟到总好过永不。

玛嘉烈设计的系统助阿波罗11号上的3位太空人完成登月任务,创造历史。(路透社)