Рассматривать только благоприятные сценарии и встраивать их в план проекта — настоящее ребячество. И все же мы постоянно так поступаем. И делая эти незрелые вещи, мы уверенно провозглашаем рост нашей зрелости, имея в виду совершенствование профессиональной квалификации.
   Теперь нужна зрелость в ином, более традиционном смысле. Нам нужно повзрослеть, осознать существующие риски, чтобы планировать соответствующие действия. Именно этим и занимается управление рисками.
   Но мы в какой-то мере ставим телегу впереди лошади, определяя управление рисками, не определив предварительно само понятие риска. Итак, что такое риск?
 
Риск: временное определение
   Наше представление о риске в проектах по разработке программного обеспечения сложилось на основе наблюдения за тем, как много таких проектов терпят неудачу. Значительная часть нашей консалтинговой работы в настоящее время состоит в поддержке судебных дел, возникших как последствия провала проектов. Благодаря этому, нам удалось собрать обширные данные относительно провалов. Риски неудавшихся проектов, если посмотреть в ретроспективе, были факторами, приведшими к нежелательным результатам. Это относится и к предстоящим проектам: их риски — это то, что может привести к нежелательным результатам. Так мы приходим к следующему временному определению риска:
   Риск
   1. Возможное в будущем событие, которое приведет к нежелательным результатам.
   2. Сам нежелательный результат.
   Первое — причина, а второе — результат, но не пытайтесь обманывать себя, рассчитывая справиться с обоими. Управление рисками как дисциплина целиком занята управлением причинными рисками. Это — те риски, которыми вы можете управлять (Однако оправданность управления рисками, в первую очередь, связана с результатами).
   Наше определение является временным, поскольку предполагает бинарную природу каждого риска, воспринимая его как нечто, что может либо произойти, либо не произойти. Разумеется, многие риски устроены иначе: они происходят частично и оказывают соразмерное отрицательное воздействие на проект. Чтобы учесть и эти риски, нам придется вернуться к этому определению в последующих главах. А пока нам неплохо послужит временное определение.
 
Риски и проблемы
   В качестве альтернативного рассмотрим следующее «круговое» определение риска:
   Риск — это проблема, которая еще не возникла, а проблема — это риск, который уже материализовался.
   До своего проявления риск — просто абстракция. Это нечто, что может повлиять на ваш проект, а может и не повлиять. Существует вероятность, что игнорирование риска пройдет безнаказанным. Но даже в этом случае вы не избежите обвинения в том, что оказались плохим управленцем, не учтя риск. Говоря словами Вильяма Клиффорда, вашу вину «просто не выявят».
   Управление рисками — это процесс продумывания корректирующих действий прежде, чем возникнет проблема, пока она еще остается всего лишь абстракцией. Противоположностью управлению рисками является кризисное управление, попытка понять, что делать с проблемой после того, как она появилась.
 
Событие риска и индикаторы события риска
   Представим себе момент, когда то, что было риском, внезапно превращается в проблему. Было абстракцией, просто возможностью, а теперь уже вовсе не абстракция. Уже случилось. Это и есть момент события риска.
   Событие риска — основное понятие в управлении риском. Это — событие, инициирующее меры, которые предполагается принять в отношении риска. Ну, это почти так. Реальное событие риска может быть невидно вам (например, Саддам Хуссейн решил вторгнуться в Кувейт). То, что вы видите, — это индикаторы (симптомы) события риска (скопление войск на границе). У каждого риска, с которым нам нужно справиться, есть какие-то симптомы. Однако некоторые из них более полезны, чем другие. Подробнее об этом будет сказано чуть дальше.
 
