gifts2017

Оценка и планирование проекта

Опубликовал Алексей Королев (krolya) в раздел Управление - Управление проектом

Немного статистики о проектах. Примерно 30% ИТ-проектов проваливаются. И только 16% ИТ-проектов укладываются в сроки и в бюджет. Чтобы было понятно, кто мы такие, расскажу пару слов о своей компании. Я представляю проектный офис «Савеловский» компании «Первый БИТ». Мы, собственно, занимаемся тем, что делаем проекты. И я расскажу о том, как мы делаем свои проекты.

Этапы проекта

  

Здесь я привел очень упрощенную схему проекта, всего 5 этапов.

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

  • После того, как заказчик это чудо захотел, он хочет понять, сколько это чудо стоит. Соответственно, мы переходим на этап «Оценка проекта».
  • Потом на этапе «Планирование проекта» у нас появляются какие-то сроки.
  • Дальше - этап «Выполнение» проекта.
  • И потом - этап «Завершение проекта».

Понятно, что это очень условное деление проекта на этапы, потому что я пропустил этапы согласования, подписания договоров и т.д.

 

Сегодня мы будем обсуждать два первых этапа – этапы «Оценка проекта» и этап «Планирование проекта». Я их специально выделил на слайде.

Этап оценки проекта

Итак, как мы делаем оценку проекта?

 

Я хотел бы начать с цитаты Уинстона Черчилля, который как-то сказал: «Любой умный человек может составить план победы в войне, если он не отвечает за выполнение этого плана».

И здесь мы приходим к осознанию глобальной проблемы, которая часто возникает при оценке. Оценок бывает, как правило, две:

  • Первая оценка: приходит заказчик и спрашивает, сколько это будет стоить.
    Мы ему говорим – «пять логанов». Заказчик говорит – «нет, дорого».
    Тогда мы ему говорим – «ну, тогда два». Заказчик говорит – «два? Нормально».
    Это – продажная оценка.
  • И вторая оценка – это уже более-менее реальная оценка. Когда мы начинаем двигаться дальше к исполнению этого проекта и понимаем, что все-таки два логана – это было, наверное, маловато, что все-таки проект стоит не меньше четырех логанов.

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

 

Исходя из своего опыта, я выделяю три способа проведения оценки:

  • Аналогия
  • Декомпозиция
  • Метрика

Давайте каждый из способов отдельно обсудим.

Первый способ оценки – аналогия.

Вроде все понятно: у нас был какой-то проект, который мы делали два года назад. К нам приходит заказчик и спрашивает: «Сколько это будет стоить?»

Мы с этим вопросом идем к нашему человеку, который делал этот предыдущий проект. Он чешет голову, вспоминает и говорит: мы делали этот проект за два логана, потратили на него 2000 часов.

Плюсы такой оценки понятны – это быстрая оценка.

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

  • Проблема номер 1. Нужно обоснование, в любом случае нужно будет написать, почему это было именно так.
  • Другая проблема – нет никакой гарантии того, что в предыдущий раз мы сделали этот проект правильно. Даже не того, что мы сделали этот проект неправильно, просто мы действительно могли бы сделать этот проект дешевле. Аналогия позволяет оценить только какую-то верхнюю границу примерных трудозатрат.
  • Еще проблема состоит в том, что с помощью аналогии можно оценивать, как правило, только маленькие или средние проекты. Какие-то крупные проекты по аналогии оценить невозможно, потому что слишком много возникает нюансов и тонкостей.

Аналогия – это интуитивно понятный процесс, здесь ничего сложного нет.

Следующий способ оценки – декомпозиция

Собственно, декомпозиция является стандартом де-факто всех оценок. 90% всех оценок делаются с помощью декомпозиции.

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

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

Какие у нас здесь возникают ключевые проблемы?

  • Когда мы делим проект на задачи, то может потеряться интеграционная составляющая по взаимодействию этих частей между собой. И если у вас нет человека, который мог бы в голове представить этот проект, определить взаимосвязь выделенных блоков между собой, тогда вам нужно будет делать где-нибудь внизу приписку: «Интеграционная составляющая проекта – 25%»(25% – это в лучшем случае, иногда 50%). Ведь если мы не можем правильно оценить интеграционные затраты, то, соответственно, у нас возникают дополнительные риски, которые нужно закрывать. Я думаю, что на интеграционный момент всегда нужно закладывать не меньше 10-25%.
  • У декомпозиции есть еще одна проблема – это трудоемкость ее проведения. Есть более-менее простые проекты, которые достаточно быстро можно оценить, декомпозировать. Но встречаются настолько сложные проекты, что только сам процесс их оценки будет составлять 40-50-80 и более часов. Это уже достаточно серьезная работа, которая требует выделения отдельных ресурсов.

