"You can learn more the day after a release than you can with months of internal debate."
I heard that quote at a talk from a Facebook engineer describing the initial release of news feed. If you're old enough to remember, everyone hated news feed when they heard about it. There was constant talk of quitting Facebook because of how awful news feed was. This engineer described how bad it felt when so many people were trashing his work.
Then he looked at the data. Publicly people were saying "news feed sucks!" Privately they were hitting the refresh button over and over again. If the development team at Facebook had just debated internally or run focus groups, they would have never seen actual user behavior. The only way to do so is to launch.
I think about this every time I hear that SpaceX has blown up another rocket. SpaceX seems to have a lot of failed launches. A lot more than some of their competitors. And yet, SpaceX has lower costs and higher quality products than their competitors. I would argue this isn't despite all the rockets that blow up, but because they're willing to have rockets blow up.
There's always multiple variables in any calculation. When a rocket blows up, the variable most people will think of is the cost of that rocket and its contents. This is estimated to be in the hundreds of millions of dollars. Sounds terrible right? Sounds like they should have spent more time planning out the launch so that it wouldn't blow up.
The question is: how much more planning would have been needed to guarantee a successful launch? 3 months? 6 months? 1 year? This is the other variable that is just as important as the cost of a rocket. How much is spent on operating costs? If the cost of delay outweighs the cost of the rocket, it makes sense to just launch the rocket.
Launching the rocket isn't just trying to send it to space and watching it blow up. It's about the data you can collect as it launches and blows up. That data can be used to improve the designs for the next launch. Obtaining that data with just simulations or sitting around and thinking would take significantly longer than just launching. That's assuming it's even possible to get that data without launching. All theories contain assumptions. If those assumptions are never challenged (which a launch will do), then any additional work done is based on bad assumptions. To say that you can have all the data without launching and then launch perfectly the first time is like saying scientists don’t need to run experiments to know the results.
Accepting the possibility for failure can significantly accelerate development timelines. You may experience some increased short term costs, but your long term costs are lower because you can launch sooner. Launching sooner also means you can earn more revenue sooner, which in SpaceX's case is in the billions of dollars. Delaying the launch to try and save on the cost of a rocket not only results in spending more on operating costs, but there are opportunity costs as well from delaying (or losing) revenue.
SpaceX is a great example here because one thing that's prolific in software development is the amount of fear people have in releasing. A lot of development teams are more afraid of launching software than SpaceX is launching rockets. Engineers feel the need to plan more, test more, account for more edge cases, etc. Yet, the cost of launching software is significantly lower than the cost of launching a rocket. The data gained from launching accelerates software development just as much.
Going back to Facebook, I think the "move fast and break things" quote has been misinterpreted by both critics and practitioners. Too often is it interpreted as "launch something half assed". What it really means though is that there is value in planning, but planning hits diminishing returns at some point. When those return diminish, it is time to launch so that you can collect data that'll make planning valuable again.