Идеальный час |
06.10.2008 11:24 |
Автор: Денис Петелин Почему так трудно планировать? Почему фактическое время, потраченное на задачи, всегда выше запланированного? Даже когда мы доверяем оценки непосредственно тем людям, которые должны выполнять задачу, они все равно ошибаются. При этом они всегда находят тысячи оправданий превышению сроков — «дернули» на другой проект, кто-то помешал, отвлекли в бухгалтерию по поводу ИНН и так далее. Эта ситуация типична. В этой статье немного о проблемах планирования и их источнике — «идеальном часе». «Во множестве компаний есть статистика об использовании рабочего времени. Но ни в одной я не видел статистики о качестве этого времени...» Том де Марко, Тим Листер. Peopleware, 2-nd Edition. Хочу нарисовать гипотетическую ситуацию, которую, думаю, узнают многие менеджеры разработчиков. Итак, предположим, что сегодня вечером было совещание по статусу на Вашем текущем проекте. У Вас работает разработчик Федя. Федя — вполне способный программист с солидным стажем. Вы ставите ему задачу Х. Выдав ему хорошо сформулированную постановку задачи, Вы спрашиваете — Федя, сколько времени тебе надо, чтобы закодировать задачу Х? Федя немного думает и говорит — четыре часа, максимум — шесть. Вы резюмируете — окей, исходя из того, что завтра ты начнешь в 9 часов утра, в 6 вечера мы уже включим твое творчество в завтрашний дневной билд? Федя отвечает — Никаких проблем, все будет в лучшем виде. Наступает завтра, 6 часов вечера. Федя не готов. Ему надо еще 2-3 часа. Почему не готов, объяснить толком не может. Вопрос «чем ты занимался весь день?!!» повергает его в ярость. Вы глубоко разочарованы в Феде. Оказывается, он разгильдяй — а ведь выглядит вполне способным программистом... Так трудно в наше время найти хорошие ресурсы... Не грешите поспешными суждениями. Вы лучше меня знаете, что у каждого следствия есть причина. Давайте ее поищем. Понаблюдаем за Федей во время его работы, поищем эту причину. Итак, хроника рабочего дня Феди.
Итак, причина прорисовывается, верно? Сколько времени Федя потратил на непосредственно на написание кода? 15 минут + 1 час 30 минут + 1 час 15 минут. Итого — 3 часа! На осуществление его прямых обязанностей в Вашем проекте у него было всего три часа вместо четырех, которые были ему нужны! И он справился гораздо раньше — он потратил меньше чем четыре часа! Его хвалить надо было, а не ругать! Надеюсь, теперь Вы понимаете, почему его взбесил вопрос «чем ты занимался весь день?» Он занимался работой. Просто КПД его деятельности был вынужденно низким. Не потому, что плох Федя. А потому, что продуктивность любого разработчика влияет то, что я называю «коэффициентом мусорного времени». Грубо говоря — это соотношение непроизводительных часов к производительным. В случае Феди — 5:3, что означает что для выполнения 4х часовой задачи ему был необходим весь день и еще немного следующего. Если посмотреть на его результат, то мы увидим, что это вполне справедливо — Федя лихорадочно заканчивал дописывать свой код после того, как рабочий день кончился. Сразу хочется предостеречь тех, кто считает, что в их организации «мусорного времени» нет. «Мусорное время» есть всегда. У одних его больше, у других меньше. Пронаблюдав порядка двух десятков компаний, я вывел следующие значения «коэффициента мусорного времени»:
Итак, лучше Вам, как менеджеру, сразу избавиться от иллюзии того, что «мусорное время» на Ваш проект не влияет. А теперь самое интересное — как учесть влияние «мусорного времени» на Ваш проект? Действовать в данном случае стоит в двух направлениях:
Давайте по порядку. Прежде всего — как учитывать коэффициент при планировании. Прежде чем учитывать, его надо определить. Определяется он элементарно просто — назначаете своим разработчикам несколько коротких и безрисковых, но осмысленных задач (при длинных или рискованных задачах начинают действовать факторы громоздкости или рисков, что нежелательно для «чистоты эксперимента»). Лучше всего на роль таких задач подходят типовые задачи по имплементации стандартных функций (отображение данных, создание элементов и т.д.) При этом просите их сформулировать оценки в «идеальных часах» (сколько надо времени, если сесть и писать задачу от начала и до конца, и никто при этом не будет мешать, без включения просадки, и если не надо будет есть, курить и т.д.) После этого нажмите кнопку секундомера и пусть все начинают. Сравните полученные фактические значения продолжительности с продолжительностью в идеальных часах. Поздравляем, вы получили «коэффициент мусорного времени». Идеально это будет что-то вроде 1:7 . Итак, коэффициент есть. Теперь надо учесть при планировании. Самый простой способ сделать это — перейти от коэффициента к множителю, т.е. получить значение, на которое нужно умножить запланированную длительность проекта. В нашем случае для этого подойдет следующая формула: Давайте рассмотрим действие формулы на примере. Предположим, у Вас есть проект, чистая продолжительность которого (без учета влияния «мусорного времени») равна 10 дням. При этом в рабочем дне 8 часов. «Коэффициент мусорного времени» равен 1:7, то есть один час в день «мусорный». Уверен, что практика покажет, что эта оценка была правильной. Важно другое — без учета этого фактора Вы каждые 10 дней «теряете» один день. А если проект был длиной полгода, то по милости «коэффициента мусорного времени» Вы потеряете 12 дней — отстанете более чем на две недели... Знакомо, не правда ли? Этот метод вполне точен и годится для оценок. Еще более точным методом может стать использование статистического моделирования — например, с помощью инструмента Riskology, разработанного Томом де Марко и Тимом Листером для моделирования влияния рисков на проекты. Получить его можно по адресу SystemsGuild.Com, и там же находится инструкция по применению. Согласно этой инструкции надо задать параметры проекта, внести новый риск непрерывного типа «Влияние мусорного времени», и задать коэффициент его влияния согласно инструкции. Но учет влияния мусорного времени — это, собственно, только половина дела. Мусорное время есть не что иное, как непроизводительные издержки, а с издержками в любой индустрии принято бороться. Что можно порекомендовать для борьбы с издержками? Мусорное время можно искать в четырех возможных областях рабочей деятельности:
Если Вы ищете способов сокращения влияния мусорного времени, обратитесь прежде всего к этим четырем областям. Из собственного опыта могу указать несколько вещей, которые при внешней незатейливости очень часто помогают сократить мусорное время в разы.
Вот, вкратце, и все. Надеюсь, эти несложные рекомендации помогут читателям бороться с коварством «мусорного времени». Как всегда, если у кого-то есть аналогичный опыт, свои инструменты или наработки, которыми он хочет поделиться, или мнение, которым он хочет обменяться — жду его по адресу Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript . Tags: |