Есть два типа подхода к оценке задач, назовем один «Стартапный», а второй «Энтерпрайзный». Сразу оговорюсь, это моя терминология и на научность я не претендую. Стартапный подход к оценке задач проходит под лозунгом: «Дай оценку пальцем в небо, и начинай писать код». А уже в процессе уточнишь сколько времени на это надо. А энтерпрайзный кардинально отличается, сначала все оцени, договорись о том, как будешь писать код, предупреди всех кого этот код может атронуть, какие методы и контракты будет использовать каждый класс, и только потом пиши код. В этом случае сильно проще предсказать время, которое потребуется на выполнение задачи, но есть ощущение, что его потребудется больше, чем в первом подходе. В крайних своих проявлениях эти подходы не применяются, и истина где-то по середине, просто кто-то тяготеет в одну сторону, а кто-то в другую. Мне вот близко дотошное планирование. Когда садясь писать код, я точно понимаю, что я буду делать. Да, для этого задачу нужно хорошо дек