原文地址:英文版地址,作者作者Jake Edge,发表于2013年3月6日。
文中灰色背景的是我的一些不成熟的看法,部分数据和资料来源于网络和相关论文,由于是非正式发表,也就不标注来源了,有兴趣的朋友可以自行查证,欢迎留言讨论。
在2013年嵌入式Linux大会的第二天,SpaceX的罗伯特·罗斯(Robert Rose)谈到了“从经验中学到的航天器开发软件”。在演讲中,他讨论了SpaceX如何开发其基于Linux的软件,以完成将航天器送入轨道甚至最终超越轨道所需的各种任务。他说,Linux在SpaceX上无处不在,从台式机到航天器,应有尽有。
Rose是SpaceX航空电子飞行软件团队的负责人。他曾是一名视频游戏程序员,并说从这项工作中获得的一些教训对他目前的工作很有价值。他于1994年通过Slackware开始使用Linux。
作为一家公司,SpaceX坚信要使人类成为多行星物种。他说,火星殖民地是目标,但要到达那里,就需要火箭和宇宙飞船。目前发射航天器很昂贵,因此有必要“降低成本”以达到目标。
这里说明了SpaceX的公司愿景,并将公司愿景通过分解,让程序员了解到了公司愿景,公司愿景通过分解落实到的部门愿景,以及和每个人工作的联系。很多伟大的公司都设立了很明确的公司愿景,并将每一个员工的工作与公司愿景相连接,从而增强员工的归属感和责任感。
Rose说,该公司遵循可重用性的理念,这有助于降低成本。航天飞机计划已经对此进行了一定程度的尝试,但是SpaceX对此进行了进一步的研究。不仅硬件组件可以在不同的航天器之间重复使用,而且软件也可以共享。该公司在自己的工厂从头开始制造火箭,而不是外包各种碎片。这样可以更紧密,更频繁地进行硬件-软件集成。
复用的重要性,复用的前提是在总体设计中充分的解耦,将总体分解成一个一个的模块,并对模块进行充分的测试与评估,并制定完整准确的模块使用说明,才能让模块真正成为资产。这一点其实非常难以达到,一方面需要总体设计人员的水平很高,这样才能充分的解耦;另一方面还需要对模块资产有充分的掌握,才能在总体设计中充分利用现有资源;此外,还需要员工有较高的学习热情,才能在最终实现中利用模块而不是重新造轮子。
Rose在SpaceX的早期发现很难适应的一件事是该公司对“最终目标”的关注。在做出决定时ÿ