3 ms·
I always wondered if that meant the first 90% takes 50% of the time or 10% of the time. You could see it as the last 10% taking 90% which is the same as the fi
by Jensson 3y ago
I always wondered if that meant the first 90% takes 50% of the time or 10% of the time.
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.
- e1g 3y agoWhen you think you're almost done, you're halfway there. However long you expect X to take, you should double that. Hofstadter's Law: it always takes longer than you expect, even when you take into account Hofstadter's Law.
- hananova 3y agoHofstadter's Law implies that every task takes an infinite amount of time.
- bayindirh 3y agoSoftware is a kind of art. It's never finished, but abandoned. You can continue to polish the code without adding functions (or even fixing bugs), so yes, it can take forever. 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.
- m3047 3y agoIt makes a lot more sense when you understand two things: 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.
- BerislavLopac 3y ago> I always wondered if that meant the first 90% takes 50% of the time or 10% of the time. 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.