Причин много. Вот самые частые:
Разработчики не знают, что именно нужно сделать. Они додумывают. Додумки оказываются не теми. Они переделывают. Сроки срываются.
Решение: ТЗ должно быть написано до начала разработки. И оно должно быть детальным.
Разработчик говорит: «Сделаю за 3 дня». Вы верите. Через 3 дня ничего не готово. Почему? Потому что разработчик не умеет оценивать время. Это отдельный навык, которому нужно учиться.
Решение: Оценки должны давать люди с опытом. Или, как минимум, оценки должны быть коллективными (не один человек, а вся команда).
«Сделать личный кабинет» — это задача на месяц. Её нельзя оценить. Ею нельзя управлять. Она висит как «чёрный ящик», и вы не знаете, что внутри происходит.
Решение: Декомпозиция. Крупная задача разбивается на мелкие. Каждая мелкая задача — 1–3 дня. Тогда вы видите прогресс каждый день.
Вы решили добавить «небольшую фичу». Разработчик сказал «ок, сделаем». Но он не пересчитал сроки. Или пересчитал, но не сказал вам. В итоге срок сдвинулся, а вы узнали об этом только в день сдачи.
Решение: Любое изменение — это пересмотр сроков. И это должно быть зафиксировано.
Разработчик столкнулся с трудностью. Он думает: «Сейчас разберусь». Не разбирается. Думает: «Ещё немного». Проходит день. Два. Неделя. Он молчит. Вы узнаёте о проблеме, когда срок уже прошёл.
Решение: Контроль через трекер задач. Не через ежедневные отчёты.
Ежедневные отчёты — это зло. Они убивают большинство разработчиков.
Альтернатива есть. И она работает лучше.
В трекере есть всё, что нужно для контроля:
Вам не нужно спрашивать: «Что ты делаешь?». Вы просто открываете трекер и видите статус каждой задачи.
Одно правило, которое решает 90% проблем с контролем:
Взял задачу в работу → сделал → написал комментарий с указанием коммита в системе контроля версий → перевёл задачу в «выполнено».
Всё. Никаких ежедневных отчётов. Никаких созвонов «а что там у тебя». Только трекер.
Без ТЗ вы не имеете права требовать соблюдения сроков. Потому что разработчики не знают, что должны делать. ТЗ — это основание для оценки сроков.
Разбить большую задачу на маленькие. Каждая задача — не более 3 дней. Это позволит вам видеть прогресс каждый день и вовремя замечать проблемы.
Сроки должны быть согласованы до начала работы. И они должны быть реалистичными. Если разработчик говорит «3 дня», а вы знаете, что это 2 недели — не соглашайтесь. Спросите, почему он так думает. Попросите разбить на задачи.
Раз в день (или раз в два дня) открываете трекер и смотрите:
Это занимает 5–10 минут. Не час. Не полдня. Именно столько, сколько нужно для контроля.
Сравниваете реальность с планом. Если видите отставание — выясняете причину. Не через «а что там у тебя», а через трекер.
Если в процессе появляются новые задачи — фиксируйте их в трекере. Оценивайте. Пересматривайте сроки. И утверждайте изменения.
Если срок уже сорван — не паникуйте. Но и не закрывайте глаза.
Почему сорвался срок? Нет ТЗ? Плохая оценка? Изменения в процессе? Разработчик молчал о проблемах? Без понимания причины вы не сможете исправить ситуацию.
Новые сроки — новые задачи. Пересмотрите оставшийся объём работы и назовите новую дату.
Если проблема повторяется — значит, система управления не работает. Меняйте подход.
Я не пишу код. Но я делаю то, что позволяет контролировать сроки:
Когда есть ТЗ, декомпозиция и задачи в трекере — управлять сроками становится просто.
Срывы сроков — это не «злой умысел» разработчиков. Это проблема управления.
Ежедневные отчёты не нужны. Нужен трекер задач и дисциплина.
Напишите. Я помогу навести порядок.