Умение корректно определять время, необходимое для выполнения заданий, — один из ключевых навыков для успешной командной работы в IT-проектах. Это важно для тимлидов, проект-менеджеров и фрилансеров любых специализаций. Наши советы по эстимации* проектов помогут вам стать более продуктивным специалистом и просто не нервировать коллег дедлайнами «с потолка».

*Эстимация — приблизительная оценка затрат на выполнение проекта.

Действительно ли проблема оценки времени стоит так остро? Компания McKinsey исследовала сотни проектов в сфере разработки корпоративного ПО. Оказалось, что в 66% проектов происходит превышение намеченного бюджета. Треть этих проектов завершают с серьезным отставанием от графика. Еще 20% команд вообще не достигают намеченных целей и задач. Более того, в 17% случаев отставание от графика и перерасходы настолько критичны, что эти проекты угрожают существованию компании. Как видим, правильная оценка сроков на разработку и тестирование — слабое место многих людей в сфере IT. Умение правильно эстимейтить отдельные задачи и большие проекты увеличивает вашу ценность как специалиста. 

Почему все настолько сложно?

На проблему оценки времени есть как минимум три точки зрения: клиента, проект-менеджера и непосредственного исполнителя. Эти взгляды часто не совпадают. Но, если все три стороны понимают, как оценить время на разработку, дизайн или тестирование, работа будет выполняться легче и повысится продуктивность. 

Второй фактор — необходимость видеть картину в целом и расставлять приоритеты. Часто за задачу берутся не понимая, что именно нужно сделать. На первый взгляд она может казаться достаточно легкой. Отсюда появляются «пять минут», за которые якобы можно «внести пару правок», «чуть подправить макет» и сдать клиенту. Но на деле они затягиваются на несколько часов, а то и дней. Как результат — по меньшей мере обманутые ожидания клиента. Приведем несколько ярких примеров. 

Ситуация 1. Простая задача от менеджера добавить одну строку в макет может быть гораздо сложнее, чем кажется. Иногда одно это действие нужно согласовать с маркетинговым и PR-отделами клиента и даже его юристами. Не зная этого, проект-менеджер наверняка установит нереальные сроки. Аналогичная ситуация — задача отредактировать правила доставки в интернет-магазине. Здесь взаимодействуют координатор проекта на стороне клиента, редактор, подрядчик, отвечающий за доставку, и проект-менеджер. Причем проект-менеджер действует, только когда все детали согласовали редактор, подрядчик и координатор. 

Ситуация 2. Представим, что необходимо поменять баннер. Загрузка файла на сайт действительно займет пять минут или даже меньше. Но только при условии, что он готов. Если это не так, нужно будет поставить дизайнеру мини-ТЗ, которое включает описание изображения, его разрешение, формат и другие детали. Дизайнеру нужно будет время на выполнение этой задачи, а приступить к ней он сможет не сразу. В методологии канбан* удобнее отслеживать такие проблемные ситуации, когда у одного члена команды скапливается все больше срочных задач, которые нельзя делегировать. Диаграмма Ганта** покажет, насколько сдвинулись сроки по проекту в целом из-за появления неотложных задач.

*Канбан — метод управления разработкой, реализующий принцип «точно в срок» и способствующий равномерному распределению нагрузки между работниками.

**Диаграмма Ганта — визуальный способ отображения запланированных задач.

Общие правила улучшения временной оценки задач

К счастью, навык правильной оценки времени можно совершенствовать не только с помощью многочисленных проб и ошибок. Существуют проверенные методы, которые помогут вам снизить риски и не выбиваться из графика. 

Соблюдая определенную последовательность действий, вы избежите простоев, проблем с заказчиками, сможете успешно выполнять проекты любой сложности. Разберем каждый из этапов оценки. 

Шаг первый. Проясняем, что нужно сделать 

Этот шаг кажется настолько простым и очевидным, что о нем забывают. Даже если вам поставили задачу написать электронное письмо, нужно понимать, какая информация будет в нем, кто адресат. Эти простые детали могут серьезно изменить срок выполнения задачи. Перед тем, как называть время, необходимое для выполнения, вы должны понимать: 

  • какие документы и материалы нужны вам для работы (это могут быть технические задания, тексты, изображения, отчеты и пр.);
  • с кем вы будете взаимодействовать, выполняя задачу;
  • какие требования предъявляет менеджер к результатам работы (например, функции сайта или приложения, параметры дизайна, объем и тематика текста). 

Приступая к оценке времени, следуйте важному правилу: сначала получите от менеджера или тимлида достаточно подробное описание задачи. Пока вам не предоставили эту информацию, не определяйте срок выполнения задачи. 

Когда информация получена, приступайте к оценке. Для начала нужно понять, атомарная (т.е. неделимая) задача или нет. Если задача не атомарная, создайте ее детализацию. 

Шаг второй. Детализируем задачу

Грамотная детализация задания помогает понять, на какие именно действия вам нужно время. Существует несколько правил того, как правильно детализировать полученное задание. 

Его нужно разбивать на очевидные подзадачи. Делайте это до тех пор, пока не станет очевидным время для выполнения каждой из подзадач. Зафиксируйте время, нужное для каждого из необходимых действий. Если сумма часов составляет больше одного рабочего дня, рекомендуем добавить еще немного времени для подстраховки. 

