Your comment is actually one of the best formulations of software engineering I've ever read. However, I'd disagree, at least to some extent, with your conclusion:
"This precludes precise estimates or estimates at all..."
While we software developers do occasionally solve novel problems that can't be estimated since the methods for implementing them are not currently known (i.e., research problems), most of the problems we work on are variants of problems we've already solved, and our experience - especially if we record it and make an effort to learn from it - can be used to estimate the scope and complexity of a project (including the "discovery process").
Sure, sometimes our estimates will be way off, but an estimate that's within a factor of two or five of the actual cost of a project is more useful than no estimate at all.
The people who are paying us (management, customers, investors, etc.) will eventually want to know what they're going to get for their money and when they're going to get it - and sometimes the answers to those questions need to be answered before they provide any funding at all, since a solution might be completely useless to a customer if it's not available by a certain date.
I should have worded it "This precludes precise estimates and sometimes estimates at all", as of course depending on your knowledge of the problem domain and your field experience you can get some degree of confidence.
"This precludes precise estimates or estimates at all..."
While we software developers do occasionally solve novel problems that can't be estimated since the methods for implementing them are not currently known (i.e., research problems), most of the problems we work on are variants of problems we've already solved, and our experience - especially if we record it and make an effort to learn from it - can be used to estimate the scope and complexity of a project (including the "discovery process").
Sure, sometimes our estimates will be way off, but an estimate that's within a factor of two or five of the actual cost of a project is more useful than no estimate at all.
The people who are paying us (management, customers, investors, etc.) will eventually want to know what they're going to get for their money and when they're going to get it - and sometimes the answers to those questions need to be answered before they provide any funding at all, since a solution might be completely useless to a customer if it's not available by a certain date.