Ослабление риска
   Причиной вашего внимания к событию риска является то, что при появлении симптомов нам нужно предпринять какие-то действия. До появления признаков события риска предпринимать действия рано, ведь на них нужно тратить деньги и время, поэтому оправдана надежда на то, что действия могут не потребоваться. Однако, хотя можно отложить какие-то корректирующие действия, часть действий может оказаться неотложной. Может оказаться, что какие-то шаги необходимо предпринять до наступления события риска, чтобы у вас были варианты выбора и была обеспечена возможность последующих корректирующих действий. Эта работа называется ослаблением риска.
   Рассмотрим пример ослабления риска из сравнительно далекой от нашего предмета области: судебной системы США. Понимая, что присяжный может заболеть, выбыть, умереть или по какой-то иной причине оказаться неспособным продолжать выполнение своих обязанностей, суды назначают дополнительных присяжных для каждого рассматриваемого дела, чтобы обеспечить возможность альтернативы. Если основной состав присяжных доводит работу до конца, то «альтернативщики» не играют никакой роли; но если требуется замена, то имеется кандидатура, полностью информированная о ходе процесса, поскольку присутствует на заседаниях с самого начала; ввод такого человека в состав присяжных позволяет выполнить требование закона о полноте состава присяжных. Риск здесь состоит в том, что выбытие одного из присяжных ведет к прекращению процесса, повторным слушаниям и всем сопутствующим расходам и задержкам. Ослабляющее действие состоит в присутствии с самого начала одного или нескольких дополнительных присяжных. Если и когда риск материализуется, с ним удастся справиться с минимальными издержками.
   Аналогией потери присяжного в IT-проекте будет текучесть персонала, представляющая собой один из главных рисков во всех проектах по разработке программного обеспечения. А профилактической мерой может стать включение в проект с самого начала чуть большего количества исполнителей, чтобы были достаточно квалифицированные дополнительные специалисты, на первых порах выполняющие вспомогательные роли. Когда кто-то из основного состава уходит, руководитель может не нанимать дополнительных сотрудников. Один из запасных перейдет с вспомогательной роли к выполнению обязанностей уволившегося, что позволит обойтись минимальными потерями времени.
   Ослабление риска требует затрат времени и денег. При самом наилучшем развитии событий эти расходы окажутся ненужными. Мы еще вернемся к этому обстоятельству, поскольку оно ведет к некоторой патологии, которая может сделать управление рисками практически невозможным.
 
Пример: управление рисками в школе
   Для того, чтобы поупражняться в использовании всех этих только что введенных терминов, представьте себе, что вы занимаетесь управлением рисками в школе. Предположим, что вы — директор частной школы-интерната для мальчиков и девочек 5-8 классов.
   Будучи профессионалом в своей области, вы хорошо сознаете, что существуют всякие ужасы (риски), которые могут приключиться с детьми, оставленными на ваше попечение. Вы не просто вспоминаете об этом время от времени, ваши мысли постоянно заняты этим. В конце концов, это — дети других людей, порученные вашему попечению, поэтому вы не можете отнестись к своим обязанностям легкомысленно.
   Вы или ваш персонал можете благополучно справиться с частью неприятностей, которые могут приключиться, для чего достаточно быстро сориентироваться в момент наступления риска. Например, нет надобности располагать хитроумным планом на случай драки подушками. Каждый учитель, который не даром ест свой хлеб, сообразит, как с этим справиться, и поступит соответственно.
   Но вы осознаете, что есть более серьезные риски, по отношению к которым необходимо заранее иметь продуманный план действий. Таким риском, например, является пожар в одной из спален. Вы будете опозорены, если после пожара выяснится, что вы заблаговременно не потрудились подумать над этой проблемой. Потрудиться (ослабить риск) необходимо заранее, что включает размещение огнетушителей, установку противопожарной сигнализации, проведение учений на случай пожара, инвестиции в автоматические системы пожаротушения и т.п.
   Реальное наступление этого конкретного риска может произойти незаметно для вас, поэтому необходимо установить какой-то механизм (индикатор риска) для отслеживания признаков возникновения пожара. У вас есть несколько механизмов на выбор. Можно поручить вахтеру раз в несколько часов снимать показания с устройства для измерения уровня задымленности. Или можно установить сигнализацию, реагирующую на дым. Делая выбор, вы решили, что попытаетесь получить предупреждение побыстрее, потому очевидно, что предпочтительнее окажется сигнальное устройство, реагирующее на дым.
   Понимая, что пожар — лишь один из рисков, требующих предварительной подготовки, вы собираете весь коллектив преподавателей и сотрудников и ставите вопрос перед ними: давайте проведем мозговой штурм по выявлению возможных рисков и составим точный список рисков, требующих предварительной подготовки с нашей стороны.
   «Какие риски требуют предварительной подготовки?» — спрашиваете вы их. Они называют пожар, спортивные травмы, пищевые отравления, сексуальные домогательства со стороны учителей, обслуживающего персонала или посторонних взрослых людей, сексуальные опыты самих учащихся, наркотики, оружие, депрессию, ведущую к самоубийству, нападения на учителей и учащихся и т.п.
   Среди перечисленных могут оказаться такие, которые не стоит пытаться включать в перечень рисков, требующих подготовительных действий («метеорит упадет прямо на здание школы, уничтожив ее вместе со всеми в ней находящимися»). Кроме того, будут и такие вопросы, где ваша ответственность далеко не очевидна. Например, «некоторые аспекты уроков по естествознанию могут подорвать религиозные устои учащихся». Относится ли это к рискам, с которыми вы должны справиться? Вы помечаете это отдельно и продолжаете вести мозговой штурм. После составления перечня вам нужно пройтись по списку и проделать следующий этап работы — качественный анализ рисков. Вам предстоит определить, какими рисками нужно управлять, а какими — нет, то есть провести ранжирование рисков. Для тех, которыми вы решили управлять, вам потребуется, по меньшей мере, выявить триггеры (симптомы наступления риска), составить план предварительных действий по ослаблению риска и оценить относительную значимость данного риска.
   Когда мозговой штурм закончится, не стоит думать, что все готово. Вам захочется установить какой-нибудь постоянно действующий механизм (постоянный процесс выявления риска), чтобы выявлять новые риски, требующие контроля. Вам может понадобиться назначить кого-то ответственным за этот процесс (уполномоченный по контролю риска).
 
