> Software development is complex enough to be
> fundamentally unpredictable.
This is false.The weather is an extremely complex system, yet we use weather forecasts all the time. What's different between weather and software is that everyone knows that weather is extremely complex, and we account for that when we think about the weather in the future. ("Maybe I'll carry an umbrella today.")
The equities market is an extremely complex system, yet we use market forecasts all the time. What's different between equities market and software is that everyone knows that equities market is extremely complex, and we account for that when we think about the price of an equity in the future. ("Maybe I'll diversify my investments.")
Forecasting the completion date of a software project is no more complex[1] than predicting the weather or the future price of an equity. In no way is it "fundamentally unpredictable." What's different is that people don't regard project estimates as, well, _estimates_.
[1] It's probably a lot simpler.