Это на самом деле очень серьезный и наболевший практический вопрос, который все решают для себя по-разному.
Я для себя делаю это по эмпирической формуле Время общее = Время идеальное * коэффициент оптимизма * коэффициент работоспособности системы * коэффициент говнокода * коэффициент торговли с клиентом * коэффициент идиотизма клиента
Время идеальное - Прикидываю за сколько я сделаю задачу "за один заход", то есть сяду, обдумаю, не будет никаких сюрпризов, неприятностей и меня никто дергать не будет. Увы процесс там где я работаю построен так, что мне приходится это время оценивать не глядя в код или глядя достаточно мало.
Коэффициент оптимизма - я знаю что буду излишне оптимистичен в оценке идеального времени, поэтому обычно сразу умножаю на 2.
Коэффициент работоспособности системы - зависит от того как работают все нужные сервера и не носятся ли менеджеры по офису в поисках того кто спасет мир.
Коэффициент говнокода - часто приходится оценивать задачи, смотря в код очень мало, но контора небольшая и по тому кто делал ту или иную фичу можно примерно оценить насколько там будет все печально.
Коэффициент торговли с клиентом - у нас что-то вроде скрама и сроки согласуются с клиентами в начале каждой недели. Клиенты имеют свойство яростно торговаться, поэтому лучше сразу сроки домножить скажем на полтора. Если этого не делать, приходится тратить уйму времени на написание обоснования сроков. А если заложить а потом уступить, то все останутся довольны. По моим продуктам равен где-то полутора обычно.
Коэффициент идиотизма клиента - мы работаем с большими компаниями. Они обычно забюрократизированны, ответственность разделеная не пойми как, чего они хотят - не понятно толком. Требования могут меняться несколько раз за один день, могут данные прислать не в том формате, поломать доступ на боевой сервер когда надо выкладывать очередной релиз, ну и прочие радости жизни. Для тех с кем я сейчас работаю по опыту надо умножать на три.
Вот так и получается: думаешь день, говоришь 10 дней, делаешь за 7 и то еле-еле успевая.
no subject
Я для себя делаю это по эмпирической формуле
Время общее = Время идеальное * коэффициент оптимизма * коэффициент работоспособности системы * коэффициент говнокода * коэффициент торговли с клиентом * коэффициент идиотизма клиента
Время идеальное - Прикидываю за сколько я сделаю задачу "за один заход", то есть сяду, обдумаю, не будет никаких сюрпризов, неприятностей и меня никто дергать не будет. Увы процесс там где я работаю построен так, что мне приходится это время оценивать не глядя в код или глядя достаточно мало.
Коэффициент оптимизма - я знаю что буду излишне оптимистичен в оценке идеального времени, поэтому обычно сразу умножаю на 2.
Коэффициент работоспособности системы - зависит от того как работают все нужные сервера и не носятся ли менеджеры по офису в поисках того кто спасет мир.
Коэффициент говнокода - часто приходится оценивать задачи, смотря в код очень мало, но контора небольшая и по тому кто делал ту или иную фичу можно примерно оценить насколько там будет все печально.
Коэффициент торговли с клиентом - у нас что-то вроде скрама и сроки согласуются с клиентами в начале каждой недели. Клиенты имеют свойство яростно торговаться, поэтому лучше сразу сроки домножить скажем на полтора. Если этого не делать, приходится тратить уйму времени на написание обоснования сроков. А если заложить а потом уступить, то все останутся довольны.
По моим продуктам равен где-то полутора обычно.
Коэффициент идиотизма клиента - мы работаем с большими компаниями. Они обычно забюрократизированны, ответственность разделеная не пойми как, чего они хотят - не понятно толком. Требования могут меняться несколько раз за один день, могут данные прислать не в том формате, поломать доступ на боевой сервер когда надо выкладывать очередной релиз, ну и прочие радости жизни. Для тех с кем я сейчас работаю по опыту надо умножать на три.
Вот так и получается: думаешь день, говоришь 10 дней, делаешь за 7 и то еле-еле успевая.