Составляющие управления риском
   Абстрагируясь от этого конкретного примера, можно выделить пять основных составляющих управления риском:
   • идентификация риска: первоначальный мозговой штурм по выявлению риска, последующая сортировка и определение какого-либо механизма для обеспечения постоянного действия данного процесса.
   • анализ воздействия риска: количественная оценка каждого риска в терминах вероятности его наступления и потенциального ущерба.
   • планирование реагирования на риски: что вы собираетесь делать, если и когда данный риск наступит.
   • ослабление риска: меры, которые должны быть приняты предварительно, чтобы обеспечить возможность и эффективность проведения запланированных действий, если они потребуются.
   • мониторинг и управление рисками: отслеживание рисков, выделенных в качестве объектов управления, выявление материализации рисков.
   Первый пункт является действием общего характера, а остальные осуществляются по каждому из рисков.
 
Еще раз о том же
   Управление рисками — то, чем большинство из нас занимается постоянно, причем везде, кроме своего рабочего места. В нашей личной жизни нам постоянно грозят болезни и ранняя смерть. Мы ослабляем риск, застраховав жизнь и здоровье и сделав распоряжения относительно того, кто позаботится о наших детях, если с нами что-то случится. Мы не притворяемся бессмертными и не делаем вид, что наша способность заработать себе на жизнь не может пострадать от какого-то несчастья. Каждый раз, когда мы взваливаем на себя новую ответственность (скажем, беря кредит под залог жилья), мы продумываем всякие возможные кошмары, которые могут приключиться, при этом надеясь, что ничего такого не произойдет, но заставляя себя продумать, что будет, если произойдет. Как мы увидим, управление рисками на рабочем месте включает несколько особых проблем.
 
Особая проблема немыслимых рисков
   Некоторые риски, с которыми сталкивается проект, могут стать для него роковыми. Под этим мы понимаем крушение надежд и чаяний в первую очередь тех, кто дал жизнь этому проекту. Этими рисками особенно важно управлять, но разумное управление ими может привести к конфликту с установленными нормами корпоративной культуры. Ваш проект мог быть поставлен в жесткие временные рамки публичными, широко освещенными в прессе заявлениями первого лица компании о том, что продукт будет выпущен к определенной дате. Широко оповестив об этой дате, руководитель компании попытался сделать отставание от графика немыслимым.
   Как известно, объявление нежелательного события немыслимым не делает его невозможным. Но это делает практически невозможным управление рисками. Рассмотрим пример в следующей главе…

Глава 3
Пересмотр истории международного аэропорта в Денвере

   В городе Денвер (штат Колорадо) в 1988 году было принято решение построить новый аэропорт вместо существующего Стапльтонского аэропорта. Стапльтонский сочли неспособным к расширению, а в существующем виде он не отвечал потребностям растущего крупного города и способствовал все более очевидному загрязнению окружающей среды (а также был чрезмерно шумным). Новый аэропорт должен был стать более экономичным, покончить с загрязнением среды и задержкой рейсов и иметь возможности для необходимого роста. Новый Денверский международный аэропорт (ДМА) по графику собирались открыть 31 октября 1993 года. Так было запланировано.
 