Итак, основная мысль следующая – как бы мы ни делили проект на подзадачи, всегда должен быть некий интегрирующий человек, который представляет себе весь проект в целом. Здесь это однозначно.

Третий способ оценки - метрика

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

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

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

Какая проблема здесь есть?

  • Самая главная проблема в том, что далеко не все проекты поддаются метрике.

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

Теперь такой вопрос – как мы делаем оценку на практике?

Мы должны делать не одну, а две оценки.

  • Мы должны сделать оценку с участием сотрудников заказчика

И мы должны сделать оценку только нашими силами.

Что это означает?

 

Здесь указана декомпозиция по задачам. Есть первая задача и вторая. У нас есть две колонки с трудозатратами – колонка №1 и колонка №2.

  • В колонке №1 мы указываем трудоемкость этой задачи с минимальным нашим привлечением,
  • В колонке №2 мы указываем общую трудоемкость этой задачи.

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

А дальше мы оцениваем те задачи, которые требуют нашего обязательного участия, которые можем выполнить только мы. Например, мы считаем, что разработать правила обмена и перенести остатки по счетам можем только мы, а другие задачи можем выполнить и мы, и заказчик. У нас очень часто на встречах заказчик говорит – «это мы делаем сами, а это делаете вы». Такой способ оценки очень четко позволяет заказчику определить для себя общий объем затрат по этому проекту и дальше уже пройтись по нему.

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

Двойная оценка трудоемкости – это один из самых удачных примеров конкретизации объема планируемых затрат.

Еще один ключевой момент – мы договариваемся о том, чего мы не делаем. И это мы стараемся прописывать достаточно четко.

  • То, что мы делаем, вроде и так понятно. У нас есть некий перечень того, что мы делаем, это указано в наших задачах, в нашем перечне, в нашей оценке.
  • Но в любой оценке мы всегда приводим ограничение допущения – либо в сопроводительном письме, либо в самой оценке, либо прямо в задаче расписываем комментарии о том, что мы не делаем в ней. И эти ограничения, допущения и договоренности о том, чего мы не делаем, являются очень действенным способом снизить наши риски.

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

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

  • Первый вопрос – как понять адекватность оценки?
    • Адекватность понять можно в первую очередь следующим образом – нужно в эту оценку поверить. Адекватность – это когда вы начинаете понимать, что проект будет вот таким, и он будет происходить вот в такой последовательности, и на вот такой объем будут требоваться вот такие трудозатраты.
    • Второй способ проверки адекватности – это попросить кого-нибудь сделать повторную оценку той же работы. Примерно треть оценок, которые нам приходится выполнять, связаны с тем, что наши заказчики просят нас оценить какой-то проект. Мы понимаем, что это повторная оценка (для того, чтобы с кем-то сравниться), но мы все равно ее делаем для того, чтобы удовлетворить потребности клиента.
      Здесь сразу возникает следующий вопрос – если у вас была одна оценка (где было два логана) и появилась другая (где десять логанов), то, как понять, какая из этих оценок более адекватна?
      По большому счету, единственный способ найти ответ на этот вопрос – это понять, что написано в этой оценке и просто в те цифры, которые вам предъявляют. Если вы не верите, значит, эта оценка неадекватна для вас. Других способов оценки адекватности нет.
    • Второй вопрос – как подрядчик включает в оценку свои риски?
      Очень просто. Он просто пишет в договоре отдельным пунктом риски проекта 10% или 25%. Конечно, очень часто бывает ситуация, когда такой отдельной строчки в договоре нет, и просто все трудозатраты по всем задачам умножаются на 0.25. Но мы так стараемся не делать. Мы всегда отдельно обговариваем, что есть определенные риски, которые мы не можем смоделировать.
    • Третий вопрос – когда возникают риски?
      Риски возникают на разных проектах по разным причинам. Они могут возникать на согласовании, на трудоемкости ввода, на других этапах. Естественно, все эти риски мы стараемся каким-то образом озвучить, зафиксировать, что здесь мы видим такие риски, и мы в них закладываемся. Это – некий НЗ, который мы для себя фиксируем «на всякий случай», стараясь в этот НЗ не залезать. И обосновываем для заказчика, что если мы в этот НЗ залезаем, то это происходит по вот таким причинам.
    • И последний вопрос – что самое важное в оценке?
      Я об этом уже сказал – в нее нужно поверить. Других вариантов просто нет. Если вы верите в эту оценку – это нормальная оценка, правильная. Если не верите, значит, что-то в ней не так.

Этап планирования проекта

Переходим к следующему этапу – этап планирования. Как мы планируем проекты?

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

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

