You could see it as the last 10% taking 90% which is the same as the first and total work was actually 180%, so the first took 50% of total.
Or you can see it as the last taking 90% of the time for real, so the first 90% took 10%.
It is a factor 5 difference between the two interpretations, so it really matters a ton.
Hofstadter's Law: it always takes longer than you expect, even when you take into account Hofstadter's Law.
OTOH, when you give that ~180%, you reach to a maturity level most of your users perceive as "done", so what's most developers are after is that point.
Then, there are passion projects, which go on for 30+ years (Vim, BBEdit, etc.), where people work on it because they love the project and they're able to.
*: BBEdit is closed source/commercial software, but it sells because it's well crafted. It's not crafted to sell well.
1) Untrained software engineers' unconscious inclination is to estimate the amount of time after which it's probably time to reassess, rather than complete.
2) The distribution of actual completion is not a normal distribution with respect to estimates of completion, it is log normal: there's a really really long tail.
Essentially the latter; what you thought will be 90% the time ends up being just the first 10%. And the rest is spent on the 10% of the code, plus everything else that is part of the project besides the code: reviews, testing, revisions, deployment issues etc.
This is not correct. It is well known that the first 90% of the code takes the first 90% of the time, and the remaining 10% of the code takes the other 90% of the time. [0]
[0] https://en.wikipedia.org/wiki/Ninety%E2%80%93ninety_rule