Другая неприятность
   Все было подогнано для того, чтобы поспеть к сроку: все шло отлично, но эти проклятые разработчики программного обеспечения опять подвели… 31 октября 1993 года весь огромный комплекс аэропорта был готов к пуску… по-честному готов. На самом деле. Можете поверить. Весь, кроме части программного обеспечения, и из-за нее аэропорт не мог открыться!
   Точнее, не была готова вовремя злосчастная система автоматической обработки багажа. Аэропорт не мог открыться без работающего программного обеспечения для обработки багажа[11]. Поскольку строительство аэропорта связано с огромными вложениями капитала, то весь этот капитал был заморожен, пока эти программисты второпях пытались играть в догонялки. А время — деньги. Это был прямой удар по налогоплательщикам. Тут не нужны замысловатые рассуждения, все просто, как на картинке:
 
 
   И все это по вине тех самых отвратительных разработчиков программного обеспечения.
   Такое упрощенное видение (деньги прямиком летят в контейнер для мусора) было характерно для освещения в газетах и журналах проблем ДМА с первого признака задержки в начале 1993 года до частичного открытия в 1995 году. Столько клеймили команду разработчиков, что и сегодня слова «система автоматической обработки багажа ДМА» — узнаваемый символ некомпетентного проекта по разработке программного обеспечения.
   Статья в журнале «Scientific American» открыто возлагала ответственность за разочарования, связанные с ДМА, на всю отрасль разработки программного обеспечения с ее нечеткими стандартами и практикой:
   «В сфере производства программного обеспечения годами (возможно, десятилетиями) ощущается нехватка зрелой технологической дисциплины, соответствующей требованиям информационного общества»[12].
   Статья утверждала, что все дело было в технологическом процессе. По мнению авторов этой статьи, задержки пуска ДМА можно было легко избежать, если бы в проекте были лучше прописаны процессы, чтобы включать:
   1. более высокий уровень модели зрелости процессов (СММ).
   2. большее использование формальных методов.
   3. формализованные языки спецификации (типа В и VDM).
   Но является ли это на самом деле проблемой технологических процессов?
 
То, что стоит за процессами.
   Допустим, что у вас имеется абсолютно совершенный процесс разработки программного обеспечения. Устранит ли это всю неопределенность в нашем проекте? По сути, речь о том, является ли процесс разработки программного обеспечения хотя бы одним из главных источников неопределенности? Мы полагаем, что нет. Среди наиболее важных источников неопределенности можно назвать:
   1. Требования к системе: Что именно должна делать система?
   2. Обеспечение стандартов взаимодействия: Как будет система взаимодействовать с людьми-операторами и другими системами того же уровня?
   3. Влияние изменяющейся среды: Как во время разработки будут изменяться потребности и цели?
   4. Ресурсы: Какие ключевые навыки и знания исполнителей возможно будет (при необходимости) привлечь по мере продвижения работы над проектом?
   5. Управление: Хватит ли у руководства таланта, чтобы создать эффективные команды, поддерживать боевой дух, обеспечивать низкую текучесть кадров и координировать сложные комплексы взаимосвязанных задач?
   6. Сеть поставок: Будут ли другие участники проекта действовать так, как ожидалось?
   7. Политика: Каков может быть результат использования политической силы для навязывания ограничений, несовместимых с успехом проекта?
   8. Конфликты: Как различные участники проекта найдут компромисс между своими, зачастую несовместимыми, целями?
   9. Инновации: Как уникальные для данного проекта технологии и методы влияют на возможный результат?
   10. Масштаб: Как повлияет на осуществление проекта увеличение масштаба работ, если раньше у разработчика не было соответствующего опыта?
   Даже самый совершенный процесс разработки не может полностью устранить неопределенность при осуществлении проектов по созданию сложных систем. А где есть неопределенность, там появляется риск. При наличии риска нужны осторожные и продуманные усилия, чтобы с ним справиться. Вместо того, чтобы спрашивать: «Как они справлялись с созданием программного обеспечения?», можно гораздо глубже понять, что произошло при строительстве ДМА, задав вопрос: «Как они справлялись с управлением имевшимися рисками?»
 