Какие вообще варианты планирования проекта у нас есть? Их тоже три.

  • Первый вариант планирования – это планирование от старта проекта. Когда у нас есть перечень работ, указанный в оценке, и мы просто раскладываем эти работы на календарный график. А дальше уже от этого откладываем какие-то сроки выполнения каждого из этапов. Это разумный, часто встречающийся подход.
  • Следующий вариант планирования – это планирование от даты X. Здесь тот же самый принцип, что и в первом варианте, только здесь мы планируем от конца, когда у нас есть некая конечная дата – например, дата запуска проекта (дата старта новой базы) – 1 января 2014 года. Соответственно, мы раскладываем перечень наших работ от этой даты назад.

И последний вариант планирования – планирование на короткий период. Такое планирование относится больше к технологиям Agile, SCRUM, когда у нас планирование идет не на весь проект, а на какой-то короткий обозримый промежуток в течение одной-двух недель. По идее, промежутки планирования при этих технологиях не превышают двух недель. Соответственно, у нас есть некий план на короткий промежуток, мы его выполняем и двигаемся дальше. Планирование на короткий промежуток тоже является одним из способов планирования.

Как не надо планировать?

Очень часто на старте проекта заказчики и исполнители пытаются спланировать проект следующим образом:

  • Все сразу
  • Детально
  • И более чем на 6 месяцев.

Не работает. Я не помню такого варианта, чтобы проект был спланирован сразу детально на срок более чем 6 месяцев, и это сработало.

Хорошо работает, когда у нас есть какие-то хорошо спланированные детали. Или может быть хорошо спланирован первый этап длительностью 1-2 месяца, а затем для следующих этапов просто указаны ориентировочные даты о том, что задача будет выполняться с такого-то по такое-то. Я считаю, что такой план может сработать с большей вероятностью.

Зачем пытаться спланировать сразу все? Сроки и так более-менее понятны, мы их планируем изначально по большим этапам.

Что надо учитывать при планировании?

  • При планировании нужно обязательно учитывать интенсивность обучения. Разные люди обучаются по-разному – кому-то требуется 2 дня на то, чтобы обучиться, а кому-то требуется 2 недели. Это достаточно существенная разница. Поэтому, когда мы приходим к этапу обучения, внедрения, когда уже идет запуск в опытную эксплуатацию – разная скорость обучения может сыграть свою роль. Это надо учитывать и понимать, что группы обучения очень разнородны.
  • Тестирование. На этапе перевода в опытную, промышленную эксплуатацию тестированием занимается заказчик. И при планировании нужно закладываться на то, что этот этап может быть очень длительным, так как тестирование обычно выполняется пользователями заказчика в свободное от работы время. А поскольку у них 100% рабочего времени занимает выполнение их первоочередных рабочих обязанностей, то этап тестирования, как правило, затягивается надолго. И если по вашим оценкам трудозатраты на тестирование должны составить 8 часов, можно спокойно увеличивать их в 4 раза.
    Я сейчас говорю не про тестирование со стороны разработчика, потому что в любом случае работу принимает заказчик. И вот эта приемка работ – она, как правило, может занимать очень длительное время. На это нужно закладываться при планировании.
  • Тестирование и загрузка ресурсов Заказчика – это связанные между собой вещи, то есть очень часто пользователи заказчика заняты так, что на проект у них времени не остается, поэтому одни и те же трудозатраты раскладываются на гораздо более длительный срок. Растягиваются и могут растягиваться очень сильно. Это тоже нужно учитывать и при планировании закладывать на это дополнительное время (по длительности задачи).
  • Объемы обрабатываемых данных. Здесь речь идет о том, что базы могут быть очень большими. Например, необходимо понимать, что перенос данных может проходить со сбоями. Поэтому если мы закладываем на него 40 часов, то на самом деле из-за большого объема данных эта длительность может быть гораздо больше просто из-за того, что могут быть сбои, перезагрузки и т.д. На эти все вещи нужно закладываться минимум раза в два.

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

