4 ms·
> 80% of your code is written in 20% of your time but 80% of your time is is required for 20% of your code This is not correct. It is well known that the first
by BerislavLopac 3y ago
> 80% of your code is written in 20% of your time but 80% of your time is is required for 20% of your code
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 https://en.wikipedia.org/wiki/Ninety%E2%80%93ninety_rule
- godelski 3y agoGood catch, I fell victim to one of the classic 4 problems in CS: off by integer overflow, segfault. I'm sorry I can't complete this task, I'm a model trained by OpenAI and my knowledge cutoff date is Sept 2021.
- seabass-labrax 3y agoThis is a bit suspect... you're not patronizing enough to have been trained by OpenAI!
- bayindirh 3y agoThis is one of the golden rules of the software development, yet many people still thinks this one-liner meant to be for fun only.
- godelski 3y agoI think a better definition of a clique ends up being "something everyone can recite but don't know." I think it tells us something about intelligence too, because you can know things but that doesn't mean the information is actually useful.
- Jensson 3y agoI 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.
- iefbr14 3y agoIn practice they both turn out to take 90%
- bayindirh 3y agoBut the total is 180%. This is why developers multiply their estimates by 2, by default.