Будучи техническими специалистами, мы мало говорим о коммуникации, управлении проектами и расстановке приоритетов.
Именно эти навыки превращают хорошего программиста в великого инженера.
Сегодня я собираюсь сосредоточиться на одном аспекте управления проектами, в котором мы явно плохи: искусстве оценки сроков.
Если есть какие-либо сомнения в том, что это действительно необходимый навык, помните тот страшный, но часто задаваемый вопрос: «Сколько времени это займетЭ» Даже если вы очень гибки и не верите в сроки, вы можете быть уверены, что кто-то сломается под давлением и назовет вам дату, к которой будет привязана ваша команда.
И когда наступит эта дата, а вы не будете готовы к запуску, ваш менеджер рассердится, потому что вы выставите ее в дурном свете; Отдел продаж будет разгневан, потому что они пообещали своим самым важным клиентам продукт сегодня; и ваша команда тоже будет злиться, потому что они работали пять выходных подряд, пытаясь уложиться в невыполнимые сроки.
Итак, давайте избегать всего этого и создадим план, в котором можно жить.
В качестве примера хочу предложить упражнение, которое я позаимствовал из курса «Введение в разработку» от Microsoft. Цель состоит в том, чтобы оценить время, необходимое для покраски комнаты.
Это тот тип упражнений, который не требует каких-либо специальных знаний о какой-либо системе.
Теперь, прежде чем прокрутить вниз, подумайте и набросайте оценку: сколько времени займет покраска комнаты? Не пропускайте эту часть — важно записывать свои мысли, чтобы вы могли следить за их развитием.
Готовый?
Надеюсь, что нет, ведь вы еще даже не знаете деталей задания! Начните с запроса спецификации и задания дополнительных вопросов.
Первоначальные требования
- Большая комната? 12 х 10 х 10 футов, самая обычная комната.
- У вас уже есть материалы для рисования? Нет.
- В комнате много мебели? А как насчет дверей, окон и других вещей, которые нужно исключить из процесса покраски? Да, вы получите фотографии.
- Какого цвета сейчас комната и в какой цвет она будет покрашена? Сейчас это цвет лягушки Кермита, и мы хотим покрасить его в светло-желтый цвет.
Хорошо, начнем с самого начала.
Запишите свою лучшую оценку, прежде чем читать дальше.
Готовый?
Разбивка на задачи
- Подтвердите все требования.
Вы должны быть уверены, что все согласны с именно этим цветом и собираются красить стены в один и тот же цвет. (5 минут)
- Узнайте, как покрасить комнату, если вы еще этого не знаете.
Вероятно, вы ответите на многие важные вопросы о грунтовке и о том, сколько времени ждать перед нанесением следующего слоя.
Перепроверьте все неясности у заказчика — возможно, вы только что узнали, что краска также различается по степени блеска.
(15 минут)
- Составьте список покупок и приобретите все необходимые материалы: краски, валики, ванночки для краски, кисти, спецодежду и т. д. (2 часа)
- «Прототипируйте» свою работу на небольшом участке комнаты, чтобы быть уверенным, что исходный цвет не просвечивается под новым.
Это может сэкономить много времени, если, например, вы не думали, что вам понадобится грунтовка, но вы это сделали (10 минут на покраску, 2 часа на высыхание).
- Снимите со стен все: картины, шторы, крышки выключателей.
Переместите мебель и накройте ее чем-нибудь.
И пол тоже, особенно если нужно покрасить потолок.
(30 минут)
- Вымойте стены и осмотрите их на наличие трещин и шероховатостей.
Вам нужно будет исправить все это перед покраской.
(1 час)
- Защитите все, что находится на плинтусах, от капель краски.
Заклейте все края (например, окна и двери) малярным скотчем.
(1 час)
- Загрунтуйте комнату.
(1,5 часа)
- Дайте грунтовке высохнуть.
(30 минут, если вы начинаете рисовать с той же точки, где начали грунтовать)
- Удалите грунтовку со всего оборудования, необходимого для покраски.
(20 минут, но можно это сделать, пока краска сохнет)
- Нанесите краску.
(2 часа)
- Убирайся.
(30 минут)
Некоторые из этих шагов могут показаться глупыми.
Дважды проверить цвет? Но если при написании спецификации упустить какие-то детали, можно потратить уйму времени на создание того, что никому не нужно.
Малейшая разница в характеристиках («Ой, ты хотел водонепроницаемую, разных оттенков и на одной стенеЭ») может стоить в будущем очень дорого, в этом случае почти вдвое превышая первоначальные сроки.
Без исследований или прототипа вы можете потерять много времени.
Отсутствие фреймворка, который делает именно то, что вам нужно, например.
А прототип потом покажет, что документация фреймворка нагло врет, и он вам не особо подходит! Если прототип был простым и дешевым, вы сэкономили много времени, пытаясь реализовать структуру.
Далее, если вы не разобьете задачи на несколько достаточно маленьких частей, вы можете упустить некоторые важные моменты.
Например, если вы забыли, что мебель нужно перевезти, возможно, у вас не будет партнера, который мог бы переместить эти гигантские книжные шкафы.
И самым важным фактором точности оценки времени является то, был ли у вас подобный опыт раньше или нет. Даже при длительных и дорогостоящих исследованиях трудно узнать, сколько слоев краски потребуется на этой конкретной стене, какова ваша скорость покраски или как влажность в комнате влияет на время высыхания.
Фактически, если вы уже выполняли подобный проект раньше, вы можете пропустить шаги с первого по четвертый.
Но если нет, то вы будете постоянно удивляться вещам, о которых забыли, и ваша первоначальная оценка времени будет все дальше и дальше от реальной.
Это значит, что более-менее правдоподобные сроки появятся только после выполнения 4-го шага.
Все сказанное до этого момента будет простой догадкой, о которой вы потом можете пожалеть, поэтому самый безопасный способ — сказать «Я не знаю, но смогу сказать через несколько дней».
Хорошо, вернемся к цветам.
По нашим оценкам, работа займет около 12 часов.
Это все? Что ж.
этапы грунтования и покраски определенно менее детальны, чем остальные.
Смиритесь с тем, что вы еще не знаете, как будет реализована эта часть, и все оценки — опять же догадки.
Применяя изложенные выше принципы, давайте попробуем пойти немного глубже.
- Приготовьте краску, смешав все в большом ведре.
Налейте немного в лоток.
(15 минут)
- Края прокрасьте кистью, не забывая об углах и оставляя все, что не должно быть желтым.
Если на полтора метра плинтуса у вас уйдет 3 минуты, а всего метров 65, то на все уйдет около двух часов.
Плюс 20 минут ползания вверх и вниз по лестнице.
А если у вас нет лестницы, неплохо было бы добавить ее в свой список покупок.
(пусть это будет 2,5 часа)
- Одним погружением валика в краску вы, скорее всего, сможете покрыть участок стены шириной от пола до потолка за пару проходов, поэтому участок длиной пять футов, вероятно, займет около десяти минут. (1,5 часа)
- Ваш «прототип» подскажет вам, сколько слоев краски потребуется.
Это может значительно увеличить ваше общее время, так что это тоже следует учитывать.
(Умножить на количество слоев с учетом фактора времени высыхания)
Итак, с одним слоем это 15 часов.
Уф, это действительно намного больше, чем мы изначально ожидали! И на всякий случай добавим еще немного времени на всякие сюрпризы, например необходимость установки сетчатого фильтра.
Итак, давайте округлим это значение до 17 часов.
Всё, приступим к рисованию, да?
Нет, все еще нет!
Внешние факторы
Да, мы прикинули, сколько времени потребуется на покраску.Но это не то, что все хотят знать.
Они хотят знать, сколько времени пройдет, прежде чем комната будет покрашена.
Это тонкое, но важное различие.
Когда я спрашиваю об ошибке, приятно слышать, что вы можете написать исправление за час, но что мне действительно нужно знать, так это то, что у вас не будет времени поработать над этим до следующей недели, поэтому я получу патч через неделю плюс один час! Тот факт, что я технически Я лишь спросил о времени создания исправления, которое может заметить только инженер.
-_- Так чего же нам еще не хватает? Перерывы на умывание и прием пищи, случайные перерывы и война приоритетов.
Работа может быть отложена из-за множества проблем, ожидаемых и неожиданных.
Возможно, сегодня нам нужно закончить пораньше, потому что сегодня день стирки или случилось что-то неожиданное.
Как вообще возможно что-либо предсказать в условиях такой неопределенности? Ответ заключается в добавлении большого количества буферного времени, основанного на предыдущем опыте.
Вы можете рассчитать множитель для своих оценок, сравнив исходную оценку для каждой задачи и фактически затраченное на нее время.
Поскольку каждый проект отличается от предыдущего, фантастической точности этот метод не даст. Но такой множитель, примененный к оценке времени всего проекта, может охватить все, включая ваш природный оптимизм, возросшее количество встреч и время, потраченное на прокрастинацию в Интернете.
Не буду вдаваться в подробности, потому что на эту тему уже есть подробная статья от Джоэла Спольски.
Планирование, основанное на фактических данных .
Хотя этот метод может показаться трудоемким, отслеживание расписаний хотя бы для пары проектов может серьезно улучшить ваши оценки.
Как и все другие навыки, этот требует времени и усилий.
Ловля плохих оценок
Все вышесказанное хорошо, если вас попросили оценить время.Но, как программисту, смета обычно приходит к вам в готовом виде вместе с проектом.
Возможно, крайний срок был установлен маркетологом, потому что они хотят, чтобы он был до Рождества, или менеджером, которому нужна дата, чтобы скоординировать свои действия с другими командами, у которых тоже есть свои сроки.
Или конкретных сроков нет, но по блеску в глазах можно сказать об Определенных Ожиданиях.
Дело в том, что если вы считаете, что сроки нереальны, так и скажите.
В идеале каждый инженер должен иметь возможность оценить свою часть работы самостоятельно, без ссылки на план, составленный кем-то другим.
Легко убедить себя, что вы сможете завершить проект за две недели, или просто не слишком беспокоиться о сроках, установленных вашим руководителем.
Понять, что все плохо, можно только тогда, когда возьмешься за настоящую работу.
Очень важно как можно раньше тщательно оценить сроки и обсудить любые нереалистичные сроки.
Просто помните, что когда вы сопротивляетесь плохим срокам, вы не Дебби Даунер, борющаяся с волшебным миром, где вы завершаете проект к Рождеству, и все отлично.
Такого мира не существует. Вы просто предпочитаете мир, в котором все ищут компромиссы между датой и набором функций для достижения цели, миру, в котором сроки переносятся или вносится огромный кусок функционала в угоду им.
Если ваш руководитель группы или менеджер проекта не верит в это, укажите им на статью.
Планирование, основанное на фактических данных .
Да, похоже, нам предстоит много работы.
Но я могу вас заверить, что для любого важного проекта тщательное определение сроков поможет избежать многих неприятностей.
Надеюсь, теперь у вас есть больше инструментов для лучшей оценки проектов.
Примечание переводчика.
Не могу удержаться и не процитировать известную в узких кругах формулу :)
Теги: #Оценка #управление проектами #программирование #Анализ и проектирование системЛюди часто спрашивают, решил однажды написать.
Срок завершения любого проекта по формуле Бобука-Бачека от 2008 года: pic.x.com/EkoRw04vy8 — Бобук (@bobuk) 25 августа 2015 г.
-
Iphone 3G — Новое Подтверждение Слухов
19 Oct, 24 -
Ядра Grub2 И Xen
19 Oct, 24 -
Росяма 2.0
19 Oct, 24 -
Мотивация Сотрудников
19 Oct, 24 -
Телефон Quickfire Поступил В Продажу
19 Oct, 24 -
Вупра
19 Oct, 24 -
Пентагон Хочет «Отшлифовать» Блогосферу
19 Oct, 24