Hofstadter’s law is best explained as:
It always takes longer than you expect, even when you take into account Hofstadter's Law
In software application, it normally means software estimates are always too small, even when you keep in mind Hofstadter’s law and add some extra time to the estimate!
There is a huge amount of software practices/thinking to try and get estimates to be much closer, one of the main ones being to estimate work in effort not time.
To know exactly how long something will take is very difficult, and is more often than not a guess or guideline and nothing more.
But to estimate in effort is often used as you can break it down more discretely into (for example): easy work, medium difficult or hard work.