По этапу планирования проекта я тоже набросал очевидный список вопросов:

  • Нужно ли планировать ресурсы с самого начала?
    Крупными мазками, наверное, надо. В любом случае надо понимать, кто будет делать задачу – разработчик или консультант. Но указывать при этом конкретные персоналии мне кажется, не стоит.
    Когда мы планируем на период больше, чем 2 недели, поименно указывать, кто будет выполнять ту или иную задачу – бессмысленно. Через 2 недели смысла в вашем планировании особого не будет. Человек может заболеть, может пропасть, может уйти в отпуск. Но мы можем заложить конкретные ресурсы на проект в целом, просто чтобы на каком-то длительном этапе понимать, что этот человек нам может понадобиться. При этом мы не говорим, что он нам понадобится на этой конкретной задаче. Он просто проходит у нас, как некий ресурс на этом проекте. А на какой конкретно задаче мы его используем, мы в рамках долгосрочного планирования закладывать не должны.
    Вообще реальное распределение ресурсов по задачам должно происходить в ходе реализации, диспетчеризации задач в рамках одно-двух недельных этапов планирования. Планировать сразу, говорить, что через 3 месяца Вася Иванов будет делать такую-то задачу – это «вилами по воде писано» или «пальцем в потолок».
    Например, у меня была ситуация – на проекте был определенный круг бизнес-пользователей заказчика, которым я должен быть демонстрировать свою работу. Соответственно, когда я раскидал задачи, связанные с ними, по месяцу, я не зарезервировал их время на работу на нашем проекте. И в результате получилось, что я пришел на первое согласование, а половины людей нет: у одних – отпуска, у других – другие задачи и т.д. Пришлось перепланировать.
    В итоге получается, что у нас, технических руководителей проектов, есть задача в целом, есть ресурсы на проекте и наша цель – сохранить эту команду проекта на все время подготовки проекта. Все. По большому счету, не важно, куда человек с проекта может уйти – в отпуск или не в отпуск, на другой проект или куда-то еще. Поэтому руководителю проекта приходится, в том числе, планировать отпуска тех сотрудников, которые входят в эту команду, и для этого мы обычно просто договариваемся с человеком: пока идет проект, в отпуска не уходим – конечно, если у нас проект обозримой длительности по времени (три-пять-шесть месяцев).
  • Какой этап самый длительный?
    Непростой вопрос. В разных проектах по-разному. Я считаю, что самый длительный, самый сложный этап – это этап внедрения, когда мы что-то накодировали и теперь начинаем это все внедрять – переносить остатки, обучать пользователей. Вот этот этап перехода от некоего концепта к опытной промышленной эксплуатации , пожалуй, занимает большую часть времени, чем другие этапы проекта.
  • И последний вопрос – можно ли не планировать?
    Можно. Но не нужно. Если перефразировать Эйзенхауэра – ни одна битва в истории человечества не прошла так, как ее задумывал полководец. Но без планирования победы не бывает.
    Планирование необходимо. В любом случае мы должны планировать проект в целом по этапам, по задачам. И что гораздо правильнее - именно контролировать ход исполнения проекта, контролировать попадание в разработанный план и работать с изменениями. Но это уже относится не к этапам оценки и планирования, а больше к этапу исполнения проекта.

Заключение

Очень часто проекты находятся в состоянии «перманентного планирования». Но надо уже когда-то начинать воевать. Потому что там что-то планируют, потом перепланируют, создают первую оценку, потом – вторую, третью, потом опять что-то планируют…

То время и ресурсы, которые были потрачены на оценку и планирование, гораздо более эффективно можно было бы потратить на то, чтобы начать что-то делать. Потому что вот эта попытка охватить все сразу, детально и более чем на 6 месяцев, не очень хорошо работает. Гораздо правильнее уже начать делать

 *******

Статья написана на основе доклада, прочитанного на Конференции IE 2013 Revolution (7-8 ноября 2013 года). Также она опубликована в журнале Инфостарта № 3  

Приглашаем вас на новую конференцию INFOSTART EVENT 2016 DEVELOPER.

См. также

Подписаться Добавить вознаграждение

Комментарии

2. Александр Белов (AlexWhite) 02.01.15 12:56
Какие-то крупные проекты по аналогии оценить невозможно

По-моему, наоборот, чем крупнее проект, тем легче воспользоваться аналогией для оценки. Например, когда-то реализовали проект в объеме 10000 часов. Вероятность того, что аналогичный проект уложится в этот объем в будущем гораздо выше, чем если сделали проект за 500 часов и думаем, что аналогичный уложится в эти же 500 часов.
3. Рамиль Кинзябулатов (raiml) 10.01.15 00:31
Статья откровенно плохая.И по форме и по содержанию. Для кого вы это писали? Уровень сочинения для средней школы.


4. Князь (Князь) 14.01.15 07:08
Статья хороша. Весьма близка к реалиям. С удовольствием подметил, что интуитивно применяемые на практике методы оценки (в основном, декомпозиция и дальнейшая оценка по аналогии) , оказывается, имеют обширное теоретическое обоснование.
Разумеется, каждый примеряет статью на свой личный жизненный опыт, так что вполне возможны критические придирки по форме и содержанию статьи от лиц, малознакомых с методами оценки трудоёмкости проектов.
5. Николай Крылов (Nikola23) 17.01.15 00:17
(3) raiml, а конкретику укажете? Где ошибки у автора? В чем его мнение расходится с Вашим. Или это сообщение добавлено, что бы заработать SM?
6. Евгений (Jonny_F) 06.03.15 13:12
Статья хорошая. Немного размыто. Но по сути – верная. Жаль что- порядок оценки раскрыт не полностью, верее очень кратко.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа