Варианты, которые есть у менеджера, чтобы ускорить разработку и успеть в срок (из моего опыта):
a) Помочь преодолеть имеющееся затруднение. Если разработчик "буксует", нужно понять в чем конкретный затык. Помочь может совет опытного коллеги, пример чужого кода и даже умение пользоваться поисковиком.
b) Предложить более эффективный способ решения задачи. Как известно, любую задачу можно решить несколькими способами. Иногда разработчик почему-то выбирает самый длинный, крутой и извилистый :)
c) Устранить имеющееся непонимание постановки задачи. К сожалению, иногда задержка вскрывает, что задача была неправильно понята и делается лишняя работа.
d) Уменьшить объем работ, изменив постановку задачи. В данном случае задача понята верно. Но если можно упростить саму задачу без принципиальной потери ценности функционала - это неплохой вариант.
e) Подключить дополнительные ресурсы к решению задачи (подключить дополнительных людей, купить больше их времени). Если это возможно, задача распараллеливается (при условии, что усилия на интеграцию не съедают экономию). Если нельзя распараллелить, применяем парное программирование. Сверхурочные - способ не требующий умственных усилий менеджера, а потому первым приходящий в голову. Не очень хороший вариант, т.к. проблема со сроками перетекает в проблему со стоимостью.
f) Принять решение о замене исполнителя задачи. Это крайний случай, но бывает, если ошиблись и поручили задачу разработчику, который ее "не тянет".
Задача менеджера - принять оптимальное решение, исходя из текущей ситуации.
Если ничего из вышеперечисленного не сделано или не возымело достаточного действия, то недостающие ресурсы и время на автомате начинают черпаться за счет снижения качества. Делаются "костыли" вместо основательных решений, нарушается технологический процесс (время экономится на дизайне, отладке, ревью, тестировании и т.д.)