When you change an agreed decision, you always have to pay some cost. Wouldn't you rather know about it and make that cost visible?
I doubt anyone would disagree. Still, it happens that we treat estimates as this holy grail, when most of the time the original estimate never includes all the work.
Going back to the booking calendar. That thing definitely looked ready to build. We estimated the implementation based on the design and what the team understood at the time. Then keyboard testing revealed how difficult it was to find an available appointment.
That was never accounted for in that original estimate. Now someone needs to explore another interaction, discuss it with the designer and check whether it helps. That takes time before the developer can finish the implementation.
If all you see is the roadmap and how tickets move across, it might look like development stalled. That's because inside the team, people are answering a product question the estimate assumed was decided already.
I think these "delays" are to be expected. The problem is when we treat all of this as slow implementation and blame the estimates. We'll then fall into the trap of fine tuning estimates. We'll keep asking for more accurate estimates without changing what those estimates are based on.
You might think the solution is to either ditch estimates altogether or double the estimate to account for the unknown. I don't like either of those solutions. I'd rather spell out the uncertainty. Like, look, we know how to build this, but there's plenty of room for error, so don't hold us to the exact estimate we'll give you.
And when we do come across some unknown later, we have options. We can explore the problem first, because we have room in the plan for what we've just learned. Or we can decide to postpone it.
It's probably impossible to find out and answer every question before development starts. Asking teams for certainty they don't have won't make delivery more predictable.
But we can distinguish work we understand from work that still needs figuring out.
An estimate is more useful when everyone knows which of those it includes.