So many times have I noticed Hofstadter making a play on his own words to prove a point about recursion or indirection or some other fundamental concept. It's truly a wonderful piece of work.
But if you're doing just one thing. Or a few things. And/or it's a set of things/activities you've done almost exactly the same way previously, and knew how long that took, then no, this law does not hold, and sometimes things go faster or about what you expected.
Developing new software for clients and/or on top of new components, almost always is applicable however. Too many moving parts will bite you. Black boxes can bite you. Developing on the frontier, as opposed to walking along a well-trodden cow path, will bite you.
1 hour --> 2 days
1 week --> 2 months
. . .
so 10 years would have been 20 decades :)"The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time."
I'm a huge believer of this one, I tend to be a little bit (please read: TOO MUCH) optimistic when evaluating the remaining work/time/etc.
I remember telling my boss that some project would take two weeks... back in November. It's now March and I'm still not done.
It always surprises me how long things take, especially when I consider the amount of useful code I've written over the weekend or between talks at conferences...