Управление рисками при строительстве ДМА
   Кратко описав события строительства ДМА, мы просили принять на веру часто повторявшееся утверждение, что аэропорт был на 100% готов к открытию, за исключением программного обеспечения для обработки багажа, но что аэропорт нельзя было вообще открыть без этого программного обеспечения. Теперь давайте рассмотрим это утверждение подробнее.
   Прежде всего, возможно, не было вполне правдивым утверждение, что все остальные части проекта были завершены. Возможно, система обработки багажа была не единственной оставшейся, а лишь наиболее заметной из незавершенных частей. Возможно, весь график был нереальным, и все запаздывали. Когда такое происходит, обычной уловкой для руководителей различных частей проекта является попытка изобразить полную готовность в надежде, что кто-то другой провалит дело первым. Когда кто-то, наконец, оказывается крайним, другие изображают негодование, а сами бешено спешат использовать дополнительное время, чтобы доделать свою часть работы. Возможно, именно это и происходило при строительстве ДМА. Но предположим в интересах нашего анализа, что было не так. Поверим остальным руководителям на слово и допустим, что аэропорт можно было бы открывать, если бы не задержка программного обеспечения для автоматизации обработки багажа. Обшие затраты, вызванные задержкой, составившие более 500 млн. долларов дополнительного финансирования, могли быть отнесены к запаздыванию единственного ключевого элемента.
   Тогда зададим себе несколько важнейших вопросов:
   1. Почему нельзя было открыть аэропорт без этого программного обеспечения? Есть простой ответ: программное обеспечение для обработки багажа было на критическом пути этого проекта по открытию аэропорта. Это было настолько существенно для функционирования аэропорта, что члены управляющего совета считали, что без этой системы невозможно ни одного дня пропускать пассажиров через аэропорт.
   2. Почему эта система оказалась на критическом пути? Допустим потому, что не было другого способа принять и выдать багаж. Система дистанционно управляемых тележек с разгрузчиками, считывателей штрих-кода, сканирующих устройств и стрелок была единственным способом отправлять и принимать багаж.
   3. Не было ли альтернативных способов обработки багажа? Разумеется, были. Например, проверенный временем способ привлечения дюжих парней для транспортировки багажа. Есть и привычный способ использования небольших грузовичков, тянущих соединенные в гирлянду тележки, загружаемые вручную.
   4. Когда автоматизированная система оказалась не готова вовремя, почему нельзя было открыть ДМА, используя один из альтернативных способов транспортировки багажа? Ээээ… Хм. Туннели, предназначенные для обслуживания автоматизированной системой дистанционно управляемых тележек, были слишком низкими для людей и не могли вместить грузовички. Поэтому должна была работать автоматизированная система.
   5. Нельзя было переделать туннели, чтобы управляемые людьми грузовички и тележки могли по ним двигаться? Можно, но не было времени. К моменту, когда стало понятно, что программное обеспечение запаздывает, туннели уже были построены. А времени на переделку потребовалось бы больше, чем на доведение программного обеспечения.
   6. Нельзя ли было начать переоборудование туннелей раньше? Можно, но это не сочли подходящим решением. Если бы программное обеспечение было произведено вовремя, в чем заверяло тогда высшее руководство, то деньги и время на переделку туннелей оказались бы потраченными зря.
   7. Рассматривалась ли задержка программного обеспечения для обработки багажа как потенциальный риск? Только после того, как это случилось. До этого программное обеспечение разрабатывалось по жесткому графику, и все было нацелено на его успешное выполнение.
   8. Случались ли прежде задержки проектов по разработке программного обеспечения? Да, но на этот раз рассчитывали, что будет иначе.
   9. Существовала ли история разработки подобных систем? Да. В аэропорту Франца-Иосифа Штрауса в Мюнхене была установлена пилотная автоматизированная система обработки багажа, разработанная по тому же типу.
   10. Ознакомилась ли команда разработчиков ДМА с мюнхенским проектом, и, если да, то чему это ее научило? Разработчики программного обеспечения для обработки багажа в ДМА посетили Мюнхен. Разработчики мюнхенского программного обеспечения потратили полных два года на тестирование системы и шесть месяцев на окончательную отладку в режиме круглосуточного функционирования системы перед окончательной сдачей. Они советовали коллегам из ДМА отвести на это времени никак не меньше, а при возможности — даже больше.
   11. Последовало ли руководство ДМА этому совету? Поскольку время для такого обширного тестирования и отладки не было запланировано, предпочли обойтись без этого.
   12. Делала ли команда проекта достаточно внятные предупреждения об угрожающем запаздывании? Прежде всего, невидимая рука рынка сделала важный жест прямо в самом начале. Когда Совет управляющих ДМА первый раз объявил тендер на выполнение этой системы программного обеспечения, никто не хотел подавать заявку при указанной дате поставки готового продукта. Все подрядчики считали, что начинать проект при таком расписании было надежным способом навлечь на себя неизбежные неприятности.
   В конце концов, аэропорт подрядил компанию «BAE Automated Systems» на выполнение этого проекта по принципу «наибольших усилий» (без гарантий). Почти с самого начала работы над проектом подрядчик начал регулярно уведомлять, что дата сдачи под угрозой и проект с каждым месяцем и каждым новым изменением все больше отстает от графика. Все участники были поставлены в известность, что делается попытка выполнить четырехлетний проект в два года и что подобные усилия редко увенчиваются своевременным результатом. Все это было проигнорировано.
 
Несоблюдение практики управления рисками
   Проект ДМА погубило не то, как осуществлялось в нем управление рисками. Погубило его полное отсутствие любых попыток управления рисками. Даже самое поверхностное усилие по управлению рисками (скажем, в первую минуту первого же мозгового штурма по обнаружению рисков) выявило бы задержку сдачи программного обеспечения как существенный риск.