Лекция 16. Концептуальная база проекта:
управление рисками и качеством,
отслеживание связей
Три составляющие концептуальной базы проекта, которые рассматриваются ниже, используются в проектной деятельности, чтобы обеспечивать устойчивость траектории развития. Стихийное их формирование практически всегда негативно сказывается на сроках и результатах. В качестве итога обсуждения концептуальной базы приводится идеальная цель менеджерской работы в предпроектный период: сведение к минимуму необходимости вмешательства в конкретные дела исполнителей.
Ключевые слова: концептуальная база проекта, управление рисками, управление качеством, отслеживание связей, причины риска, рисковая ситуация, последствия риска, воздействие риска на проект, влияние на риск, уровни влияния, исключение риска, переключение риска, уменьшение риска, предупреждение ущерба от риска, планирование действий в рисковых ситуациях, вторичные риски, концептуальная база проекта, план управления качеством, мероприятия управления качеством, проектные связи, внутренние связи, внешние связи, качество.
В предыдущей лекции мы рассмотрели вопросы определения методологического основания программного проекта и показали необходимость осознанного формирования концептуальной базы проекта. В частности, было указано, что эта база служит основой выработки общего плана проекта, составляющими которого являются планы по направлениям проектной деятельности. Мы рассмотрели части концептуальной базы, без которых проект как целенаправленная деятельность невозможен, — концепция развития проекта и план релизов. В данной лекции будут обсуждаться работы системы деятельностей проекта (см. лекцию 4), которые призваны обеспечивать устойчивость траектории развития. Без осознанного их выполнения достижение целей проектов весьма сомнительно. Речь пойдет об управлении рисками, управлении качеством и отслеживании связей. Эти виды деятельности тесно взаимосвязаны. Без специальной упреждающей заботы о реакции разработчиков на рискованные ситуации невозможно организовать качественный процесс, а следовательно, трудно ожидать и приемлемого качества получаемых результатов. В свою очередь, взаимосвязанность и переплетение деятельностей проекта есть фактор риска, и отслеживание связей в одном из аспектов можно рассматривать как инструмент снижения рисков. В то же время эти три деятельности целесообразно рассматривать по отдельности, поскольку каждая из них имеет свое содержание, которое не сводится к обслуживанию других.
В той или иной форме управление рисками, управление качеством и отслеживание связей реализуются в любом проекте, а потому явное или стихийное понимание того, как они организованы, занимает свое место в концептуальной базе проекта. Ниже мы рассмотрим принципиальный аспект организации этих деятельностей, оставляя детали и методики в качестве предмета конкретных методологий.
Управление рисками
Понятие риска в бытовом смысле чаще всего связывается с негативным влиянием на какую-либо деятельность. В то же время иногда говорят и о позитивном влиянии рисков: «Без риска нет успеха». По-видимому, правильнее всего говорить о том, что с риском связывается некая неопределенность в развитии событий, которая способна оказывать влияние на результативность процессов. Применительно к программным проектам рисками называют неопределенные события, негативно, позитивно влияющие или не влияющие на ход развития проекта (нейтральные). И единственное, в чем сходятся все трактовки поведения в рисковых ситуациях, это то, что к ним нужно готовиться заранее. Управление рисками проекта (Project Risk Management) включает в себя процессы, обеспечивающие планирование возможности рисков, их идентификацию, анализ, разработку откликов и контроль в течение жизненного цикла проекта.
Для позитивных рисков подготовленность означает рациональное использование появляющегося резерва (времени или ресурсов). Неподготовленность к негативным и нейтральным рискам — это всегда потеря возможностей.
Крайняя степень потерь — это ситуации, когда проект прерывается вопреки желанию менеджера продолжать его. Ситуации, когда проект прекращается для менеджера, но, возможно, продолжается с другим менеджером или завершается в связи с причинами, на которые нельзя повлиять, здесь не рассматриваются, поскольку разумная целевая установка менеджера — преодоление негативной рисковой ситуации с минимальными потерями и продолжение проекта. В соответствии с этой установкой менеджер должен еще до начала основных работ проанализировать, из-за чего данный проект может быть сорван, и понять, как он и его фирма могут и должны поступать, чтобы исключить или хотя бы минимизировать риски. В частности, результатом такого анализа может стать отказ от проекта еще до его начала. С другой стороны, т.е. с точки зрения заказчика, риск невыполнения проекта является одной из причин, из-за которых он может отказаться от разработки с данным менеджером, коллективом, фирмой.
Позитивные риски рассматривать как объект управления тоже полезно, но, если задача проекта ставится как достижение его целей без оптимизации расходов, то можно ограничиться обсуждением лишь негативных рисков. Так чаще всего и поступают в конкретных методологиях программистской проектной деятельности. Хотя это и определенное ограничение, в дальнейшем мы в основном будем обсуждать негативные риски. Оправданием позиции может служить не ссылка на традиции, а тот факт, что оперирование нейтральными и позитивными рисками во многом подобно тому, что приходится планировать и отслеживать при работе с рисками срыва проектных работ.
Причины возможного срыва работ весьма разнообразны, они зависят от конкретных условий и не сводятся лишь к техническим аспектам. Разработчики должны учитывать, с одной стороны, такие особенности ведения проекта, как техническая политика руководства фирмы и заказчика, их компетентность, их расчет на удачу, а с другой — кредитоспособность, репутацию тех, кто предлагает заказ. Риск невыполнения проекта может быть связан и с изменением рыночной конъюнктуры. Ненадежность подрядчиков — еще один пример проектного риска. Наконец, есть чисто внутренние причины рисков: сбои в используемом окружении (программном и техническом), неточность предъявляемых требований, ненадежность кадров (принятый на ключевую роль сотрудник может отказаться от контракта в самый неподходящий момент).
Чтобы снизить влияние рисков на развитие проекта, менеджер должен разработать специальный план, называемый далее планом управления рисками. Содержание этого плана — идентификация рисков данного проекта и мероприятия, снижающие зависимость его от рисков. Мы не будем обсуждать методики разработки плана управления рисками, поскольку они всегда завязаны на конкретные методологии. Более того, лишь немного упрощая, можно сказать, что любая методология строится как способ преодоления рисков. Отношение к рискам можно использовать в качестве критерия для классификации методологий, а также для выбора методологии реального проекта с учетом того, какие риски в данном проекте рассматриваться как существенные. Остановимся на общих положениях, которых целесообразно придерживаться при организации работ для минимизации рисков.
При составлении плана управления рисками нужно быть совершенно уверенным в том, что рассматриваются только подлинные риски, а не известные проблемы или условия, т.е. причины беспокойства за проект, которые не влияют на достижение целей проекта. Таким образом, нужно различать:
• причины риска — определенные события или обстоятельства в проекте или в его окружении, которые вызывают неопределенность;
• риски — неопределенные события или обстоятельства, возникновение которых может привести к воздействию на процесс достижения целей проекта:
-
к негативному воздействию, если в результате траектория проектной деятельности выходит из области допустимости;
-
нейтральному воздействию, если траектория не выходит из этой области;
-
к позитивному воздействию, когда новая траектория не только остается допустимой, но и по разным причинам оказывается предпочтительнее других траекторий, которые могли бы реализоваться, если бы рисковая ситуация не возникла;
• последствия — незапланированные отклонения траектории выполнения проекта, возникшие в результате того, что событие или обстоятельство, квалифицированное как риск, имели место.
Это разбиение рисков на составляющие принято, например, в стандарте PMBOR [48]. При описании стратегии оперирования рисками мы придерживаемся рекомендаций этого стандарта. Схематически составляющие рисков показаны на рис. 16.1. Разный способ показа составляющих риска на схеме (блок причины — прямоугольник, сам риск — облако, воздействие — овал) отражает степень неопределенности. Стрелка от причины к воздействию через риск отражает развитие рисковых событий, которыми нужно управлять в проекте. Приведенная схема была предложена Дэвидом Хилсоном [42], которого, подчеркивая безусловную компетенцию в вопросах управления рисками, часто называют Доктором Риск.
Стоит подчеркнуть, что в определении составляющих риска мы говорим о траекториях, которые могут реализоваться, а не об операционных маршрутах, поскольку для маршрутов всегда подразумеваются все возможные продолжения развития проекта. Рисковые траектории — это подмножество операционных маршрутов, которое выделяется в связи с причинами рисков, наступлением рисков и возможными последствиями рисков.
Однако в любом случае неопределенность проекта остается, и преодолевать риски приходится, а значит, их нужно учитывать и готовиться к их преодолению. Разделение на причины, наступление и последствия рисков — первый шаг в такой подготовке. Для его осуществления можно рекомендовать следующую лингвистическую формулу, использование которой должно помочь в выявлении реальных рисков:
Реальные риски — это те события, которые действительно характеризуются неопределенностью. Если причина детерминировано ведет к событию, то это не риск, а штатная ситуация, план преодоления которой к управлению рисками отношения не имеет. Следовательно, нужен анализ связей причин и событий.
В результате идентификации рисков формируется список идентифицированных реальных рисков.
Вторая стадия составления плана управления рисками при любой методологии — выставление приоритетов рискам. Иными словами, нужно определить сравнительную важность рисков для проекта. Устанавливается, насколько существенным может оказаться воздействие каждого риска на проект, и по этому признаку все идентифицированные риски упорядочиваются. После этого оцениваются две вероятности: для причины и возможного воздействия. Удобно расположить все риски в виде точек на плоскости, координаты которых отражают заданные вероятности. В таком случае можно зрительно отделить несущественные риски от существенных и далее работать только с последними. Нужно, однако, предостеречь, что выставление вероятностей — операция субъективная, а потому результирующее отсеивание требует проверки.
В результате выставления приоритетов определяются риски, которые будут отслеживаться в проекте. Остальные риски не отслеживаются, но игнорируются обоснованно, так как реально в проекте можно отследить не более 10-15 рисков, а потому нужно выбрать наиболее существенные из них.
На третьей стадии продолжается работа с полученным списком. Устанавливается возможность влияния на риски, т.е. на причины рисков и на оказываемое ими воздействие на проект. Влияние может осуществляться на нескольких уровнях и для каждого из рисков должны быть определены влияния, планируемые для последовательного выполнения на тех уровнях, на которых это возможно:
1. Исключение риска (avoid). Некоторые рискованные ситуации можно исключить полностью. Например, чтобы увольнение работника с ключевой ролью не сильно сказалось на продолжении развития про екта, целесообразно с самого начала предложить для исполнения этой роли двух человек сравнимой квалификации. В начале проекта их дискуссии полезны для выработки объективных решений, а если один из них откажется от контракта, второй все еще сможет продол жать дело. Полезные дискуссии — эта та жертва, которая во многих случаях возможна для исключения риска. К сожалению, дублирование не может быть рекомендовано для исключения всех рискованных ситуаций.
Вообще, исключение риска осуществимо далеко не всегда, но при планировании работы с рисками для каждого из них следует попытаться найти варианты исключения. По своей сути, этот прием есть преодоление выявленных причин возникновения риска, т.е. создание таких условий, которые приведут к разрыву связи причина—риск.
2. Переключение риска (transfer). Это частный случай исключения, когда риск переносится из сферы влияния проекта на окружение. Например, если рыночная ценность создаваемого изделия кажется сомнительной, для его разработки комфортнее договориться с заказчиком об авансовых платежах, тем самым заставив его самого решать задачу преодоления риска и освободив от этого разработчиков (возможно, за счет снижения оплаты проекта). К этому уровню относятся все варианты контрактных соглашений, но не только они. Оперируя рисками, всегда нужно стараться предусмотреть способы переключения.
К сожалению, эта стратегия является исключением риска только для разработчиков, но не для проекта в целом.
3. Уменьшение риска (mitigate). Если риск не может быть исключен, можно постараться уменьшить вероятность его появления на практике (оперирование причинами). Продолжая пример с увольнением сотрудника, для снижения вероятности этого следует предугадать причины поступка и постараться создать для сотрудника более комфортные условия (повысить заработную плату, создать льготы и т.п.). Нужно, чтобы подобные решения делались не в от вет на заявление об увольнении, а заранее. Это сохранит определенную стабильность в коллективе, которая сама по себе является методом уменьшения риска.
Другой пример уменьшения риска — объявление (для заказчика, руководства и коллектива) о пересмотре требований, когда становится понятным, что график выполнения работ может быть сорван. Как и в предыдущем случае, важным моментом здесь является упреждение, т.е. пересмотр требований не в ответ на нарушение графика, а в качестве превентивной меры.
4. Предупреждение ущерба от риска (accept). Когда не получается удовлетворительно уменьшить риск, следует подготовиться к встрече с ним так, чтобы минимизировать потери, т.е. снизить вероятность негативного воздействия и уменьшить само воздействие (оперирование последствиями). Если это удается, то продолжение проекта во многих случаях оказывается успешным. В примере с увольнением следует как можно скорее найти замену данному сотруднику. Естественно, время выполнения проекта увеличится (в частности, потому что нового человека придется вводить в курс дела), но работа все-таки будет продолжена. Это так, но при одном условии: на всех уровнях проектирования заложена возможность отделения результатов труда от разработчиков. Если результаты персонифицированы, то трудности подмены для некоторых ролей могут оказаться непреодолимыми.
Примеров подобного контроля из области техники можно привести множество (бамперы и дворники автомашин, плавкие предохранители, дублирующие сети и т.д.). В практике конструирования программного обеспечения для предупреждения последствий риска используются строго регламентированные технологические приемы и методы разработки.
Шаги, направленные на предупреждение ущерба, планируются для данного проекта заранее. Чтобы эффект запланированных действий был максимальным, их выполнение должно быть проведено как можно быстрее. План действий в непредвиденных ситуациях обеспечивает исключение препятствий на этом пути. Так, чтобы произвести скорейшую замену уволенного сотрудника, у
менеджера должен быть заранее готов список лиц, способных занять освобождающуюся вакансию. Составной частью этого плана является резервирование в основном графике работ времени, необходимого для введения в курс дела нового исполнителя. Примерами планирования действий в непредвиденных ситуациях из области техники могут служить запасные детали, а в практике конструирования программного обеспечения — средства отката, резервного копирования и архивирования.
Для всех рискованных ситуаций планом управления рисками предусматриваются мероприятия на указанных уровнях в различной комбинации, возможно, дополненные более тонкой реакцией на возникновение риска — планируемые отклики на риски. Детализация такого плана может быть различной, она зависит от ответственности проекта, его важности для компании и заказчика, с одной стороны, а с другой — от степени новизны проекта, обработанности технологии его выполнения.
Составляя план управления рисками, не следует забывать о том, что в результате рискового события, влияния на него, а также его воздействия на проект возможно появление так называемых вторичных рисков, т.е. тех, которые без этого не могли бы возникнуть. Их также следует оценивать, для них также нужно предусматривать влияния.
Очень важно, чтобы исполнители проекта были осведомлены о возможных рисках и о плане управления ими. Это создает уверенность в успехе и подготавливает работников к преодолению трудностей. Для менеджера при составлении плана самое важное — не упустить все возможные рискованные ситуации.
Проект с большой долей новаций — всегда рискованное предприятие. По этой причине для него план управления рисками является обязательным и должен быть максимально детализированным в части учета неверных решений, ошибок в оценке ситуаций и т.п.
Многие проекты зависят от внешних факторов в большей мере, чем от организации дел и подготовленности исполнителей. Анализ рисков в такой ситуации имеет целью компенсацию внешней зависимости за счет внутренних ресурсов. И здесь план управления рисками обязателен при подготовке к проекту, но по сравнению с предыдущим случаем в нем несколько смещаются акценты. Так, менеджер должен предусмотреть действия разработчиков, когда оборудование или внешнее программное обеспечение поставляются с задержкой, когда возникают сбои в финансировании, в иных случаях отрицательного внешнего воздействия.
По сравнению с последовательным развитием ориентация проекта на итеративное развитие делает его более устойчивым к рискам, поскольку рабочий продукт каждой итерации планируется не тогда, когда контекст его разработки предсказать можно лишь в общих чертах, а когда он полностью определен. Тем не менее план управления рисками уместен и здесь. При итеративном развитии наиболее важным является распределение реализуемых в проекте требований по итерациям так, чтобы минимизировать риск проекта в целом.
Составление плана управления рисками влияет на распределение ресурсов. Оно начинается с фиксации и ранжирования всех возможных рискованных ситуаций и планируемых реакций на них. Кроме того, определяются временные издержки и цена мероприятий, которые планируется выполнять, когда риски дают о себе знать. Таким образом, план управления рисками представляет собой перечень рисковых ситуаций с планируемыми реакциями на них, временными издержками и затратами на их проведение. Эти сведения дополняют затратные характеристики проекта и его план-график, тем самым расширяя схему финансовых и временных потребностей проекта.
Как и в других случаях, при планировании управления рисками детально расписываются рисковые ситуации начала проекта, в том числе для первой итерации. Грубые оценки и экстраполяции рисков последующих периодов корректируются перед каждой итерацией. Другое время, когда целесообразно пересмотреть план управления рисками, — после возникновения рискованной ситуации и ее преодоления. В качестве примера того, что должно быть предусмотрено, можно указать на перераспределение ресурсов, первоначально выделенных на поддержку мероприятий в рисковых ситуациях.
Полезно перед корректировкой планов управления рисками в случае возникновения и преодоления рискованной ситуации провести анализ ситуации. Требуется оценить эффективность предусмотренных, выполненных и невыполненных мероприятий, понять, что могло бы быть организовано лучше, проверить качество предварительных оценок. Опыт, полученный при таком анализе, применяется непосредственно при пересмотре плана. Это весьма важно, поскольку ситуации, подобные той, которая преодолена, могут повториться в ходе дальнейшего развития проекта.
Ниже приводится перечень (далеко не полный) ситуаций, которых должен избегать менеджер и которые он должен учитывать, составляя план управления рисками:
-
задержка начала проекта никогда не компенсируется;
-
если план-график выполняется с большими нарушениями сроков, трудно ожидать создания хорошего продукта;
-
если пользовательский интерфейс не является интуитивно понятным и превышает уровень компетенции потребителя изделия, продукт будет плохо распространяться;
-
упущенные возможности требуют дополнительных усилий при их более поздней реализации и увеличивают затраты;
-
не протестированный продукт снижает репутацию разработчиков;
-
не стоит рассчитывать на неизменность пользовательских намерений, никогда нельзя знать, что хочется пользователю и что на самом деле ему нужно. Как следствие, необходимо планировать время на переделку того, что в начале проекта казалось приемлемым.