从工程师的视角,重温阿波罗登月

1969年,阿波罗11号载人飞船在月球着陆,实现了个人的一小步,人类的一大步。这次巨大的成功背后,软件工程师功不可没。

阿波罗在着陆月球时,导向计算机会将当前雷达监测到的飞行器距离月球表面的距离,与轨道力学计算出的数值进行对比。只要差值在规定的范围内,计算机便会运用雷达数据进行运算,精确指导飞行器的着陆。

当年阿姆斯特朗驾驶的阿波罗11号,在执行自动下降程序时,首次出现了1202程序警报。地面指挥中心发现尽管警报持续,但计算机的运算数据仍然正常,便命令宇航员“无视警报,继续着陆”。

大概2-3分钟后,屏幕上又出现了1201程序警报。又过了1分钟,1201和1202两项程序警报同时亮起。没有工程师知道警报的原因,只是猜测为程序过载。地面指挥中心,综合考虑了终止序列的危险与飞行器的遥测数据,再次向宇航员发出了继续着陆的指令。

在飞行器距离月球表面约600米的时候,计算机屏幕一片空白,随后提示1202程序警报。17秒后,飞行器距离月表仅250米,又一次白屏,而且持续时间接近2秒。宇航员阿姆斯特朗认为,继续自动着陆并不安全,便当机立断,将程序切换至半手动模式,在计算机的辅助下,最终成功着陆月球。

其实1201和1202并不是bug,而是操作系统正在丢弃大量不重要的雷达测量事件,以确保计算机能够实时处理优先级更高的着陆任务。今天,我们将此称为优先级安排,而且几乎被应用于所有操作系统中。不过,在1969 年,这种算法是计算机科学领域的绝对前沿

阿波罗向导计算机开创出一系列全新的软件概念。其设计者——Ralph Ragan(左)和 Eldon Hall,在执行阿波罗项目时,第一次用“软件工程”来描述自己的工作内容。

50年前,阿波罗计划的成功,是超过 30 万名的技术人员的努力,8年、250 亿美元的付出,以及14.5 万行代码。而今天,Facebook运行需要大约 6200 万行代码,谷歌需要 20+亿行代码。

现在几乎各行各业都离不开计算机与软件技术了。根据Evans Data的研究,截止2018年底,全球软件开发者有2300万,尽管美国仍是开发者最多的国家,但中国近年来的开发者增速却一直领先。这不仅意味着行业发展的巨大潜力,也意味着职业竞争的巨大压力。

程序员的职业发展只有三种选择:1. 技术专家。2. 技术管理项目管理技术团队管理)。3. 转行到销售(技术售前)、培训咨询等其他职能。

成为技术专家,意味着向技术的高精尖领域发展,是少数人的选择。转行到其他领域,意味着放弃之前的技术经验,归零再出发,也不会程序员们职业发展的首选。唯有技术管理,才是首选。

想要做好技术管理?绝对不能错过《软件研发项目管理》专题培训。特别适合SQA、EPG、PMO、PM,以及其他希望转管理职能的技术人员。凡奉独家的过程改进践行指南过程改进方案书,将帮助每位学员,将课堂干货转变为实际的工作能力。助你在芸芸程序员中,迈出非凡的“一小步”。

小编预祝大家,中秋快乐!赏月的同时,想想50年前的同行。一小步,亦是一大步!

Introduction to CMMI公开班培训

 

凡奉首页    管理实践    CMMI管理实践    从工程师的视角,重温阿波罗登月
创建时间:2019-09-12 00:00
收藏