Но ведь всё делается ещё проще.
1. Разбиваем задачу на подзадачи
2. Определяем, достаточно ли у нас вводных для каждого пункта (ждём ли мы внешнего партнёра, например)
3. Если ждём, то закладываем время на этот пункт, решаем, блокирует ли это нас или нет
4. Если не ждём, то отлично, мы можем сразу прикинуть приблизительное время задачи
Ну и непосредственно, берём в работу эту "мелочь"