Реальное рабочее время
Меня продолжает сильно интересовать проблема оценки сроков проекта. В этой связи я наконец добрался до книги Steve McConnel Software Estimation: Demystifying the Black Art, которая в русском переводе имеет совершенно удивительное название "Сколько стоит программный проект". (на самом деле объяснить название конечно можно, поскольку в содержании книги сроки, затраты или рабочее время считаются более или менее взаимозаменяемыми понятиями).
Книга на самом деле очень неплохая и ознакомиться с ней любому, кому по своей или по воле начальства, приходится писать планы, без сомнения стоит.
В книге описаны различные способы оценки сроков (или затрат) на выполнение проектов, но меня заинтересовало вот что.
В какой-то момент любые, даже самые сложные и "научные" способы оценок сводятся к вопросу: "А тебе сколько времени будет нужно для того, чтобы сделать вот это?". И в этот момент называется число (или диапазон, или лучший худший и наиболее вероятный вариант - неважно).".
Насколько это число соответствует действительности - неважно, лучшего у нас все равно нет. Однако важным является то, учитывает ли это число время, проведённое на работе, но при этом потраченное на "нерабочие дела" - интернет, кофе, перекуры и так далее.
В связи с этим какое-то время назад я организовал на RSDN голосование поэтому поводу. Вот вопрос, который я задавал и результаты голосования:
Вот такие результаты. Думаю, что при планировании очень стоит помнить про то, что не все время, проведённое на работе, действительно уделяется работе.
Замечания
Там же, на RSDN, к данному опросу было дано несколько замечаний, на которые я думаю важно ответить. Я здесь попробую кратко отразить замечание и дать на него комментарий.
- "Подобные подсчеты бессмысленны". Бизнес сторона программирования требует выдачи сроков. Более того, часто невозможно даже давать сроки по Steve McConnel - при помощи диапазонов. И человеку, который должен составить оценку волей или неволей приходится выдавать прогноз. И лучше если у него есть понимание того, что выданная оценка скажем в 5 часов рабочего времени - это в реальности два рабочих дня.
- "Настоящий программист может думать о работе и дома и во время отдыха, поэтому непонятно что считаем". Действительно, это так. И действительно это не особенно то и подсчитаешь. Программа подсчёта рабочего времени может подсчитать сколько времени у меня на экране была открыта Visual Studio, но вряд ли догадается, что я в это время думал про то, как здорово понырял в красном море. Тут мой ответ таков - лучше хоть какие-то, пусть даже заниженные оценки, чем никаких.
17458907.195e50a0db7e7428ccd693c67f635406.1186223110.9626a2d31cf793845f340f27c23ea8b8
3 комментария:
Эти данные нужны управленцу исключительно для того, чтобы точнее планировать работу и выдавать более точные сроки, но ни в коем случае для того, чтобы выделять "лучших" и "худших".
Предполагается, что управленец знает об этом и использует эти данные только для оценки сроков. А это не всегда именно так.
К сожалению, это правда. Мне кажется, что руководитель, который оценивает своих подчинённых исключительно по формальным признакам, может попасть в очень большую ловушку. Помимо того, что подобный контроль вряд ли заканчивается хорошими отношениями в коллективе, время которое человек работает, как мы все отлично знаем, далеко не всегда сочетается с количеством и качеством сделанной работы:
"А ведь Мери Энн-то как придёт из школы, так сразу садится за уроки, и учит, учит, до самой ночи учит..."
Однако с другой стороны, оценки делать все равно нужно, поэтому я и создал это голосование на RSDN - хоть какая-то информация лучше чем никакая.
Вы знаете, я тоже проводил похожие опросы, только в среде фрилансеров.
Фрилансерам значительно легче оценивать своё реальное рабочее время. С одной стороны они "сами себе менеджеры", а с другой обычно они вынуждены выставлять заказчику именно эту цифру.
Так вот. Наблюдается практически единодушное мнение, что реальной работой они занимаются примерно 4 месяца в году.
Иногда это время "распылено", и каждый день по 2-3 часа делается работа. Иногда работа идёт "запоем" месяц-полтора часов по 6-18 в день, после чего пару месяцев работать просто не получается.
Я не думаю, что это специфика именно фрилансеров. Я думаю, что это больше похоже на специфику профессии. Не может хороший программист интенсивно и эффективно работать по 6-8 часов в день 11 месяцев подряд. И не важно, он сидит при этом в офисе и работает на дядю, или дома и работает на себя.
P.S. Кстати, эта цифра (4 месяца в году) неплохо коррелирует с известным правилом: умножать estimate программиста на число Пи. :)
Отправить комментарий