If you're building something that nobody has ever made before, you've got unknown unknowns, and your best bet is intuition, which is inevitably going to miss the mark a bit.
See also: https://www.quora.com/Engineering-Management/Why-are-softwar...
Just kidding. The problem with estimates in SwEng is complicated. The main problem is: every system is different from another.
Anything that's moderately complex will have a variable production time because the process keeps getting improved.
Now, you're not building 10 systems of the same type. Maybe if what you did all day was building, let's say, a blog with RoR you would be able to time it to the minute (but then again, that's not how software works, and once you built it once, it's just a matter of copying files).
In traditional "factories" the design takes some time, then putting together the production line, tools, then the production.
In SW, "real" design and production go together, and "paper sw design" is fragile.