Не стоит излишне дробить задачу. Слишком глубокая детализация отнимает много времени на ее построение и работу с ней, а значит, исчезает весь смысл ее создания. Нет смысла также детализировать задачу, если техническое задание не содержит полной информации. 

Шаг третий. Находим проблемные подзадачи 

Действия, время на которые вы не можете оценить достаточно точно, — это проблемные подзадачи. К проблемным относятся и операции, требующие работы с малознакомыми инструментами и технологиями. Третий источник риска — зависимость от внешних факторов. Пример такой задачи мы уже приводили — это изменения в правилах доставки для интернет-магазина. В таких случаях к первой оценке обычно добавляют еще 30% времени. 

Что делать, если рисковых операций большинство? В такой ситуации лучше отложить выполнение задачи, время на которую вы не можете оценить. Проведите исследование, чтобы понять суть предстоящей работы. Этот ресерч также должен дать ответ на вопрос, насколько оправдано применение новой, не знакомой вам технологии. Если вы решите, что это рационально, приступайте к основной задаче и обязательно заложите временной буфер на непредвиденные обстоятельства. 

Шаг четвертый. Делаем финальную оценку времени после детализации 

Оценивая задачу, помните о том, что никто не работает постоянно. Мы делаем перерыв на обед, кофе, разговоры по телефону и другие подобные мелочи. Будут и задержки, которые вы не можете предсказать. Вспомните, сколько раз вы называли время на выполнение задачи без учета таких «непродуктивных» отрезков. Помните, что вы не робот, и оценивайте скорость своей работы с учетом периодов отвлечения и отдыха. 

Если вы назовете менеджеру нереальное время, он включит его в планы по проекту. Появится отставание от графика. В дальнейшем оно будет накапливаться и, чтобы исправить ситуацию, потребуются сверхусилия всей команды. Опыт показывает, что чаще всего такое напряжение не продуктивно и отставание от графика нарастает. 

Прежде чем называть время на разработку, сделайте предварительную оценку. Зафиксируйте цифру, которую вы получили, а потом представьте, сможете ли вы непрерывно кодить все это время. Если промежуток составляет более четырех часов, ответ явно будет отрицательным, а значит, нужно учесть время на обед, кофе и просмотр новостей. Главное, чтобы эти промежутки не были слишком большими. 

Еще один подводный камень — интеграция подзадач между собой. Каждый проект — своего рода конструктор. Когда все детали этого конструктора изготовлены, их нужно соединить, и на это может потребоваться значительное время. 

Когда все это сделано, вы сможете называть окончательное время на выполнение работы. 

Шаг пятый. Определяем, насколько качественно оценили время

Умение эстимейтить задачи — навык, который тоже можно развивать. Как это делать? 

  • Прежде всего фиксируйте все данные оценки времени. 
  • Обязательно используйте тайм-трекеры — сервисы, которые фиксируют время, потраченное на работу над каждой задачей. 
  • Фиксируйте разницу между вашей оценкой и реально потраченным временем. 

Измеряя разницу, вы сможете улучшить качество оценки. Чем больше данных у вас будет, тем точнее станет эстимейт. 

Несколько советов для проект-менеджеров 

Теперь посмотрим на ситуацию глазами менеджера проекта. Что делать тому, кто несет ответственность за соблюдение сроков? Как компенсировать возможные ошибки в оценке времени? 

  • К общей оценке времени на комплексные задачи добавьте 20–30%. Это поправка не только на ошибки исполнителей в оценке времени. Всегда могут произойти непредвиденные случаи: отсутствие света и/ или интернета, внезапный клиент, срочные дела, рождение детей :). Учет таких ситуаций при планировании обязательно сыграет в вашу пользу, особенно если срок на выполнение крупной комплексной задачи будет больше 14 дней. 
  • Помните о взаимозависимостях между разными задачами. При планировании учитывайте, что общее время на выполнение проекта не равно сумме времени на все его задачи. Существуют сложные блокирующие взаимозависимости между заданиями. К некоторым из них можно приступать, только когда завершены другие. 
  • Анализируйте и оценивайте то, как все члены команды эстимейтят задачи. Определите и отслеживайте коэффициент погрешности в оценках каждого из членов команды.

Где научиться оценивать время на выполнение каждой задачи и проекта в целом?

Время — ценнейший ресурс любой компании, а тот, кто умеет его использовать правильно, всегда будет ценным специалистом. Web Academy проводит курс «IT Project Management».

На занятиях студенты узнают, как  работать в Agile, как правильно поставить задачу по ИТ-проекту, какие программные инструменты использовать, как оценить часы на разработку и другие задачи в комплексных проектах. 

Программа ориентирована на проект-менеджеров, руководителей, программистов и бизнес-аналитиков. Главный навык, который вы получите, — умение работать в команде, ставить и вовремя достигать общих целей по конкретному проекту. 

Подведем итоги 

От правильной оценки времени на выполнение задачи зависит продуктивность всей команды. Поспешность и неточность в этом вопросе обернется задержками, нервами и, вероятно, даже убытками. 

Чтобы этого избежать, не торопитесь с оценкой времени. Обязательно детализируйте задачу. Сделать это можно только на основе подробного технического задания. Важно также постоянно анализировать и улучшать качество вашей оценки задач. Для этого применяйте тайм-трекеры и системы управления проектами, фиксируйте разницу между вашей оценкой и реально потраченным временем. 

Развивайте свои профессиональные навыки с Web Academy, читайте наш блог и записывайтесь на курсы.