And here it is. I was hoping to find someone saying it.
Back when I was yay tall, I worked for a large web-development company. They'd spend six months to a year to draw-up a spec document that would take us three weeks to build. I quit when I found out that they spent $1.6 million dollars (this was in 1997) on the spec process alone.
Now I run my own small web development company, doing much larger things than they ever did (right from the start), and with good clients, time estimates are never more than order-of-magnitudes.
Similar to, but unlike the article, I've described programming as navigation -- walking through a small forest or through an office building. You can see the other side. You might have a compass or signs to guide you. But you need to step over the log and around the boulders, you need to say hi to the boss and wait for the elevator. You might trip over a tree root or stub your toe on a desk.
Predicting how long it'll take you to walk 100 yards through a single-floor office takes a lot more than just your walking speed, and the floor plan. It's a good bet that you'll be off by seconds at midnight, full minutes at 10am, as many as thirty minutes at 3pm, and you may be off by up to two hours if you're trying to cross at noon.