不久前,去试验单位送一个试验件,接收的人说,你们试验失败两回了,这次该成了吧?

我心里一惊,原来这就是失败。但实际上,我们的试验采集到了有效的数据,暴露了潜在的风险,积累了装配经验,只是阶段性的进度略有延后。我们一直在埋头做事,验证方案,化解风险,完全没有注意到我们已经“失败”。其实,外人看到的所谓成功,也有很多不足。成功和失败的界线并非那么明显。

就在上周,4月20日晚9点半(北京时间),星舰发射,3分钟以后,第二级飞行器和第一级助推器未能按计划分离,它们在空中旋转、翻滚,解体后坠入墨西哥湾。媒体直播了整个“发射失败”的过程。

从几年前开始,媒体多次报道星舰爆炸,而且曝出的失败越来越大,直到这次空中解体。

细想一下就知道,星舰其实一直在进步。

这种不断失败的过程其实就是Debug,只不过,相比于调试软件,“调试”火箭的周期很长、成本很高。调试通不过,软件是报错,火箭则会爆炸。

马斯克用做软件的思维做工程:针对一个大项目,从第一原理出发迅速做出基础的方案和原型,通过持续“重构”,剥离出一个个“函数”或“模块”,分别独立迭代升级,在这个过程中始终保持原型的可使用状态,实现了工程技术的“敏捷开发”。

如果你看看各个星舰爆炸的原因,看看风险清单,所有这些原因都不在事先列出的风险清单上。快速迭代催生了大量的新技术,星舰正在消除所有的未知风险。(Elon Musk, 《目标火星:SpaceX变革载人航天之路》

这种快速迭代避免了长时间看不到确定性结果所导致的精神疲劳,能够维持开发人员的热情

One of the biggest challenges I think is making sure you have a corrective feedback loop, and then maintaining that corrective feedback loop over time even when people want to tell you exactly what you want to hear… – Elon Musk

It’s very important to have a feedback loop, where you’re constantly thinking about what you’ve done and how you could be doing it better. – Elon Musk (Timothy Coomer, Discipline Strategy, Chapter 7)

除了建立“正向反馈系统”、维持快速迭代,马斯克还引入了“开源”的思路:充分利用现有的成熟技术。

一个令人印象深刻的例子,是SpaceX把日常生活中常用的门把手,作为航天器舱门的开关。因为马斯克认为,生活中的门把手经过了商品化数亿次的检验,证明足够可靠,比工程师设计一个航天器专用的门把手要可靠得多,成本也要低得多。

另一个例子是航天器上的芯片。因为航天器的芯片要经受发射时的振动和太空环境中的辐射,往往需要专门设计和测试,导致价格奇高。而SpaceX采用不同的路径,它从电子市场上购买低等级的民用芯片,通过多个芯片的冗余备份设计,实现高可靠、低成本。或者从低等级芯片中进行筛选,选出那些能够适应太空环境的高可靠芯片。这样一来,一枚芯片的价格就从几百万、几十万,降低到了几千块甚至几百块。 (郑永春, 马斯克的星舰发射真的失败了吗?)

第一原理论证可行性,尽量采用成熟技术,快速迭代优化改进,马斯克以程序员的思维直指“星辰大海”。