It's impossible to predict the future. Requiring a prediction ("estimate") is simply asking for trouble. Everyone does it, and everyone gets it wrong.
Your judgement of "out by 500%" is probably just as wrong as the architect's estimate. After all, "...to date the project is still unfinished..." There are no facts available here.
No one knows the "correct" answer. And until it's done, no one will know.
And even after it's done, the "original" estimate (with or without change control) may not correlate with anything that was actually accomplished.
Estimating is a trap -- it's a rigged game. you can't win, you can't break even and you can't even get out of the game.
Dealing with bad estimates; A "legacy" estimate that appears wrong.
There it is. You don't agree with someone else's estimates. Either they omitted something you think is necessary; they had a different scope of work than you had, or they had a different productivity rate. Also, if the estimate is more than just effort, they have a different cost basis. All of which are disputable. So dispute the details leading up to the estimate. Don't dispute the overall number -- there's not real information in a summary. Dispute individual details that underpin the estimate. Find out what they were thinking.
It's just as likely that your assumptions are as wrong as their assumptions. Equally likely.
When Asked To Estimate.
You are going to be wrong.
They lie about the scope of work.
You don't know the team's productivity.
Whatever new technology is involved has been misrepresented.
You can't just throw in padding to cover these things randomly. You actually don't know and don't have a basis for "estimating". It's just guessing. Get over it.
Rule 1: Since you're only guessing, guess in small increments.
The fundamental question in any "estimating" situation is not predicting the future. You can't do that with any accuracy over periods of time much longer than a week or two. Limit your predictions to a time horizon over which you have some direct and immediate detailed knowledge. For example, the next release.
The fundamental question is -- usually -- decision-making on the part of your buyers or customers. The question isn't "what will is cost?" -- that's incomplete. The question is "will the investment be worth it?" The real question is more along the lines of "what's the cost/benefit ratio" and "when should we stop spending because more investment won't create more return?" Those are the real questions.
Rule 2: Support the decision-maker with factual information.
Most folks are best served by an Agile approach. The first release -- a month from now -- will take 5 people × 4 weeks and it will yield feature X that fixes the $1m/day losses and feature Y that fixes the $200K/week missing opportunities. You have detailed knowledge of what you're doing, so this prediction makes sense. The release after that is a little hazy.
The release a year from now is so far in the future that any prediction in just a random number. Don't sweat the details of anything more than 6 months in the future, just use simple rules of thumb.
When they ask what the TCO is, you have to be honest. "The total cost occurs when you stop paying for development. Until you stop paying, you'll always incur costs."
The real question is "what problems are you trying to fix?" or "what new opportunity are you pursuing?" and "what is that worth?"
Rule 3: Make the software less costly than the problem it's supposed to solve.
If you don't know the problem very well, the estimate will be gamed to fit the perception. Try to avoid this.
On Probability. Except for debilitating disease or accident, no part of software development is governed by actual probabilities. The "risks" are simply bad management. Generally of the form "we didn't account for the complexity of business need A or technology B". More often of the form "as we learned more about the problem or the technology, we altered the schedule" which is punished as "scope creep".
There's no probability of learning stuff and changing the scope. That's a certainty.
On Planning. There's "planning" and there's "estimating". Planning what to build is one thing, best represented as a checklist or a dependency graph. "Estimating" the effort required is based on unknowable factors.
"Planning" is ordinary good management.
"Estimating" requires unknowable knowledge. To "estimate effort" accurately, you must have source-code level of insight into the product and you must know which person is going to type that source code and what mistakes that individual is going to make. Since you can't know that, any estimate must be wrong. And often wrong the point of misleading and therefore useless.
If the estimate was out by 500% and the project still went forward, what value does an estimate have?
None. All it did was make people unhappy. But the project went forward anyway.
Since no one can see the future, getting an estimate right doesn't mean anything. Make it useful, help people make decisions.
Keep the horizon short. Deliver value as quickly as possible. Create a plan that allows the customer to cancel the project at any time and still have value.
Don't let the plan become the only "sacred truth" in the project. The deliverable functionality is sacred. Everything else should change as the deliverables change.
Don't let the plan get beyond the value it's creating.