Если какая-нибудь неприятность может произойти, она случится — гласит закон Мерфи. И сфера ИТ не исключение.
Команда SEBEKON рассказывает, как работать с рисками в IT-проекте, чтобы риски не стали управлять проектом.
В этой статье под IT-проектом подразумевается разработка сложного веб-ресурса — например, b2b-портала или интернет-магазина с множественными интеграциями с внешними системами.
Дилемма управления рисками любого IT-проекта простая: перестраховаться и заложить все угрозы в бюджет проекта, который вырастет до небес, или пропустить часть рисков — и тогда будет велика вероятность не завершить проект вовсе или получить неудовлетворительный результат.
Но даже если принять первый вариант как единственно верный, от рисков никто не застрахован.
Как работать с рисками
Обычно ожидаемая реализация проекта не совпадает с реальной работой:
На практике управление рисками — это тонкий баланс между разумным и достаточным.
Существуют пять основных инструментов для работы с рисками:
- выявление,
- оценка,
- планирование мероприятий по предотвращению,
- предусмотрение действий при наступлении,
- мониторинг.
Рассмотрим каждый из них подробнее.
Выявлять риски
Риски проекта определяются во время фиксации требований к проекту и отражаются в уставе или концепции проекта.
Устав проекта ― это документ, в котором зафиксирована основная информация о проекте: потребности заказчика, бизнес-задачи, высокоуровневые требования к проекту, критерии успешной реализации.
Концепция проекта ― документ, в котором собраны подробные характеристики проекта.
Выбор документа зависит от масштаба проекта.
Чтобы выявить риски, нужно проанализировать множество информации и сопоставить, как те или иные факторы влияют на возникновение рисков.
Рассказываем, что стоит сделать для этого.
Учесть опыт предыдущих проектов
Для примера возьмём согласование дизайна страниц сайта.
Дизайн всегда субъективная история, и нужно закладывать дополнительное время на решение вопросов в стиле «а давайте попробуем немного светлее или поиграем со шрифтами». Заказчик должен ещё до начала работ понимать, что любое изменение, требующее нескольких минут работы, в итоге выливается в часы и дни согласования.
Часто на стороне заказчика необходимо согласовать дизайн с несколькими департаментами — и не всегда сотрудники этих отделов могут быстро подтвердить изменения. Если речь идёт о крупной компании, то руководителю проекта придётся назначать собрание или созвон для обсуждения дизайна. И не всегда это получится сделать в ближайшие дни — часто согласование растягивается на недели, а то и на месяцы.
В нашей практике были разные проекты, но редко, когда удавалось согласовать дизайн в первой же итерации и по ходу работы не менять его. Гораздо чаще приходилось сдвигать сроки работ, потому что представители заказчика не смогли оперативно обсудить дизайн и согласовать его.
Оценить новизну критичных требований — как для заказчика, так и для исполнителя
Например, в проекте предполагается разработка нового функционала, которая требует совместной работы нескольких подразделений на стороне заказчика и дополнительных исследований на стороне исполнителя. Всё это увеличивает сроки согласований и влияет на срок проекта.
Принять во внимание особенности внутренней инфраструктуры заказчика
Самый очевидный пример ― требования к безопасности, которые могут существенно отодвинуть срок старта проекта. Это связано с необходимостью получения доступов в систему заказчика или требований по использованию определённого, разрешённого на стороне заказчика ПО, которые повлекут за собой дополнительную проработку архитектуры проекта.
Не забыть про покупку серверного оборудования или про согласование хостинга
Если про покупку хостинга заказчики обычно помнят, то про серверное оборудование в проектах могут забыть и не заложить в бюджет стоимость оборудования, лицензий, а также время на заключение договора с поставщиком оборудования и его доставку.
В зависимости от проекта серверное оборудование может быть стационарным — шкафы с оборудованием — или облачным, когда проект размещается в виртуальном пространстве.
Напоминание заказчику о закупке серверного оборудования на первых же обсуждениях проекта позволит избежать досадных простоев в работе.
Заложить внедрение интеграции проекта с внутренними системами заказчика
Об этом часто забывают, поскольку обычно в организации заказчика под проект выделяются не специально нанятые люди, а текущие сотрудники, у которых есть другая, основная работа. Они воспринимают новый проект как нечто второстепенное, что можно делать по остаточному принципу.
В итоге когда приходит время интеграций проекта с CRM-, ERP- и другими системами работа останавливается на неопределённый срок, потому что менеджер проекта со стороны заказчика не может оперативно подготовить необходимую документацию и доступы для интеграций.
Выявить заинтересованность в проекте ключевых стейкхолдеров
Стейкхолдеры ― это не только топ-менеджмент, но и будущие пользователи и эксперты, которые хорошо разбираются в вопросе и могут помогать с проектом или же оказывать негативное влияние.
На начальном этапе стоит понять, как взаимодействовать с так называемыми негативно настроенными стейкхолдерами, чтобы они не вредили реализации проекта. Под негативно настроенными мы понимаем не тех, кто намеренно вставляет палки в колеса, а тех, кто не понимает последствий от своих решений.
В нашей практике не раз случалось, когда некоторые стейкхолдеры не глядя согласовывали ТЗ, а на этапе тестирования готового проекта выяснялось, что всё должно быть совсем не так.
Например, руководитель департамента логистики должен был проверить сценарий по расчёту доставки товара. Но он был занят текущей деятельностью, мельком просмотрел ТЗ и отправил с пометкой «принято». В ходе тестирования этого сценария оказалось, что он должен быть реализован другим способом. В итоге пришлось откатить проект назад: пересмотреть внесение правок в сценарий, затем внести эти правки в ТЗ, согласовать это со всеми стейкхолдерами, переделать сценарий и заново его протестировать. На всё это ушло больше месяца, а кроме того, заказчику пришлось оплатить дополнительные работы.
Для наглядности можно составить матрицу влияния стейкхолдеров на проект и методы взаимодействия с ними. Например, такую:
Изучить соответствующее законодательство, поговорить с экспертами и опытными коллегами
У более опытных коллег за плечами больше реализованных проектов, они уже набили свои шишки и могут дать полезные советы. Эксперты помогут разобраться в отдельных нюансах относительно, например, сценариев пользователей или специфической функциональности.
При разработке ресурсов для государственных компаний изучение законодательства ― обязательный этап в работе над таким проектом. Например, сайты и порталы для государственных образовательных организаций должны быть сделаны с учётом требований Министерства образования.
Оценивать риски
Риски обязательно соотносятся с критичностью или некритичностью требований к проекту в целом.
Критичные требования отвечают за целевую функцию разрабатываемого продукта, включают необходимую инфраструктуру и возможности для разработки MVP.
К некритичным относятся остальные требования.
Для каждого риска выявляют следующее:
- источник — внутренний, внешний;
- вероятность его возникновения — редко, часто, очень часто;
- степень влияния на проект — слабое, среднее, сильное;
- степень управляемости — управляемый, неуправляемый или скрытый риск.
На базе этих параметров строится матрица рисков.
Остановимся подробнее на степени управляемости рисками.
Управляемые — риски, которые можно предугадать и акцентировать на них внимание уже на начальном этапе проекта, определив для них ответственных и держа под контролем.
Самый очевидный пример ― опять же дизайн сайта. Сразу понятно, что на этапе согласования могут возникнуть сложности, доработки, переделки и бесконечные правки. Поэтому мы на старте проговариваем этот момент с заказчиком, согласовываем, кто будет лицом, принимающим окончательное решение, и письменно фиксируем максимально допустимое количество дней на согласование макета — в среднем, по нашему опыту, это обычно 5.
Неуправляемые — возможные риски, появление которых мы не можем предотвратить.
Например, один из неуправляемых рисков ― более ранний выпуск конкурентами на рынок похожего продукта.
Другой пример — подключение платёжной системы. В описании API говорится, что в ответ на запрос придёт одна строка, а по факту приходит три. И платёжная система на своей стороне не готова вносить правку, потому что на это нужно время, при этом тысячи пользователей этой системы об этом не просили. Так как нужна именно одна строка, разработчику приходится самостоятельно решать этот вопрос, тратить больше запланированного времени на разработку и фиксацию данной ошибки.
Запланировать мероприятия по предотвращению рисков
Для предотвращения рисков нужно понимать, как от них защищаться.
Грамотно выстроенные коммуникации внутри проекта играют главную роль для защиты от рисков и оказывают огромное влияние на успех проекта. Это означает, что все процессы взаимодействия регламентированы, роли всех членов команды закреплены и всё это зафиксировано в понятном для участников формате.
Важно сразу выстроить коммуникацию с заказчиками проекта, создать большую команду из представителей обеих сторон и все вопросы решать совместно.Для этого фиксируем ответственных для каждого этапа проекта в матрице «Роли и зоны ответственности» (RACI Matrix).
В матрице предусмотрены четыре роли:
- Responsible (кратко обозначается R или О на примере ниже) ― ответственный за выполнение задач; например, дизайнер, разработчики, контент-менеджер;
- Accountable (A или C) ― ответственный за весь проект, эту роль может занимать только один человек на одной задаче; например, менеджер проекта или тимлид;
- Consulted (C или У) ― консультант ― сотрудник или группа, с которыми проводятся консультации по реализации проекта и мнение которых должно учитываться; например, представители заказчика, которые помогают правильно реализовать задачи;
- Informed (I или И) ― сотрудники, которых информируют о выполнении конкретной задачи, но сами они никакого влияния на проект не оказывают; такую роль может выполнять, например, PR-менеджер, которого информируют о ходе проекта, чтобы он(а) мог(ла) готовить материалы для СМИ.
Однако просто зафиксировать ответственных мало — нужно проанализировать заполненную матрицу, чтобы не было перекоса в одну роль:
- много ячеек задач у ответственного — правильно ли распределены обязанности?
- много ячеек у исполнителей, ответственных за результат, — не много ли ответственности висит на одной роли?
- отсутствие пустых ячеек в матрице — действительно ли эти роли нужны на каких-то этапах?
- более одного ответственного — по условиям матрицы эта роль должна быть только у одного человека;
- нет ответственного — нужно найти сотрудника на эту роль;
- много исполнителей, ответственных за результат, ― проверить, действительно ли это необходимо на этом участке, так как при большом количестве есть риск, что задача вообще не будет сделана;
- много консультантов — оценить целесообразность такого количества консультантов, будет ли это эффективно?
- нет консультантов и информируемых — правильно ли выстроены коммуникации?
После того, как разобрались с матрицей ролей, проактивно управляем рисками — фиксируем их и то, что нужно сделать для предотвращения.
Вместе с этим определяем план и способ коммуникаций на протяжении всего проекта: сколько раз в неделю и месяц, каким составом и при наступлении каких событий будем проводить созвоны или очные встречи, какой формат отчётности примем для фиксации договоренностей на этих встречах.
Также определяем инфраструктуру проекта:
- через какой канал будем взаимодействовать (например, Microsoft Teams, Skype);
- где будем хранить и вести документацию (например, Confluence);
- какие трекеры используем (например, Jira, Bitrix24).
- Помогаем освоить востребованную профессию
за 6,5 месяцев - Научитесь эффективно управлять проектами, взаимодействовать с командой, готовить проектную документацию
- Передадим ваше резюме партнёрам Нетологии, чтобы у вас не было проблем с поиском работы
Предусмотреть действия при наступлении рисков
Стоит предусмотреть резервный план (contingency plan) на случай непредвиденных обстоятельств.
Задача этапа — выполнить его наиболее эффективным образом, а также собрать и проанализировать информацию о наступившем риске на будущее.
Не стоит тратить время на поиск виноватых — лучше предпринять всё необходимое, чтобы двигаться дальше и продолжать реализацию проекта. На этом этапе главная роль принадлежит коммуникации и поиску оптимального решения.
В нашей практике был проект, когда нужно было разделить один сайт, реализованный на Bitrix, на два. Один из них надо было интегрировать со штатной версией 1С.
Заказчик предполагал, что на разработку на своей стороне их специалисту понадобится три недели. По факту оказалось, что ранее созданная интеграция полностью кастомная — комплекты, цвета, размеры, остатки — и на стороне заказчика нет эксперта, который смог бы выполнить задачу. Пришлось подключиться нам и помочь с решением по интеграции. Дополнительно были пересмотрены сроки проекта.
Мониторить риски
Ситуация на проекте постоянно меняется ― это нужно принять как аксиому.
Например, если работать по Agile, то перед каждым новым спринтом могут меняться параметры проекта, обрисованные на этапе обсуждения. Следовательно нужно отслеживать изменения параметров рисков, корректируя внутрикомандный перечень топ-10 рисков.
На этапе мониторинга — если возвратиться к примеру с Agile, то это нужно делать в начале каждого спринта — важно отслеживать новые риски, изменять статус выявленных рисков, корректировать планы. На протяжении проекта перечень может значительно измениться.
К примеру, на крупном проекте на финальном этапе в команде заказчика появляется эксперт, который задаёт много вопросов и предъявляет новые требования к проекту, которые подразумевают изменение архитектуры проекта и кода. Если инициировать эти изменения, то есть риск сорвать плановые сроки реализации проекта.
Как вариант — провести встречу, обсудить, что беспокоит эксперта в текущей архитектуре, объяснить, почему реализовано именно так и наметить дальнейшие шаги. При этом важно постараться не увеличить объём работ проекта и не выйти за временные и финансовые рамки.
Каждый участник команды должен понимать важность работы с рисками
Ключевой момент управления рисками — их постоянное отслеживание и предотвращение, в идеале согласованное с длительностью циклов разработки проекта.
Оценка рисков и работа с ними зависят от размера и длительности проекта. Рекомендуем возвращаться к работе над рисками один раз в 1‒2 недели, в некоторых крупных проектах периодичность может быть увеличена до месяца.
Лучше составить неполный перечень рисков, чем не составить его вовсе.
В процессе общения с разработчиками или заказчиком лучше забыть фразу «все и так всё понимают»:
- не всегда написанное и услышанное понимается одинаково: в этом случае помогут уточняющие вопросы и прозрачная процедура взаимодействия, о которой говорили выше;
- часто заказчики не понимают, что короткая правка в пределах 10 минут может потянуть за собой сдвиг проекта на месяц: придётся тратить время на внесение правок в документацию, макеты, код, корректировку стоимости проекта.
Главное в работе с рисками ― донести до всех участников проектной команды необходимость работы с рисками. Прежде всего нужно стараться не допускать наступления рисков, анализировать прошлый опыт и причины наступления для составления перечня возможных рисков в новых проектах, предотвращать непредусмотренные риски.
Пример перечня рисков проекта с комментариями и статусами можно посмотреть здесь.
Мнение автора и редакции может не совпадать. Хотите написать колонку для Нетологии? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.