Оценка времени проекта
В последнее время мне довольно часто приходится оценивать различные
проекты, которые рассматривает компания в которой я работаю. И я хочу
поделиться опытом оценки еще не созданных программных продуктов. Итак,
что же необходимо для того чтобы правильно оценить трудозатраты на
проект?
- Первое
и самое главное - это безусловно опыт, потому что если вы уже
реализовывали подобное в ваших предыдущих проектах, то вероятность того
что ваша оценка совпадет с реальностью увеличивается.
- Далее
необходимо разбить будующий функционал на как можно более независимые
блоки их можно разрабатывать в различных фазах проекта.
- Затем каждый блок разбивается на функционал, время реализации котрого не более 3х часов.
- Если
какие-либо части настолько сложны или новы для вас, что вы не
представляете себе как их реализовывать, то лучше потратить час-два на
изучение/поиск подобных решений в гугле.
Кстати,забыл сказать, что прежде чем вообще садиться оценивать проект,
можно посмотреть не реализовывал ли кто-то другой, то что вы сейчас
пытаетесь создать. Свой опыт ценне всего, но если есть чужой, то почему
бы им не воспользоваться?
- Еще один момент - оценивать
проект лучше не в одиночку(какой бы вы гуру ни были), а небольшой
группой в 2-3 человека. Если количество людей будет больше, то будет
слишком много мнений и тяжело будет быстро прийти к компромиссу, а
следовательно быстро оценить проект (за оценку проекта заказчик как
правило не платит...). Если людей будет меньше, а именно вы один, то
есть риск переоценить или недооценить собственные силы.
- Но
даже разбив проект на мелкие части и оценив каждую из них, мы не сможем
получить точную оценку проекта(честно говоря получить точную оценку
проекта невозможно в принципе), так как еще необходимо учесть
человеческий фактор, а он предполагает чтот в рабочем 8ми часовом дне
вовсе не 8 часов отдается работе:
- Чтение блогов и новостей, разгребание почты по утрам. (15 минут в день)
- Перерывы на кофе/чай. (2-3 в течении дня 10 минут на каждый)
- Различного рода собрания. Проектные собрания для решения текущих вопросов. (дважды в неделю 3 часа)
- Решение проблем с железом, не работает комп или сеть или нет тока. (раз в две недели пол дня)
- Мелкие
проблемы с ПО (не грузится студия, поставился патч после которого винда
перестала адекватно работать). (дважды в неделю по часу)
- Заполнение time journal-ов и других формальных документов. (15 минут каждый день)
- Походы в WC. Да, это тоже занимает время. (10 минут в день. В дни когда селедку запиваешь с молоком 10 минут каждый час ;)
- Написание необходимых емейлов (4 часа в неделю)
- Написание ненужных емейлов (4 часа в неделю)
- Удаление спама (30 минут в неделю)
- Болезни, прочие личные причины отсутсвия на работе (1 день в месяц)
- 8 минут - одна сигарета
- Для
подсчета времени на вышеупомянутые радости жизни можно либо подсчитать
в столбик либо воспользоваться принципом трех четвертей: берем четверть
времени от общей оценки проекта и прибавляем ее к оценке - таким
образом закладываем время на разработку новых или измененных заказчиком
требований. Затем от этой четверти считаем четверть и опять прибавляем
к общей оценке(убираем риск преодоления "подводных" камней в проекте) и
наконец от последней четверти прибавляем четверть и таким образом
закладываем время на все те радости жизни, что я описал пунктом выше.
|
Оригинал поста лежит в моем
блоге.