Этот пост меня подтолкнул написать один проект, который оказался в заложниках у программиста. Проработав продолжительное время с программистами и дизайнерами, часто приходилось сталкиваться с «провальными» сроками выполнения задач по разработке софта, заявленных исполнителями. При составлении плана разработок нам приходилось учитывать, что сроки занижены на порядок и мы корректировали их в сторону увеличения — так зачастую 1 день разработки превращался в 3-4 дня. Почему и зачем?

Каждый программист делает оценку планируемой свой работы отчасти правильно, но практически всегда забывает о накладных расходах (отладка, тесты и т.п.). Превышение сроков выполнения означает лишь только то, что задача слишком велика и её нужно разбивать на подзадачи. Если время задачи выполнения оценивается опытным разработчиком, то Вы должны услышать оценки срока по каждой задаче в диапазоне от 0.5 до 16 часов, а то, что не укладывается в 16 часов (два раб.дня) следует разбивать на части.

Многие айтишные стартапы инициированы молодыми специалистами, у которых «правильная часть» оценки может просто не существовать. Ребята дают оценку по срокам выполнения практически наугад, потому что очень многие вещи, в свете отсутствия опыта, кажутся им нетривиальными или очень простыми по реализации. Важно понимать, что опыт программирования и оценочный опыт — это разные вещи. Хороший программист, который ни разу ничего не оценивал — не даст качественную оценку с первого раза.

В итоге, каждый программист в команде должен использовать свой опыт для дачи оценки сроков задач проекта. А руководителю стартапа важно четко вести учет выполнения задач и уметь анализировать всё до мелочей.

Для наглядности приведу некоторые задачи.

Оценка программиста Рассуждения программиста Что забыл программист Действительная оценка
2 минуты Там нужно поправить совсем немножечко кода, причем я знаю где это Как минимум загрузка среды, поиск и открытие нужного исходника. В зависимости от среды разработки добавьте сюда тесты, сборку, журналирование. 1 час
15 минут Я сейчас погуглю и быстренько всё исправлю Крайне редко удается найти то, что нужно с первого раза, а потом это еще нужно допилить напильником. Плюс: cборка, тесты, журнал… 2 часа
1 час Я знаю как это сделать, просто нужно сесть и написать, это займет немного времени. Одного часа не хватит, всегда появятся «фантомные» проблемы — здесь дернул, там отвалилось 3 часа
5 часов Я подключу фреймфорк и добавлю несколько полей в интерфейс. Использование фреймфорка может повлечь за собой конфликт между переменными среды, а поля должны быть отражены в базе и иметь управление через админку. 12 часов
12 часов Тут придется повозиться, создадим таблицу в базе, конвертнём в неё данные, а потом добавим логику работы и вывод. Скорее всего всплывет дополнительный функционал, который не был запланирован, но при расширении логики произойдет влияние на всю разработку в целом. 30 часов
1 неделя Я такого никогда не делал, но думаю недели будет достаточно. Задача слишком большая, чтобы большинство программистов могли оценить сроки. Такая задача должна быть разбита на понятные подзадачи. Пока не упрощена задача, давать ее на реализацию программистам верный путь сорвать сроки. 20 дней

Понравился материал?

Следите за нашим блогом

Подписка через FeedBurner