По какой причине так тяжело планировать? По какой причине фактическое время, потраченное на задачи, в любой момент выше запланированного? Даже когда мы доверяем оценки конкретно тем людям, которые должны исполнять задачу, они все равняется ошибаются. При этом они постоянно находят тысячи оправданий превышению сроков – «дернули» на другой проект, кто-то помешал, отвлекли в бухгалтерию по предлогу ИНН и так далее. Эта обстановка обычна. В этой статье мало о их источнике и проблемах планирования – «совершенном часе». Желаю нарисовать гипотетическую обстановку, которую, думаю, выяснят многие менеджеры разработчиков. Итак, предположим, что сейчас вечером было заседание по статусу на вашем текущем проекте. У вас работает разработчик Федя. Федя – в полной мере талантливый программист с солидным стажем. Вы ставите перед ним задачу Х. Выдав ему отлично сформулированную постановку задачи, задаёте вопросы: Федя, какое количество времени тебе нужно, чтобы закодировать задачу Х? Федя мало думает и говорит: четыре часа, максимум – шесть. Вы резюмируете: окей, исходя из того, что на следующий день ты начнешь в 9 часов утра, в 6 вечера мы уже включим твое творчество в завтрашний дневной билд? Федя отвечает: Никаких неприятностей, все будет хорошо. Наступает на следующий день, 6 часов вечера. Федя не готов. Ему нужно еще 2-3 часа. По какой причине не готов, растолковать толком не может. Вопрос «чем ты занимался целый день?!!» повергает его в гнев. Вы глубоко разочарованы в Феде. Оказывается, он разгильдяй – а ведь выглядит в полной мере талантливым программистом… Так тяжело в наши дни отыскать добрые ресурсы… Не грешите поспешными суждениями. Вы лучше меня знаете, что у каждого следствия имеется причина. Давайте ее поищем. Понаблюдаем за Федей во время его работы, поищем эту причину. Итак, хроника рабочего дня Феди. Реализация (4 часа) 1. 10:00. Пришел на работу. Был уведен на заседание по соседскому проекту в качестве консультанта. 2. 11:00. Выпил кофе. Встретил Ивана, вышли покурить. 3. 11:15. Сел писать UC-01. 4. 12:30. Пришли чинить кондиционер. Согнали с места, пью кофе, сходил покурил. 5. 13:00. Позвали в бухгалтерию. Продолжительно распрашивали о каких-то бумажках со не простыми аббревиатурами. 6. 13:30. Ушел обедать. 7. 14:30. Пришел с обеда, начал работату. Дописал практически все, осталась самая малость. 8. 16:00. Опять заседание. Сижу, рисую в блокноте. Деваться некуда – меня ко мне загнал помощник директора. 9. 17:00. Через час выпуск дневного билда, а у меня еще ничего не готово! 10. 18:15. Получил от DTL нагоняй: «Задача на полдня, а ты целый день с ней провозился, да еще и опоздал!» Итак, причина прорисовывается, правильно? какое количество времени Федя потратил на конкретно написание кода? 15 минут + 1 час 30 минут + 1 час 15 минут. Итого – 3 часа! На осуществление его прямых обязанностей в вашем проекте у него было всего три часа вместо четырех, которые были ему нужны! И он справился гораздо раньше – он потратил меньше чем четыре часа! Его хвалить нужно было, а не ругать! Надеюсь, сейчас Вы осознаёте, по какой причине его взбесил вопрос «чем ты занимался целый день?» Он занимался работой. Легко КПД его деятельности был вынужденно невысоким. Не по причине того, что нехорош Федя. А по причине того, что продуктивность любого разработчика влияет на то, что я именую «коэффициентом мусорного времени». Грубо говоря – это соотношение непроизводительных часов к производительным. При Феди – 5:3, что означает что для исполнения 4-часовой задачи ему был необходим целый день и еще мало следующего. В случае если взглянуть на его результат, то мы заметим, что это в полной мере справедливо – Федя лихорадочно заканчивал дописывать свой код после того, как рабочий день кончился. Сходу хочется предостеречь тех, кто уверен в том, что в их организации «мусорного времени» нет. Оно имеется в любой момент. У одних его больше, у других меньше. А сейчас самое увлекательное – как учесть влияние «мусорного времени» на ваш проект? Действовать в этом случае стоит в двух направлениях: * Учитывать «коэффициент мусорного времени» при планировании (непременно). * Снижать «коэффициент мусорного времени» методом устранения источников мусора (тема, заслуживающая отдельной статьи). Давайте по порядку. В первую очередь – как учитывать коэффициент при планировании. Перед тем как учитывать, его нужно найти. Определяется он элементарно : своим разработчикам пару маленьких и безрисковых, но осмысленных задач (при долгих либо рискованных задачах начинают действовать факторы громоздкости либо рисков, что нежелательно для «чистоты опыта»). Лучше всего на роль таких задач подходят типовые задачи по имплементации стандартных функций (отображение данных, создание элементов и т.д.) При этом просите их сформулировать оценки в «совершенных часах» (какое количество нужно времени, в случае если сесть и писать задачу от начала и до конца, и никто при этом не будет мешать, без включения просадки, и если не нужно будет имеется, курить и т.д.) После этого надавите кнопку секундомера и пускай все начинают. Сравните полученные фактические значения продолжительности с продолжительностью в совершенных часах. Поздравляем, вы взяли «коэффициент мусорного времени». Идеально это будет что-то наподобие 1:7. Итак, коэффициент имеется. Сейчас нужно учесть при планировании. Самый несложный метод сделать это – перейти от коэффициента к множителю, т.е. взять значение, на которое нужно умножить запланированную длительность проекта. В нашем случае для этого подойдет следующая формула: Пр. продолжительность = Чист. продолжительность * (продолжительность раб. дня/кол-во продуктивных часов) Не учитывая этого фактора вы каждые 10 дней «теряете» один день. А в случае если проект был длиной полгода, то по милости «коэффициента мусорного времени» вы утратите 12 дней – отстанете более чем на 15 дней… Знакомо, не правда ли? Но учет влияния мусорного времени – это, фактически, лишь добрая половина дела. Мусорное время имеется не что иное, как непроизводительные издержки, а с издержками в произвольной индустрии принято бороться. Что можно порекомендовать для противодействия издержкам ? Мусорное время можно искать в четырех вероятных областях рабочей деятельности: * Административная деятельность поддерживающих работ компании. в один раз с кошмаром следил, как строгая тетенька в очках пару раз заставляла ведущего разработчика проекта переделывать авансовый отчет, в то время как в переговорной томились представители клиента. Стоит ли сказать, что такая обстановка недопустима. Не стоит забывать, что задачи административно-хозяйственной работы – обеспечивать производственную деятельность, а не мешать ей. В своей компании, к примеру, я установил таковой порядок: бухгалтер готовит для сотрудника целый набор документов, и ему остается только поставить свою подпись. * Бюрократическая деятельность, которая связана с проектным делопроизводством. Вторая глубокая пропасть, поедающая время. Для чего заполнять издание учета рабочего времени с пятнадцатиминутной детализацией, в случае если клиент этого не требует? Для чего снабжать документ из одной страницы тремя страницами шапок, необходимых к заполнению? Примеров такого посредственного применения рабочего времени можно привести большое количество. Мой совет: обходитесь минимумом бумаги а также при этом автоматизируйте эту область деятельности по максимуму. * Рабочая ситуация самого офиса. В случае если люди начинают приходить на работу к восьми часам либо уходить в час ночи – это верный признак того, что в офисе лучше всего работается, когда никого нет. При этом может мешать множество факторов – скученность, телефонные диалоги, громкие дискуссии, духота. * Личные интересы сотрудников. Быть может, я кого-то поражу, но достаточно большое количество людей разглядывает работу как метод заниматься любыми делами за чужой счет. Чаты, форумы, поиск фильмов и музыки, онлайновые знакомства – вот далеко не полный список развлечений в рабочее время. Конечно, не нужно путать теплое с мягким – форумы возможно помогут опытному росту, коммуникаторы можно применять для общения с сотрудниками из вторых городов – но во всем добра мера. Если Вы ищете методы сокращения влияния мусорного времени, обратитесь в первую очередь к этим четырем областям. Из собственного опыта могу указать пару вещей, которые при внешней незатейливости совсем довольно часто помогают сократить мусорное время в разы. * Разрешите своим разработчикам отвечать на все письма, не связанные напрямую с рабочей деятельностью, вечером. Эта совет особенно актуальна для громадных компаний. Каждый день сотрудники приобретают как минимум два-три письма типа «сообщите», «проголосуйте», «представьте данные». Все это мешает сосредоточиться и отнимает время, при этом не является критичным. __НУЛЛ__ в случае если я проголосую по поводу качества обедов три часа спустя – неужто небо упадет в Дунай? * Требуйте применять голосовую почту на персональных рабочих и рабочих телефонах. Во-первых, это значительно сократит уровень шума в помещении, а во-вторых, разрешит людям сохранять концентрацию, поскольку они не будут отвлекаться на звонки. Голосовую почту можно проверять на перекурах либо кофе-брейках, убивая двух зайцев. * Сядьте так, чтобы видеть мониторы участников вашей коммисии. После этого необычным образом возрастет время, которое люди уделяют работе и соответственно снизится время, уделяемое auto. В большинстве случаев лучше всего расставить рабочие столы по периметру помещения прикасаясь к стенкам – это, во-первых, обеспечит достаточное число рабочего пространства, во-вторых обеспечит свободу передвижения, что принципиально важно для парного программирования, к примеру, и в-третьих, поможет вам занять стратегический наблюдательный пункт, с которого все видно. Тем не менее, лучше заявить, что все хобби в сети остаются на вечер – в конце концов, подобающа же быть у людей личная жизнь? * Станьте брандмауэром перед вашими людьми. Защищайте их от бюрократов, попыток вовлечь их в нескончаемые заседания, начать поменять им мебель в середине рабочего дня – одним словом, от любых действий, которые могут помешать им работать. Надеюсь, эти несложные советы помогут читателям бороться с коварством «мусорного времени».