用写代码的工作来类比一下的话,中国和大多数国家航天的研发过程就像是只写单元测试(发动机地面试车,箭体气动模拟和震动模拟),编译通过了就直接生产环境上线(发射)。
因为缺少了美国的集成测试(全箭地面点火试车)和可回收火箭的测试环境部署(发射-回收验证飞行),这种情况下写出的代码上线不出bug基本是不可能的。
更糟糕的是因为生产环境无法debug(发动机掉海里了找不回来),只能尽量收集log(遥测数据)然后脑补bug可能是什么,然后下线回去再改你那些单元测试。就算你觉得自己发现并修好了一个bug,也不知道你修的是不是上次上线遇到的那个bug……而且这里每“编译”一次都是无数人无数个日日夜夜的手工活……
这样能开发出一个能用的产品已经是奇迹了,肯定是要当祖传代码供起来的。谁也别改,改坏了谁也负不起责任。就别提迭代了,除非需求到了实在忍无可忍的地步,再从头重新写一个。
有人觉得互联网思维造火箭是搞笑,这么看来我觉得还真不是。关键就是有这个回收,有了回收一切都好办。发动机炸了一台不用怕,还能飞回来检修。看下哪里需要改进,修好了马上换新发动机继续用。超高干质比和推重比谁不羡慕,怎么来的?飞回来测量一下,哪里冗余了可以减重就减,哪里需要补强就补。有数据才有研发的方向,你扔海里了没有数据你敢优化?所以接下来大家都要上马回收,哪怕开始的起点低一些后面迭代也容易多了。