Project Calc — система для расчета трудоемкости и стоимости проекта
Эта история началась довольно банально — я ошибся с оценкой трудоемкости проекта по разработке приложения, которым занималась наша небольшая компания. Когда проект был завершён, я пересчитал реальную трудоёмкость и обнаружил, что вместо запланированных 4 человеко-месяцев ушло целых 10. Ошибка в 2,5 раза.
Во-первых, это было болезненно – мне пришлось покрывать разницу из собственного кармана. Во-вторых, мне стало стыдно, всё-таки 30 лет в ИТ, а такой промах.
Как оказалось, я не одинок в подобных ошибках. Если верить отчету The Chaos Report, собранному по состоянию на 2015 год, лишь 36% проектов завершились в заданные сроки, 45% – с опозданием и 19% – полностью провалились.
При этом авторы отчета сообщают, что для получения этих показателей им пришлось переосмыслить понятие успешности проекта. Для целей данного отчета проект считается успешным, если его результаты признаются заказчиком "удовлетворительными". Получается, что если использовать классические характеристики проекта On time, On value и On target, то процент проектов, завершенных вовремя, придется значительно уменьшить.
Согласно исследованиям, около 40% проектов по разработке программного обеспечения не выдерживают сроков из-за недооценки усилий и возникновения непредвиденных проблем.
Разработка ERP-системы для Revlon (США, 2018 год)
Компания Revlon попыталась внедрить ERP-систему SAP, что привело к значительным сбоям в операционной деятельности. Компания потеряла более 70 миллионов долларов и столкнулась с судебным иском от акционеров. Причина провала – недооценка сложности проекта и плохое планирование.
Проблемы с проектом разработки ERP-системы для Levi’s (США, 2008 год)
Внедрение новой ERP-системы для управления цепочкой поставок привели к проблемам с выполнением заказов и сбоям в логистике. В результате в течение недели заказы выполнялись некорректно и компания столкнулась с падением чистой прибыли на 98%, потеряв в итоге 192 миллиона долларов. Основная причина провала – недооценка сложности миграции данных и интеграции.
Внедрение SAP в DHL (Германия, 2013-2015 гг.)
Компания DHL инвестировала 345 миллионов евро в проект по внедрению системы SAP для улучшения логистических процессов. Интегратором в проекте выступала компания IBM. Однако проект столкнулся с проблемами из-за недооценки сложности интеграции, недостаточной подготовки персонала и технических сбоев. В результате компания понесла значительные убытки, проект признали неудачным, а 345 миллионов евро списали в убыток. Примечательно, что в эту сумму вошли 37 миллионов евро, которые были потрачены для возврата на старую систему.
Как мы видим, оценка предстоящего проекта дело сложное, трудное и чреватое последствиями. Ошибиться очень просто.
Хьюстон, у нас проблемы!
Откуда берутся ошибки?
Можно выделить два ключевых фактора: политический и технический.
Политический фактор упрощенно можно описать как противостояние исполнителей и руководителей. Первые хотят добиться результата, но без нервов. Вторые тоже за результат, но они при этом хотят оптимизировать сроки и косты. Стороны пускают в ход разные приемы, приведу, вероятно, самый распространенный: исполнители завышают оценку, а руководители ее занижают. Тут нет виноватых, так исторически сложилось.
Техническая фактор – это существующие сегодня подходы к оценке проектов по разработке и внедрению программных продуктов. На мой взгляд, можно выделить следующие:
- Экспертная оценка (например, метод Дельфи);
- Оценка по аналогии (например, сравнение с прошлым проектом);
- Параметрические оценки (например, COCOMO II, метод подсчета функциональных пунктов – FPA);
- Функциональные оценки (например, анализ сценариев использования, оценка снизу вверх);
- Оценка с помощью методов, ориентированных на обучение (искусственный интеллект, нечеткая логика, Байесовская сеть).
Предполагается, что для уточнения результатов оценки, полученной одним методом, нужно использовать оценку другим методом. Например, экспертную оценку хорошо было бы проверить с помощью подсчета функциональных пунктов. Если оценки коррелируют, т.е. показывают близкие результаты, скорее всего мы правильно угадываем сложность проекта.
Так как в рамках моего проекта я облажался сразу в двух группах: экспертной и оценке по аналогии, возникло желание больше не испытывать такую боль и сделать систему, которая позволяет проводить функциональную оценку проекта. Дополнительно в рамках такого подхода было бы неплохо формулировать различные гипотезы – например, что будет, если мы откажемся от реализации каких-то частей продукта?
Ну все, хватит воды, пора переходить к тому, что у нас получилось и как устроена наша Система.
Роль системы Project Calc в жизненном цикле проекта
Жизненный цикл любого проекта условно делится на две ключевые стадии. Вторая стадия это реализация или выполнение проекта. Для этой стадии характерно применение таких методологических инструментов как PMBOK. Для нее же разработано множество инструментов управления: от классического Microsoft Project до современных решений вроде Wrike, Битрикс24, канбан-досок, а также более комплексных платформ, таких как Jira или Kaiten.
Первая стадия , часто недооцененная — охватывает принятие управленческих решений, определяющих сам факт начала проекта и его конфигурацию. Здесь компании сталкиваются с необходимостью оценить предполагаемую трудоемкость, стоимость и целесообразность запуска проекта.
В зависимости от типа бизнеса, акценты могут различаться. Для внутренних команд разработчиков ключевыми параметрами становятся скорость и стоимость получения необходимой функциональности. В случае продуктовых компаний или организаций, работающих на заказ, особое значение приобретает выбор подходящей структуры проекта и оценка его экономической обоснованности.
Во многих случаях компании для расчета проекта по-прежнему полагаются на табличные редакторы вроде Excel или Google Sheets, а иногда — на самодельные надстройки к Jira. Это создает парадокс: решение о запуске проекта, требующего значительных ресурсов, принимается с опорой на примитивные или кустарные средства.
Система Project Calc призвана устранить это противоречие. Она предоставляет полноценный инструментарий для качественной предварительной оценки проекта — от расчета трудозатрат, оценки рисков до анализа вариантов реализации — тем самым помогая принимать обоснованные и взвешенные управленческие решения на самом старте жизненного цикла проекта.
Система Project Calc
Мы разработали систему Project Calc для оценки трудоемкости и стоимости проектов. Она помогает анализировать проект, рассчитывать затраты и риски, а также моделировать различные сценарии его реализации. Эти возможности позволяют принимать обоснованные управленческие решения. Project Calc работает онлайн – необходим только браузер. Регистрация проста, а использование онлайн-версии бесплатно: app.projectcalc.ru
Дерево задач, исполнители
Прежде всего нам нужно разбить проект на задачи, задачи на подзадачи и так далее (очень похоже на то, как формируется диаграмма Ганта в программе Microsoft Project). Помимо названия задачи, необходимо указать ее трудоемкость и возможную дополнительную стоимость. Это, например, средства на оплату лицензий или покупку оборудования. И, конечно же, задаче можно назначить исполнителей. В отличие от MS Project команда проекта это не просто список, а иерархическая структура, что позволяет в дальнейшем выполнять анализ трудоемкости и стоимости проекта не только по отдельным исполнителям, но и подразделениям (функциональным группам). На этапе оценки проекта можно указывать как конкретных исполнителей, так и роли. Для того чтобы рассчитать стоимость проекта, следует указать, в какую сумму обходится нам тот или иной исполнитель.
От документов к задачам
Оценка любого проекта основана на постановке задач, которые возникают из описания рамок проекта, тендерных требований или из комплекта документов: функциональная и/или техническая спецификация, описание архитектуры проекта, дизайн, нефункциональные требования, регламенты и т.п. Отмечу, что заполучить полный комплект документов для оценки проекта удается достаточно редко. Но в любом случае речь в статье будет идти о документах, описывающих проект, пусть даже с самыми базовыми требованиями.
Как это работает в Системе? Сначала документы нужно загрузить в Систему. Далее открываем загруженный документ, идем по нему – выделяем требование, заводим задачу, связываем требование и задачу.
В результате все требования из всех документов должны быть привязаны к задачам. Белые пятна, которые остались в документах, должны стать объектом нашего пристального внимания – возможно, мы что-то упускаем (или отложили на потом – так и забыли).
Такой подход даем нам целый ряд преимеществ:
- Мы всегда понимаем, на основе каких документов и каких требований выполнена оценка проекта. Эти документы не нужно искать в переписке или в облаке, они находятся в Системе и связаны с деревом задач.
- Если в ходе реализации проекта изменились требования, у нас всегда есть доказательная база в виде первоначальной оценки проекта в привязке к документам.
- Так как при оценке проекта документ "разбирается" на требования и связывается с задачами, хорошо видны белые пятна – т.е. части документа, которые не вошли в оценку проекта. Таким образом вероятность упустить требования (например, нефункциональные) значительно уменьшается.
- Такой подход с одной стороны увеличивает затраты на оценку проекта, с другой – обеспечивает хорошее понимание требований и глубокий анализ документов, описывающих проект.
- Подход позволяет выполнить пост анализ проекта. Например, если по результатам проекта мы видим, что трудоемкость по ряду задач значительно превысила исходные оценки, можно вернуться к ним и пересмотреть методологию оценки тех или иных задач.
Модификаторы
Модификаторы это переменные, значения которых влияют на состав проекта. По сути модификаторы отвечают на вопрос "А что если?". Например, "А как изменятся трудоемкость и стоимость проекта, если мы добавим в него авторизацию через Госуслуги (ЕСИА)?". Таким образом модификаторы позволяют посмотреть на различный сценарии реализации проекта.
Модификатор выступает как свойство задачи. Задача без модификатора всегда входит в состав проекта. Задача у которой в свойствах есть модификатор, может как учитываться при расчете проекта, так и не учитываться в зависимости от того, какое значение примет модификатор.
Модификаторы бывают 2-х типов:
- Вкл/Выкл (по сути работает как checkbox). Например "Поддержка на сайте темной темы". Изначально такой модификатор выключен, и задача с таким модификатором не входит в состав проекта. При анализе проекта модификатор можно "включить" и посмотреть, как изменятся трудоемкость и стоимость проекта.
- Набор значений (по сути работает как radio button). Например "Способ реализации фронтальной части проекта" может быть следующим:
a) Делаем на React;
b) Делаем на Vue;
c) Делаем на HTML + JS.
При этом одно из значений может быть выбрано по умолчанию, т.е. задачи с таким модификатором по умолчанию входят в состав проекта.
Анализ проекта
Когда задачи с исполнителями определены, а модификаторы настроены, настало время для анализа проекта.
В системе Project Calc большое значение мы придаем механизму визуализации потоков значений, который позволяет понять, в каком соотношении делятся затраты (такие как трудоемкость и стоимость) и откуда они возникают. Такой механизм анализа называется потоковой диаграммой.
Для начала вам необходимо решить, что вы хотите визуализировать с помощью потоковой диаграммы: трудоемкость, дополнительную стоимость, стоимость работ или стоимость проекта.
Далее вы можете изменить конфигурацию проекта – заставить модификаторы принять нужные вам значения. Например, включить модификатор "Поддержка на сайте темной темы" и посмотреть измененную трудоемкость проекта. Одновременно можно переключить модификатор "Способ реализации фронтальной части проекта" с React на Vue и система тут же покажет, как это скажется на проекте.
Вместе с этим вы можете выбрать интересующего вас исполнителя, роль или подразделение. Таким образом, с помощью системы можно ответить на вопрос "Какая нагрузка ляжет на команду разработки, если мы делаем проект на Vue и при этом будет реализована поддержка темной темы".
Визуализация потоков позволяет увидеть, где в проекте возникает основная трудоемкость, что является источником затрат и с какой стороны лучше всего подойти к оптимизации проекта. За счет широкой вариативности при использовании модификаторов, можно принять взвешенное решение о том, в какой конфигурации будет выполнен проект, как можно минимизировать риски, сколько специалистов и какой квалификации необходимо организации для выполнения проекта и какая трудоемкость ляжет на подразделения, которые напрямую не связаны с продуктом.
Кроме того, такой способ оценки помогает защитить перед заказчиком основные параметры проекта (трудоемкость, сроки и бюджет) за счет прозрачной процедуры оценки, в основе которой лежит системный подход. Использование документов в связке с задачами позволяет дополнительно гарантировать, что при оценке проекта был проведен максимально полный анализ исходных требований. Так как все компоненты проекта (задачи, исполнители, документы и модификаторы) по сути представляют собой контейнер, можно проводить объективную оценку изменений требований проекта как на этапе планирования, так и на этапе его выполнения.
Работа с рисками
Система позволяет выполнить идентификацию и оценку рисков, которые влияют на трудоемкость проекта. Чтобы начать работу с рисками, необходимо настроить уровни риска, характерные для проекта. После этого для каждой задачи можно указать соответствующий уровень риска. За последствия реализации риска в Системе принимается трудоемкость задачи. Последствия риска можно учитывать более точно в виде затрат на ликвидацию последствий рискового события. Для этого есть соответствующая опция в настройках.
Для анализа рисков в Системе также используется потоковая диаграмма. Она визуализирует оценку риска, помогает определить источники риска и их влияние на проект. Также вы можете проанализировать, как меняются риски при разных сценариях выполнения проекта и выявить участников команды, наиболее подверженных рискам.
Итого
Ошибки в оценке сложности разработки – это неизбежная ситуация, с которой сталкиваются даже самые опытные разработчики. История знает немало примеров провальных проектов, где "что-то пошло не так" из-за неправильных прогнозов, внутренних разборок и технических проблем.
Отсутствие чётких методик и влияние субъективных факторов приводят к серьезным просчетам в сроках и бюджете. Когда всё строится только на интуиции или под давлением руководства, реальная картина проекта искажается. В итоге это ведет либо к провалу, либо к лишним затратам.
Мы разработали Project Calc для того, чтобы снизить такие риски. Это инструмент для оценки трудоемкости и стоимости проектов, который использует проектную документацию, четкую структуру задач и их привязку к исполнителям. С ним можно делать более точные прогнозы, анализировать риски, моделировать разные сценарии и принимать обоснованные управленческие решения. В итоге грамотный подход к оценке – это не только залог успешного завершения проекта, но и его финансовой эффективности.
Ну что, как вам такая система? Напишите в комментариях, что вы думаете? Система доступна онлайн, можете оценить свой проект вот тут app.projectcalc.ru (регистрация простая, денег не берем, есть некоторые ограничения). Если нужна индивидуальная установка системы – обращайтесь!
Вопросы, мысли и пожелания можно сюда info@projectcalc.ru.