Ещё раз. Степень неопределенности очень сильно мешает давать точные и правильные эстимейты.
Чем она выше - тем больше шансов, что твои эстимейты - фигня.
Поэтому в большинстве случаев люди стараются сначала взять время на ресерч/детализацию/дизайн етк, что бы минимизировать степень неопределенности, а потом взять время на имплементацию.
Но, даже в ситуациях когда этого сделать по каким-то причинам невозможно.
Есть два кейса.
Первый - есть эстимейт "на это нужно два месяца".
Второй - нет эстимейта совсем.
В первом случае при любом отклонении от плановой работы (появилась новая информация, изменились требования, обновились зависимости, риски выстрелили, что угодно) команда смотрит на новую информацию и задается вопросом "исходя из вот этой новой инфы - старый эстимейт ещё актуален, или нужно его обновлять?".
Если нужно его обновлять - команда идёт с этим к бизнесу (или лицу принимающему решения) и говорит: приключилось вот такое и такое говно, нам нужно ещё столько-то времени что бы это исправить.
И тут лицо, принимающее решение, садится и думает, что для него сейчас лучше - сдвинуть дедлайн, сделать featurecut, делегировать часть работы другим исполнителям, или ещё чего.
И действует исходя из того, как сейчас полезнее бизнесу.
Во втором случае, в принципе непонятно, когда и что будет сделано.
Потому что нету эстимейтов. Ну, окей, возьмём в пример приведенное вами "вот вам два месяца, что сделаете то сделаете".
В итоге те самые возникшие риски, новые требования, проблемы зависимостей и прочее-прочее доходит до бизнеса не сразу, как только стало о них известно, а через два месяца, когда предпринимать уже что-то бессмысленно.
Потому что не сделали.